TicTacToe AI is a reinforcement learning project inspired by MENACE . --a mechanical computer made from 304 matchboxes designed and built by artificial intelligence researcher Donald Michie in 1961--
AI chooses its next move from a database which filled up with all possible moves (~7500). When the game is over, AI removes the last move it played -which caused it to lose- from the database.
If there aren't any available moves that the AI can play, that means the AI can't win in current situation, so after losing the rount with random play, AI removes the previous move from the database.
After enough (i mean too much) games, the AI will eventualy get rid of all losing moves in the database. With no losing moves, the AI won't able to lose again.
Visit Tictactoe AI HERE to play against the AI.
API deployment is done using Heroku and Client side deployment is done using Vercel.
- Backend:
- Node.js
- Express
- MongoDB & Mongoose
- Frontend:
- React
- Axios
-
Clone the project
-
Open db-setup folder and follow instructions in README.md
-
Continue this list after you have setup the database
-
Install dependencies
$ cd api
$ npm i
$ cd ..
$ cd client
$ npm i
-
Open two terminals and start both severs (api & client)
3.a. Terminal 1:
$ cd api $ npm start
3.b. Terminal 2:
$ cd client $ npm start
-
Go to
localhost:3000
on your browser
- API in Node.js
- UI template in React
- Tic Tac Toe mechanics in React
- Mechanics for check game status
- Mechanics for disable move from database
- Handle empty response from API
- Improve Move model
- Put it all together / Make it work
- Improve UI
- DB setup folder
- Deployment
- Backend
- Frontend
- Improve README file
- Complete project