Le jeu de la vie de John Horton Conway
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
- base64.b64decode, base64.b64encode
- json.dumps, json.loads
- os.system
- sys.argv, sys.version_info
- platform.system
- time.sleep
- zlib.compress, zlib.decompress
Fonctionnalités | Commandes |
---|---|
Exécuter le script | $ python main.py |
Créer une nouvelle map | $ python main.py -n <mapName> <x> <y> $ python main.py --new <mapName> <x> <y> |
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> |
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 fichier entity.json
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:
{
"nom de l'entité": "[(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 world
pour afficher la map avec vos cellules actives - Depuis la version 2.0, vous pouvez maintenant enregistrer une entité complète dans entity.json 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:
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