Octopus_Carnival/README.md

95 lines
2.1 KiB
Markdown
Raw Normal View History

2019-08-24 11:55:51 +02:00
# Octopus Carnival
Octpus Carnival is an environment for playing the [Machiavelli card game](https://en.wikipedia.org/wiki/Machiavelli_(Italian_card_game)) inside the terminal.
It features a solver in order to play against the computer.
![](ono_sendai/animation/intro.gif)
## Getting Started
### Prerequisites
The Machiavelli solver is written in Ocaml:
```
opam install corebuild dune yojson core
```
The TUI is written in python:
```
pip3 install --user colorama picotui
```
## The game
In order to play the game first build the solver:
```
cd octopus_carnival
make
```
Then run the executable
```
./ono_sendai/start
```
2019-08-24 12:35:41 +02:00
## Example
Click to play the video.
[![Example](https://raw.githubusercontent.com/FraMecca/Octopus_Carnival/master/ono_sendai/animation/rec.shot.jpg)](https://raw.githubusercontent.com/FraMecca/Octopus_Carnival/master/ono_sendai/animation/rec.webm)
2019-08-24 11:55:51 +02:00
## Contributing
The folder structure follows a non standard layout for personal reasons.
```
.
├── hosaka
│   ├── cards.ml
│   ├── dune
│   ├── dune-project
│   ├── hashset.ml
│   ├── main.ml
│   ├── printer.ml
│   ├── table.ml
│   ├── tcards.ml
│   └── tests.ml
├── makefile
├── metro_holografix
│   ├── cardtypes.py
│   └── scrapes
│   ├── alg.py
│   ├── cardtypes.py
│   ├── test.py
│   └── vecchio.py
├── ono_sendai
│   ├── animation/
│   ├── start
│   ├── state.py
│   ├── symbols.py
│   └── widgets.py
```
* *hosaka* contains the code related to the solver
* *metro_holografix* contains the python definitions for the cards and some prototypes
* *ono_sendai* contains all the python code related to the game TUI
## Authors
* **Francesco Mecca** - [blog](https://francescomecca.eu)
## License
This project is licensed under the GPLv3 License - see the [LICENSE.md](LICENSE.md) file for details
## Acknowledgments
Thanks to my friend [Daniele](https://github.com/danseraf) that helped me to write the algorithm for the solver.