Skip to main content

Jeu de la vie Conway

Description

Le jeu de la vie (ou game of life) est un automate cellulaire évoluant sur une grille (de taille théoriquement infinie) composée de cases carrées appelées cellules qui ont un état binaire (1 pour vivante et 0 pour morte). Les cellules évoluent dans le temps en fonction de leur voisinage (chaque cellule a 8 cellules voisines)., ce qui modifie la grille à chaque étape d'évolution (appelée génération).

illustration

Règles

  • Une cellule morte possédant exactement 3 voisines vivantes devient vivante (elle naît).
  • Une cellule vivante possédant 2 ou 3 voisines vivantes le reste, sinon elle meurt.
  • Les autres cellules (mortes ou vivantes) restent dans leur état actuel.

Implémentation

Utilisation

On commence par installer le package:

pip3 install galsen-game-of-life

Pour tester notre implementation du jeu de la vie on a plusieurs options:

1. application client/serveur

On a mis en place un websocket client/serveur.

illustration

Pour lancer le serveur websocket, il faut lancer le script main_server.py dans le dossier api/:

python3 api/main_server.py

Le serveur websocket est alors accessible sur ws://localhost:8000

Ensuite on a mis en place un client javascript pour pouvoir communiquer avec le serveur websocket. Il suffit juste d'ouvrir le fichier index.html dans un navigateur web pour pouvoir jouer au jeu de la vie.

Spoiler Alert: On est pas trop bon en html/css par ici!!

2. application console

On peut aussi jouer au jeu de la vie en ligne de commande. Pour cela il vous faudra un fichier de depart contenant un etat initial Exemple de fichier de depart:

0 1 1 1 1 0 1 1 0 1
0 0 0 0 0 0 0 0 0 1
1 0 0 0 1 1 0 0 1 0
0 1 1 0 1 1 0 1 0 1
0 0 0 0 0 1 1 1 0 0
0 0 0 1 0 0 1 0 1 0
1 0 1 1 1 0 0 1 0 1
1 1 0 0 0 0 0 0 1 1
1 0 1 0 1 1 0 1 1 1
1 0 0 0 0 0 1 0 0 0

Pour lancer le jeu de la vie en ligne de commande, il faut ensuite installer le package galsen-game-of-life:

pip3 install galsen-game-of-life

ensuite on peut lancer en ligne de commande:

galsen-game-of-life --input test-data.txt --num-steps 10 --output-file test-data-out.txt

Si on veut voir les etapes intermediaires, on peut ajouter l'option --verbose:

galsen-game-of-life --input test-data.txt --num-steps 10 --output-file test-data-out.txt --verbose 1

Metadata

Release files for galsen-game-of-life 1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for galsen-game-of-life 1.1
File Interpreter ABI Platform
galsen_game_of_life-1.1-py3-none-any.whl Python 3 none any Details

Release files / galsen_game_of_life-1.1-py3-none-any.whl

Download URL galsen_game_of_life-1.1-py3-none-any.whl
Size 17.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c3e316134af9ffea3c879b3fb751837ec992766f5c08f754233339b38a820ceb
BLAKE2b-256 checksum
How to use checksums
4ac2e3ac64a1366d041a135fa12c0a45baac3ba36da74bf2f5dae78fabc75514
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.12

Release history Release notifications | RSS feed

This release

1.1 This release

1 release file

1.0

1 release file

0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page