Skip to content

Develop an advanced version of Tic Tac Toe game that incorporates user authentication, personalized game history, and an intelligent (Artificial Intelligent) AI opponent.

Notifications You must be signed in to change notification settings

3a3del/Advanced-Tic-Tac-Toe

 
 

Repository files navigation

logo

Advanced Tic Tac Toe Game

📔 Project Overview

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.

contributors last update forks stars open issues license


📔 Table of Contents

🌟 About the Project

Overview

👾 Technical Map

Tools
Server
Database

🎯 Features

  • 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.

🎨 Simple Class Diagram

Class Diagram

🔑 User Sequence Flow

Class Diagram

🎨 Game Screenshots

  1. Startup Page

    • Startup Page
  2. Game menu

    • Game menu
  3. Game options

    • Game options
  4. Player history

    • Player history

🧰 Getting Started

⚙️ Installation

  1. Clone the Repository
  git clone https://github.com/Michael-lhany/TIC-TAC-TOE.git
  cd advanced-tic-tac-toe
  cd Qt-Tic-Tac-Toe
  1. Install Dependencies: Ensure you have Qt installed. You can download it from Qt's official website.

  2. 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

👀 Usage

  1. Run the Application: After building the project, run the executable:
  ./Qt-Tic-Tac-Toe
  1. 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.
  2. 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.
  3. Play the Game:

    • The game will display the winner or indicate a tie.
  4. View Game History:

    • Access your game history to review past games, no of games played, games won, games losed, games drawed.

🧰 Testing

  1. Download GoogleTest: Download GoogleTest from GoogleTest GitHub repository.
  2. 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

👋 Contributing

Contributions are always welcome! Follow these steps to contribute:

  1. Fork the repository.
  2. Create a new branch (git checkout -b feature-branch).
  3. Make your changes and commit them (git commit -m 'Add new feature').
  4. Push to the branch (git push origin feature-branch).
  5. Create a Pull Request.

🤝 Contact

💎 Acknowledgements

Use this section to mention useful resources and libraries that you have used in your projects.

About

Develop an advanced version of Tic Tac Toe game that incorporates user authentication, personalized game history, and an intelligent (Artificial Intelligent) AI opponent.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 99.7%
  • Other 0.3%