Skip to content

Demi-Lune/hanabi

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

56 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 another

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?)

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)

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.

Installation

git clone https://github.com/JDGaraudEnsta/hanabi
cd hanabi
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

Bibliography

Other Hanabi projects

AI

Misc (coding principles, project, ...)

About

Hanabi deck, game engine and AI.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 94.0%
  • Makefile 3.4%
  • Shell 2.6%