Project
Project: TIC-TAC-TWO (customized)
Rules of the game:
- https://www.geekyhobbies.com/tic-tac-two-board-game-review/
- https://gamescrafters.berkeley.edu/games.php?game=tictactwo
- https://www.youtube.com/watch?v=biKTvJQQ68Y
Final goal: Game implemented both in console and web. You can start playing game in console, save state and continue in web (and vice versa).
Two player, one player vs AI and AI vs AI gameplay.
Homework 01 - Console
Deadline: 2024-10-17 23:59:59
Implement inital game brain, keep track of board, grid and pieces on board (support any size of board, grid, and number of pieces).
Implement console visualization of the game flow - allow users to make moves (validation).
Implement separate game configuration creation (size of board, grid, and number of pieces, etc.), allow user to name them.
Implement reasonable validation of user configuration.
These are just initial remarks, make your own best effort and design choices.
Deadline: 2024-10-24 23:59:59
Implement game configuration and game state saving and loading.
Step 1 - based on file system and json text format.
Make all the saving interface based, so you can swap around what saving method is used.
Deadline: 2024-11-08 23:59:59
Step 2 - Implement everything done in step 1 (json/file system based) also in database based approach - using ef and SQLite.
Use interfaces to swap implementations out (ie you need to modify few lines of code to switch from file system to db based repositories).
Deadline: 2024-MM-DD 23:59:59
Implement tic-tac-two both in console and web (razor pages) app.
Share the dal (db or file system - switchable based on interface) and business logic between these.
Console is single user, web has to support multiple parallel games.
Based on your student code:
- odd implement username based approach (user is asked from front page and is used throughout the other pages)
- even implement password based approach for every player in every game (generate/ask for pasword for game joining when game is created)