- Specific size of the game board (n * n)
- Each game has a different number of chutes and ladders
- Allow multiple players playing, and each of them could know the current game process
- Rules for player movement
- System should have reasonable rules, for example, the chute shouldn't overlap with the ladder
- Allow adding a new player or delete an existing player during the game playing
- Policy pattern and Factory pattern, injecting the Bean of game rules, rolling rules, turning rules, etc. along with the process of spring initializing by integrating with spring
- Builder pattern, using builder pattern to ensure that complicated process of game building become more concise and specific.
- Observer pattern (pub-sub model), allow each participant noticing the game process and other players action. Using Spring ApplicationEventPublisherAware as a register, publish events along with the process of spring initializing as well as register as the lister by
@GameListener
annotation and detecting by SpringAOP.
Comprehensively unit testing and integration testing.