Requirements for smart contract game project

For this project you will build a multiplayer smart-contract game that you deploy on the Rose Chain.

It is up to you what game you create, and it can be as simple or as complex as you wish. Common options include Tic-Tac-Toe, Battleship, Connect Four, etc.

Because it costs "rose coins" to deploy your game, it is recommended that you develop and thoroughly test your game on your local computer (use Ganache) before submitting it to the rose chain. You MUST demonstrate your game working on the Rose Chain to earn tokens for this assignment.

Minimum Requirements

  1. You must create a game in a smart contract, written in solidity, and deployed to the Rose Chain (Ethereum).
  2. Your game must be multi-player (at least TWO players, can be more)
  3. Your game must have a web front-end that can be used by each player to show the current game state and make "moves" (or the equivalent of playing in your game).
  4. The web front-end should connect (via web3.js) to metamask to access players' accounts.
  5. Your game must have a mechanism to "start over" and play another game, somehow.
  6. Players must be unable to cheat (at least not easily).

Any APIs, public view web interfaces (for spectators), advanced graphics, or animations are all optional and up to you.

Grading

You will earn up to four coder tokens for completing the minimum requirements.

You may earn up to two more coder tokens for creating a very nice, usable front-end.

You may earn up to two more coder tokens for expanding your game to allow for more than two simultaneous players (which in turn, requires that your game's design supports more than 2 players).

You will earn one presenter token for demonstrating all of the required features of your game to the class.

You may earn one analyst token for explaining non-trivial limitations of your game due to smart contracts and how these limitations might be overcome.