Implement mechanics of the board game of your choice:
There are hundreds of thousands of different games out there. No duplicates please.
Your program should implement basic FSM flow of the game. The result should be a playground file that prints game session log:
Started a new game of Snakes and Ladders
======
Alice rolls the dice
Dice roll is a 3
Alice moves to 3
Alice went up a ladder
Maria rolls the dice
Dice roll is a 5
Maria moves to 5
Alex rolls the dice
Dice roll is a 4
Alex moves to 4
Ivan rolls the dice
Dice roll is a 5
Ivan moves to 5
There is no need to implement complex AI, use random or greedy strategy.
You can port your game from CS253 to Swift as this assignment.
Scope
Your implementation should be large enough to demonstrate the mechanics and architecture of a complete game, but you do not need to reproduce every rule or feature of the original game.
At minimum, your game should include:
-
3+ distinct game objects with their own behaviour.
-
2+ players taking turns.
-
A clear game state / turn flow implemented as an FSM.
-
The main actions required to play the game.
-
A win or end-game condition.
-
A playable game session that runs from start to finish without manual intervention.
Simplify rules where necessary. The goal is to demonstrate software design and Swift programming, not to build a production-quality version of the game.
If your chosen game is unusually simple, add enough mechanics to provide comparable scope to the examples above.