3.5 KiB
Chess
Chess is a game of strategy and wit, played by noble kings and cunning commoners alike for centuries. Its origins are shrouded in mystery, with some saying it originated in ancient India as a war simulation, while others claim it was invented by the wise sages of Persia.
One thing is certain: chess has captured the hearts and minds of players throughout the ages. From the grand halls of feudal castles to the bustling streets of modern cities, this timeless game has brought people together in friendly competition.
But it wasn't until the digital age that chess truly reached its potential. With the advent of online platforms and mobile apps, players from all corners of the globe can now test their skills against one another in real-time.
So whether you're a seasoned grandmaster or a newcomer to the game, join the ranks of chess enthusiasts and experience the thrill of victory and the agony of defeat. Let the battle of the minds begin!
Today, chess continues to be a beloved pastime, played by millions of people worldwide. And with the advent of modern technology, it has become easier than ever to play and learn the game. Mobile apps bring the game of chess to the palm of your hand, allowing you to enjoy this timeless classic anytime, anywhere. Whether you're a seasoned chess player or just starting out, chess offers a fun and engaging way to experience the history and strategy of this beloved game.
Instructions
Your task is to develop a mobile app that allows users to play chess with each other. This is a fullstack app so you will need to implement both backend and frontend. You may use any desired backend technology as long as you're following the backend routes..
Make sure that your app has the following requirements:
- Must have UI screens, including at least the following:
- A Main menu
- A Game board
- A waiting room
- Must implement the logic to validate moves and enforce the rules of chess, disallowing illegal moves.
- Must ensure that white pieces always play first in each game.
- Must have a multiplayer mode which enables players to challenge and play against other users in real-time matches.
- Must have the ability for players to invite each other to a game or join a public game.
- Must have a waiting room where players can wait for opponents and initiate game sessions.
- Must have a notification system to alert players when it is their turn to make a move.
- When the game reaches a terminal state (checkmate, stalemate, or draw), you need to send a message to both players indicating that the game is over and which player has won.
Hints
- Configure your backend solution for managing the multiplayer functionality and game data storage.
- Create the initial UI screens, including the main menu, waiting room and game board.
- Implement the logic for validating and enforcing the rules of chess, disallowing illegal moves, and determining the turn order.
- Research different chess rules and app designs to get ideas for your own app.
- Think about how you will handle game state and moves within the app, and how you will ensure that the game is played fairly and accurately.
Bonus
- Restart, to allow players to restart the game
- Story Mode: Design a single-player story mode where players can engage in chess matches against AI opponents, progressing through a series of challenges or levels.
- Bots: Include AI-powered bots that players can play against in offline mode or when waiting for online opponents.