Tic-tac-toe 3X3 game for two players -- 3

Job ID: 36384815

Budget: ₹600 – ₹1,500 INR

Write a program for Tic-tac-toe 3X3 game for two players
(https://en.wikipedia.org/wiki/Tic-tac-toe) . The game should support playing in
the following scenarios:
a.) Both players are users (human)
b.) One play is user and the second player is computer
c.) Both players are computer
Each move of the game should be stored into text file with the following structure:
Game, Move , time, Player id, type, Play sign=”X/O” [row][column]
Example of the game.txt is:
Game1, MoveDI1, 20, 10, X, [0, 1]
Game2, MoveID2, 21, 23, Y, [2,3]
The program has a feature that a user load game.xml from previous game and
continue to play if it is possible.
1.) Front-end (5 points): Using WPF or write alternative console application, design
two windows with all necessary controls (buttons and grids). The first one must
have controls (buttons for WPF or keyboard press key in the case of console
application) where a user can choose which type of the game they want to play:
user-user, user-computer, and resume-game. The second window (WPF or Console
)has to have a 3X3 grid for playing with appended controls (buttons) according to
user selection from first window. The controls are:
• In case of user-user, user-computer and computer-computer: `playX`
and `playO`
• In case of resume-game: `load game` (game.xml),` playX`, and `playO
2.) Game logic (5 points): Implement game logic for Tic-tac-toe 3X3. Each player
can play only on fields which are not occupied (being played before). The player
cannot play before the opponent (another player) has not finished their move or at
the beginning of the game the player can play first they are assigned as X player. In
each step of the game, the program has to check if game is finished (there is a
winner). In case that a player is a computer the program has to choose the best
move leading to winning of the game.
3.) Back-end (5 points): Implement a back-end part which can read, write, and
update game.txt file.
4.) Middleware-Controller (5 points): Implement a middleware which connects
front-end and back-end. Middleware accepts data from back-end and placed then
into appropriate place on front end in the same order specified on attribute id in
XML step element. In addition, middleware accepts data from front-end and
process it and sends to back-end.
5.) Test (5 points): Define at least 5 tests game.txt files which should cover simple,
edge, and complex test cases. Write a class with main method which runs all define
test cases.
SUBMIT YOUR SOLOTION AS AN ARCHIVE FILE (ZIP OR RAR). THE FILE HAS TO
HAVE A NAME IN THE FOLOWWING FORMAT: FIinalExam-NameSurnameID.
THE CONTEX OF THE ZIP HAS TO BE:
1. Folder with code for front-end
2. Folder with code for game logic
3. Folder with code for back-end
4. Folder with code for middleware-controller
5. Folder with code and solution for entire project
6. Folder with test cases with code for testing
Related categories: .NET C# Programming WPF