We have been playing Ludo since childhood. It's a very famous board game in India. Getting a chance to convert the board game into a web-based game was an opportunity we couldn't resist.
Derived from the Indian game Pachisi, ludo is a popular game. Having spent our childhood in India, we have played this game a lot of times. This is our attempt to convert the board game into a web app.
What it does
There are 4 players and each player has 4 tokens. The tokens start from the start square and finish in the home block after navigating through the track in a clock-wise manner.
A player must throw a 6 to move a token from the start square onto the first square on the track. Each throw, the player decides which token to move. A token simply moves in a clockwise direction around the track given by the number thrown. If no token can legally move according to the number thrown, play passes to the next player.
A throw of 6 gives another turn to the same player.
If a token lands on a token of a different color, the token jumped upon is returned to its starting block. A token is safe from attacks when it is on a cell marked by a star.
A winner is declared when all 4 tokens reach the home block.
How we built it
Challenges we ran into
Ludo is a game with various rules and taking care of each edge case seemed to be difficult. The edge cases include:
- Overlapping of tokens which hid the other tokens.
- The token when moved should follow the path defined. However, the token only followed a vertical first followed by horizontal path to transition to the next cell of the board.
- Creating a 3D die that rolls on a click was difficult to implement and hence we stuck to displaying numbers.
- We lacked time to add a feature where it is possible for a player to play against 3 bots.
Accomplishments that we're proud of
Implementing the game completely according to the rules of Ludo is in itself a very proud achievement for us. The game and the board also looks attractive.
What we learned
What's next for Ludo
The next step for Ludo would be to have a multi-player game where each player can play remotely with their friends. We also plan to have a smart bot that can take decisions to maximize their chances of winning.