Le jeu de la vie de John Horton Conway
Note
Pour en connaître un peu plus, vous pouvez visiter la page Wikipedia du jeu de la vie.
La liste des consignes du sujet est disponible dans le todo.md
L'installation de Python 3 est recommandé pour l'éxécution du script
Note
Une fois l'installation de Python 3 terminée, tapez $ pip install -r requirements.txt dans un terminal à la racine du projets pour installer toutes les dépendances du projet
- base64
- json
- keyboard (For Windows system)
- os
- sys
- platform
- termios (For Linux system)
- tty (For Linux system)
- time
- zlib
| Fonctionnalités | Commandes |
|---|---|
| Exécuter le script | $ python main.py |
| Insérer une ou plusieurs cellule(s) | $ python main.py -a <mapName> "[(x, y), ...]"$ python main.py --add <mapName> "[(x, y), ...]" |
| Insérer une entité | $ python main.py -A <mapName> <type> <x> <y>$ python main.py --add-entity <mapName> <type> <x> <y> |
| Afficher une map enregistrée | $ python main.py -d <mapName>$ python main.py --display <mapName> |
| Lister les maps sauvegardés | $ python main.py -l$ python main.py --list |
| Créer une nouvelle map | $ python main.py -n <mapName> <x> <y>$ python main.py --new <mapName> <x> <y> |
| Réinitialiser une map | $ python main.py -r <mapName>$ python main.py --reset <mapName> |
| Jouer une map | $ python main.py -s <mapName>$ python main.py --start <mapName> |
Les maps générées sont sauvegardées de manière automatique après chaque mise à jour de celle-ci dans un fichier .map portant le nom de la map dans le répertoire saves (exemple: world.map)
De même que pour la map, les entités sont stockées dans le dossier entities
Si vous voulez ajouter des entités dans le fichier, vous pouvez le faire en suivant le formatage de positionnement relatif avec les coordonnées x et y comme dans l'exemple ci dessous pour l'entité "block":
{
"block": "[(x, y), (x, y+1), (x+1, y), (x+1, y+1)]"
}On génère une nouvelle map qu'on va appeller "world" avec $ python main.py -n world 50 50
On ajoute les cellules active de sorte à former une entité:
- Bloc:
$ python main.py -a world "[(2,1), (2,2), (3,1), (3,2)]" - Grenouille:
$ python main.py -a world "[(2,1), (3,1), (4,2), (3,4), (2,4), (1,3)]" - Planeur:
$ python main.py -a world "[(1,1), (2,2), (2,3), (3,1), (3,2)]"
Et on lance le jeu avec $ python main.py en entrant le nom de la map que l'on souhaite charger, ou bien le jeu avec la map souhaitée en entrant $ python main.py -s world directement
- Vous pouvez checker votre configuration avec
$ python main.py -d worldpour afficher la map avec vos cellules actives - Depuis la version 2.0, vous pouvez maintenant enregistrer une entité complète dans le dossier entities et l'ajouter sur la map comme ceci:
- Départ de floraison:
$ python main.py -A world flowering 25 25 - Le clown:
$ python main.py -A world clown 25 25
- Départ de floraison:
Tip
Si vous voulez entièrement la réinitialiser, $ python main.py -r world remet toutes les cellules d'une map à 0
Code sous license GPL v3
