Project
Project: Connect4 (customized)
Examples/docs of the game:
- https://www.mathsisfun.com/games/connect-crazy.html
- https://instructions.hasbro.com/en-my/instruction/connect-4-game
- https://www.wikihow.com/Play-Connect-4
Extended rules you need to implement:
- board size and winning connection size is customizable
- board can be either rectangle or cylinder
Technical requirements
- configurations can be precreated (classical, connect5, connect3, connect4-cylinder, etc)
- games can be saved, loaded, continued, deleted - using both json based text files and EF db
- game solver (AI)
- game animations
- human vs human, human vs ai, ai vs ai
- difficulty levels for ai
- desktop app, players take return
- web app, multiplayer (unlimited amount on parallel games)
- game can be started in console app, then continued in web - and vice versa
All HW deadlines are based on GMT+3 (Tallinn, Estonia).
Homework 01 - Console
Deadline: 2024-MM-DD 23:59:59
Implement menu system in separate class library, supporting unlimited depth of menu levels.
First level mandatory items - exit.
Second - exit, return to previous.
Other levels - exit, return to previous, return to main.
Menu must support user actions, updateable labels based on user interaction, not allow identical hot keys, etc.
Menu item selection either via regular input (with validation) or cursor based "console gui".
Turning nullable warnings to errors on solution level is mandatory.
Homework 02 - Console
Deadline: 2024-MM-DD 23:59:59
Game board UI (animations) and simple game brain. Draw out game board, implement human-to-human gameplay.
Implement game configuration UI.
Homework 03 - Console
Deadline: 2024-MM-DD 23:59:59
Game CRUDD, using JSON text files.
Homework 04 - Console
Deadline: 2024-MM-DD 23:59:59
Game CRUD using Entity Framework DB. Implement interface based repository,
switching between file system and db based CRUD should take just couple of modifications in code.
Homework 05 - Console
Deadline: 2024-MM-DD 23:59:59
Implement full AI, using minimax with pruning. Implement all game forms - h2h, h2ai, ai2ai.
Homework 06 - WEB
Deadline: 2024-MM-DD 23:59:59
Implement Connect4 as asp.net core web application, using razor pages.
Unlimited amount of active parallel games.
Reusing all the logic from console - game brain, crud for state management (both json and db) (all based on class libraries).