![logo](/3a3del/Advanced-Tic-Tac-Toe/raw/main/TicTacToeLast - Copy/images/icon.png)
Develop an advanced version of Tic Tac Toe game that incorporates user authentication, personalized game history, and an intelligent (Artificial Intelligent) AI opponent. The game will support both player-vs-player and player-vs-AI modes, allowing users to log in, track their game history, and analyze past games. The project will employ best practices in software engineering, including secure user management, rigorous testing, and professional version control workflows.
Server
Database
- Gameplay Modes:
- Player-versus-Player (PvP): Two human players compete against each other.
- Player-versus-AI (PvAI): A single player competes against an AI opponent with strategic algorithms in addition to the option of if Ai start or not.
- User Authentication:
- Secure login and registration.
- Password hashing for secure storage.
- Personalized Game History:
- Storage and retrieval of game histories for each user.
- Ability to review and replay past games.
- Graphical User Interface (GUI):
- Intuitive interface displaying the Tic Tac Toe board.
- User-friendly screens for registration, login, and profile management.
- AI Opponent:
- AI uses the minimax algorithm for optimal moves.
- Clone the Repository
git clone https://github.com/Michael-lhany/TIC-TAC-TOE.git
cd advanced-tic-tac-toe
cd Qt-Tic-Tac-Toe
-
Install Dependencies: Ensure you have Qt installed. You can download it from Qt's official website.
-
Build the Project: Open the project in Qt Creator and build it, or use the following command line instructions:
mkdir -p build
cd build
qmake ../Qt-Tic-Tac-Toe.pro
make
- Run the Application: After building the project, run the executable:
./Qt-Tic-Tac-Toe
-
Login or Register:
- If you are a new user, register by providing a username and password.
- If you are an existing user, log in with your credentials.
-
Start a Game:
- If you are a new user, you can learn how to play the game from the guide.
- Before start a game, you can set the options as you like 3x3 or 4x4 ...10x10 board's size, Choose between PvP or PvAI mode.
-
Play the Game:
- The game will display the winner or indicate a tie.
-
View Game History:
- Access your game history to review past games, no of games played, games won, games losed, games drawed.
- Download GoogleTest: Download GoogleTest from
GoogleTest GitHub repository
. - Configure GoogleTest Directory: Navigate to the testing directory
cd test/
3.Configure GoogleTest Directory: Navigate to the testing directory Open the gtest_dependency file
and change the line:
GOOGLETEST_DIR = "$$PWD/googletest/googletest"
to the directory where you have downloaded GoogleTest
, for example:
GOOGLETEST_DIR = "/path/to/your/googletest"
4.Run Tests: Build and run the tests to ensure everything is working correctly:
mkdir -p build
cd build
qmake ../Qt-Tic-Tac-Toe.pro
make
./tictactoe
Contributions are always welcome! Follow these steps to contribute:
- Fork the repository.
- Create a new branch
(git checkout -b feature-branch)
. - Make your changes and commit them
(git commit -m 'Add new feature')
. - Push to the branch
(git push origin feature-branch)
. - Create a Pull Request.
- Muhammed Adel - @gmail_handle - email@email_client.com
- Yousef Bably - [email protected]
- Michael Hany - @gmail_handle - email@email_client.com
- Yousef Karam - [email protected]
- Yousef Gamal - [email protected]
- Project Link: https://github.com/Michael-lhany/TIC-TAC-TOE
Use this section to mention useful resources and libraries that you have used in your projects.