Skip to content

Tracks12/conwayGameOfLife.py

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

89 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

conwayGameOfLife

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.

Sommaire

  1. Consignes
  2. Pré-requis
  3. Utilisations
  4. Sauvegarde
  5. Exemples d'utilisations
  6. Licence

Consignes

La liste des consignes du sujet est disponible dans le todo.md

Sommaire

Pré-requis

L'installation de Python 3 est recommandé pour l'éxécution du script

Sommaire

Dépendances

Sommaire

Utilisations

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>

Sommaire

Sauvegarde

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)

Sommaire

Les entités

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)]",
  ...
}

Sommaire

Exemples d'utilisations

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

Sommaire

Aperçu

aperçu

Sommaire

Remarque

  • 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

Si vous voulez entièrement la réinitialiser, $ python main.py -r world remet toutes les cellules d'une map à 0

Sommaire

Licence

Code sous license GPL v3

Sommaire