Skip to content

simple tictactoe game sandbox for crash testing ai-bots designs

License

Notifications You must be signed in to change notification settings

protago90/tictactoe-ring

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TicTacToe Ring

i.e. simple tictactoe game sandbox for crash testing ai-bots designs

tictactoe

 

The purpose of what's above, despite fun, was to facilitate the testing of bots prototypes performance -by benchmarking them with searchable algorithms. The following have been accomplished:

  • playground / tournament modes providing respectively touch'n'feel / at-scale-simulated gameplay;
  • referential bots implementations i.e.: minmax, debuts, random, search (and humanxd);
  • from-scratch AI-based bots prototypes (waiting for a dose of spare time...)
  • transparent API exposed to interfere with: BoardAPI and PlayerAPI;
  • twofold UI, via: shell CLI (see demo.gif) or clickable web GUI (once hosted here ).

streamlit

 

TicTacToe is deterministic zero-sum game with 19683 possible states and 255168 gameplayes. See complete map of game tree depth depiceted by XKCD .

#QUICKTOUR:
# for CLI --script howto:
# (optional) python3.8 -m pip install tqdm==4.51.0
python3.8 -m tictactoe -o human -x minmax
python3.8 -m tictactoe -o search -x minmax -n 10  # tournament

# for GUI --server deploy & run:
python3.8 -m venv .env && source .env/bin/activate && python3.8 -m pip install -r requirements.txt
streamlit run streamgui.py

# for GUI --server deploy & run with docker:
sudo docker build -t streamgui .
sudo docker run -p 8501:8501 streamgui