Ludo

Race all 4 of your pawns from the yard to the finish before any of the 3 CPU opponents get there first. Every square you land on, every capture, and the die itself all come from the same fixed seed, so nothing about how you got there is left to guess at.

Play in your browser About Simple Games

The board and how you win

Seats are fixed: you are always the bottom seat. CPU 1 sits to your left, CPU 2 sits across from you, and CPU 3 sits to your right — all 3 play at whichever difficulty you picked. There is no 2-player or 3-player mode; every match uses the full 4 seats.

The board is a 15×15 grid — plain DOM squares, not a canvas. A single 52-square track runs around the board and is shared by all 4 colors; each color turns off into its own 6-square home stretch before the finish, and every player starts with 4 pawns waiting in the yard.

Rolling, moving and capturing

You always roll first — that is fixed, not chosen by seed. A 6 lets a pawn leave the yard for your own starting square, and after you move on a 6, you get another roll right away. 3 sixes in a row is different: the 3rd one voids that roll, nothing moves, and the turn passes on.

Any roll moves a pawn already on the track, or already in a home stretch, forward that many squares — a 6 just adds leaving the yard as one more option. Coming home takes an exact count — a roll that would overshoot leaves that pawn where it is, unmoved. If no pawn can legally move on a given roll, the game passes automatically for you; a 6 that goes unused this way still earns its extra roll, since what a 6 buys is a throw, not a move.

This pair of rules — stacking that protects nothing, and capturing that pays out only in pawns sent home, never in an extra roll — is a deliberate departure from most mainstream Ludo implementations. There, same-color pawns stacked together usually act as a blockade, and a capture usually earns another throw. This game leaves blockades out entirely, and stacking without protection plus capturing without a bonus roll both follow from that one choice.

Controls

On your turn, tap the die to roll it. If you have a legal move, the pawns that can be moved are highlighted; tap one to move it forward by the number you rolled — the roll decides the distance, so there is no separate step for choosing where to land. If nothing can legally move, an automatic-pass notice appears and play continues, whether that means your own extra roll or the next CPU’s turn.

Easy, Normal and Hard

There are 3 opponents, and every CPU seat plays at whichever one you picked — all 3 can be chosen from the first launch, and none is unlocked by playing or paying. None of them searches ahead; every decision is a plain calculation over that roll’s legal moves.

Ties are broken by a single random draw from the match’s own seed rather than by anything about which pawn was rolled last, so the same position always breaks the same way for a given seed.

DifficultyHow it picks a move
EasyRandom among the legal moves for that roll
NormalCapture, then finish, then leave the yard, then a safe square, then plain progress — in that order
HardNormal’s order, minus an estimate of getting captured back next turn

That capture-risk estimate treats 3 squares as perfectly safe outright — a safe square, your own home stretch, and the finish — because no enemy pawn can physically reach any of them. Everywhere else it is worked out per seat and combined, not simply added up: 2 opponents that could each reach a square on 1 die face do not add to a 2-in-6 chance, they combine to a slightly higher one, because each rolls independently.

Help — seeing which pawns can move, and nothing more

This game has no Undo and no Hint. Undo cannot work in either direction here: winding the board back while keeping the same roll would let you see a future roll before it happens, and re-rolling instead would break the promise that the same seed always plays out the same way — neither one survives contact with dice that are seeded, not random.

What it gives you instead is simpler: the only pawns you can tap are the ones with a legal move for the roll you just made. Everything else just sits there, and tapping it does nothing.

Tips

Hard’s risk estimate is exactly that — an estimate, not a search. It cannot see a chain of 6s coming, so it will not always find the safest square when a chain is what actually matters, and it is not trying to be unbeatable.

Questions people ask

Do I get another roll for capturing a pawn?

No. Capturing sends every enemy pawn on that square back to its own yard at once, but the only thing that earns you another roll is rolling a 6 — captures and extra rolls are unrelated.

What happens if I roll 3 sixes in a row?

The third 6 voids that roll: no pawn moves, and the turn passes to the next seat with nothing played. The first and second 6 in the row each still earn a following roll as normal.

Can I protect my pawns by parking 2 of them on the same square?

No — stacking your own pawns does not block or protect them in this game. If an enemy lands on that square, every pawn of yours sitting there goes back to the yard together, so 2 pawns on one square means 2 pawns at risk, not 1 protected spot.

Is there a Hint or an Undo?

No. Undoing while keeping the roll would show you a future roll ahead of time, and undoing by re-rolling would break the rule that the same seed always plays out the same way, so neither direction works here. The one help on offer is the highlighted pawns you can legally move — free and unlimited from the first launch.

Are the dice fair?

Yes. Every roll comes from the match’s own seed, all 6 faces are equally likely, and which seat is rolling never changes the odds. The same seed always produces the same sequence of rolls, on any device, every time.

Do I need an internet connection?

The Android app plays from the first launch with no connection: there is nothing to download, no account, and every match is decided on your device. The browser version needs to load the page once, and then the game itself runs in your browser.

Everything described here is implemented in the open: read the source code on GitHub.