-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Vivek Dagar
committed
Apr 5, 2024
1 parent
f3a04d9
commit c1d9b94
Showing
1 changed file
with
127 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,127 @@ | ||
# TicTacAI | ||
A Tic Tac Toe game in Python that allows you to play against an AI that's implemented using minimax algorithm. | ||
<br/> | ||
<p align="center"> | ||
<h3 align="center">TicTacAI</h3> | ||
|
||
<p align="center"> | ||
A simple command-line version of the Tic Tac Toe game that allows users to play against each other or against an AI. | ||
<br/> | ||
<br/> | ||
</p> | ||
</p> | ||
|
||
![Issues](https://img.shields.io/github/issues/vivekkdagar/TicTacAI) ![License](https://img.shields.io/github/license/vivekkdagar/TicTacAI) | ||
|
||
## Table Of Contents | ||
|
||
* [About the Project](#about-the-project) | ||
* [Built With](#built-with) | ||
* [Getting Started](#getting-started) | ||
* [Prerequisites](#prerequisites) | ||
* [Installation](#installation) | ||
* [Usage](#usage) | ||
* [Contributing](#contributing) | ||
* [License](#license) | ||
* [Authors](#authors) | ||
* [Acknowledgements](#acknowledgements) | ||
|
||
## About The Project | ||
|
||
![Screen Shot](https://github.com/vivekkdagar/TicTacAI/blob/main/assets/screenshot.png) | ||
|
||
## Gameplay | ||
|
||
- The game is played on a 3x3 grid. | ||
- Option to choose whether the human player or AI starts the game first. | ||
- Players take turns marking a cell with their symbol ('X' or 'O'). | ||
- To input their symbol, players use the numpad (1 to 9) corresponding to the grid cells as follows: | ||
|
||
``` | ||
1 | 2 | 3 | ||
--------- | ||
4 | 5 | 6 | ||
--------- | ||
7 | 8 | 9 | ||
``` | ||
|
||
For example, to place their symbol in the top-left cell, a player would input '1', and for the bottom-right cell, they would input '9'. | ||
|
||
- The player who succeeds in placing three of their marks in a horizontal, vertical, or diagonal row wins the game. | ||
- If all cells are filled and no player has won, the game ends in a draw. | ||
|
||
## Technical Implementation Highlights | ||
|
||
- Demonstrates a modular code structure that enhances readability, maintainability, and extensibility of the game. | ||
|
||
- Showcases robust error handling mechanisms to gracefully handle invalid inputs and unexpected scenarios, enhancing user experience and software reliability. | ||
|
||
- Scalability: Extendable codebase for future feature additions or modifications. | ||
|
||
|
||
## Getting Started | ||
|
||
This is an example of how you may give instructions on setting up your project locally. | ||
To get a local copy up and running follow these simple example steps. | ||
|
||
### Prerequisites | ||
|
||
There are 2 ways of setting up this project | ||
|
||
* npm | ||
|
||
```sh | ||
npm install npm@latest -g | ||
``` | ||
|
||
### Installation | ||
|
||
1. Get a free API Key at [https://example.com](https://example.com) | ||
|
||
2. Clone the repo | ||
|
||
```sh | ||
git clone https://github.com/your_username_/Project-Name.git | ||
``` | ||
|
||
3. Install NPM packages | ||
|
||
```sh | ||
npm install | ||
``` | ||
|
||
4. Enter your API in `config.js` | ||
|
||
```JS | ||
const API_KEY = 'ENTER YOUR API'; | ||
``` | ||
|
||
## Usage | ||
|
||
Use this space to show useful examples of how a project can be used. Additional screenshots, code examples and demos work well in this space. You may also link to more resources. | ||
|
||
_For more examples, please refer to the [Documentation](https://example.com)_ | ||
|
||
## Contributing | ||
|
||
|
||
|
||
### Creating A Pull Request | ||
|
||
1. Fork the Project | ||
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`) | ||
3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`) | ||
4. Push to the Branch (`git push origin feature/AmazingFeature`) | ||
5. Open a Pull Request | ||
|
||
## License | ||
|
||
Distributed under the MIT License. See [LICENSE](https://github.com/vivekkdagar/TicTacAI/blob/main/LICENSE.md) for more information. | ||
|
||
## Authors | ||
|
||
* **Vivek Dagar** - *Comp Sci Student* - [Vivek Dagar](https://github.com/ShaanCoding/) - *Built ReadME Template* | ||
|
||
## Acknowledgements | ||
|
||
* [README Generator](https://readme.shaankhan.dev/) | ||
* [ImgShields](https://shields.io/) | ||
* []() |