ApacheScribe / hanabi

Hanabi deck, game engine and AI.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Hanabi project

This project is for educational purposes: its current status should represent the student's starting point.

Hanabi module

A python3 module that knows Hanabi:

  • card deck and dealer,
  • CLI (command line interface), lets you play and verifies that your moves are allowed (currently limited to 2 players),
  • GUI (to do),
  • AI (currently only one, and it is cheating).

Tasks

There are many possible tasks:

  • read the current state of the module,

    • complete its documentation when needed,
    • share with everyone this improvement,
  • improve the CheaterAI -- answer the question (still an open question afaik): what is the best possible score, statistically speaking?

  • add AIs. Some suggestions:

    • RandomAI (plays randomly),
    • DirectAI (plays whatever is hinted),
    • BGAAI (plays Board Game Arena's standard),
    • HansimAI (see below),
    • train a machine learning (I'm not sure if this will give anything interesting without powerful CPU/GPU resources),
    • design your own, from scratch or by improving an existing one.

Keep track of scores for all these games/AI. We will want to compare: different AIs on a same deck, or a given AI over a 1000 decks. We will need to see why a certain AI fails on a certain game.

  • make it workable for up to 5 players.

  • make it workable from two separate screens (network?)

  • you may also design a GUI, but be warned that this is a very time-consuming task. I like PySide2. Tkinter is more portable but harder to learn imho.

During the project:

  • make sure you understand the "replay" mode
  • add tests (UnitTest or whole tests)
  • keep notes on your questions, decisions, discussions (github's wiki)

Installation

For Linux and Mac:

git clone https://github.com/JDGaraudEnsta/hanabi
cd hanabi
git pull
make        # pip installs it in the default directory ~/.local
hanabi
# and now you may play

If hanabi doesn't start (bash: hanabi: command not found), add this to your ~/.bashrc:

export PATH=$HOME/.local/bin:$PATH

For Windows, first dependencies:

pip install pyreadline

then the installation:

cd hanabi/src
python3 setup.py install --user

Bibliography

Other Hanabi projects

AI (deep learning)

Misc (coding principles, project, ...)

About

Hanabi deck, game engine and AI.

License:GNU General Public License v3.0


Languages

Language:Python 94.2%Language:Makefile 3.0%Language:Shell 2.8%