Skip to content

Triple Three Engine (3T) is a Tic Tac Toe engine. It uses Machine Learning (ML) to predict the best move in a given Tic Tac Toe position. It can be trained to predict the best move in any board size, although the default is a 3 by 3 board.

License

Notifications You must be signed in to change notification settings

AmeerTaweel/3t-engine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

99 Commits
 
 
 
 
 
 
 
 

Repository files navigation

3T Engine

Triple Three Engine is a Tic Tac Toe engine. It uses Machine Learning (ML) to predict the best move in a given Tic Tac Toe position. It can be trained to predict the best move in any board size, although the default is a 3 by 3 board. Checkout the project demo.

How to use

Note: All scripts must be run from the root directory of the project in order to avoid any unwanted behavior.

Generate Dataset

To generate a set of all possible Tic Tac Toe positions in a certain board dimensions, with the best possible move for each position as labels, run the generate_dataset.py script in the src/ folder. The default is a 3 by 3 board but you can change that by changing the variable BOARD_SIZE in src/constants.py.

Training The Model

To train a neural network on the dataset generated in the last step, run the train_model.py script. It will train a neural network using TensorFlow, and then save it to src/generated/3t_model.h5 so it can be used later without the need to train it again each time you want to use it.

You can customize many aspects of the train_model.py by changing the following variables:

Aspect Variable Name Type Default Value
Percentage of test set t_p float 0.6
Percentage of validation set * v_p float 0.2
Number of units in the hidden layer units int 10N *
Dropout probability d_prob float 0.05 *
Number of epochs epochs int 500

* The remaining 1 - t_p - v_p is the percentage of the test set.

* N is the number of features.

* You can turn dropout of by setting d_prob to 0. Maximum is 1.

You should generate the dataset before running this script.

Testing The Model Against A Random Player

To test the trained model against a random player to check its performance, run the test_against_random_player.py script. You can specify for how many games you want to test by changing the variable G. When the test is done, you get the results for how many wins, losses, and draws occurred.

About

Triple Three Engine (3T) is a Tic Tac Toe engine. It uses Machine Learning (ML) to predict the best move in a given Tic Tac Toe position. It can be trained to predict the best move in any board size, although the default is a 3 by 3 board.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages