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/tournamentmodes providing respectively touch'n'feel / at-scale-simulated gameplay; - referential bots implementations i.e.:
minmax,debuts,random,search(andhumanxd); - 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).
TicTacToe is deterministic zero-sum game with 19683 possible states and 255168 gameplayes. See complete map of game tree depth depiceted by XKCD .
# 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