Jeu de la vie avec Kedama
From OFSET Wiki
Contents |
[edit] Introduction
Le jeu de la vie est la simulation de structures imitant des comportements attribués au vivant. On imagine des cellules réparties dans les cases d'un espace à 2 dimensions. Le comportement d'une cellule à la nouvelle génération dépend du nombre de ses voisines.
- Si une cellule a moins de 2 ou plus de 3 voisines, la cellule meurt de solitude ou d'étouffement.
- Si une case vide a 3 voisines, un cellule naît.
On calcule toutes les voisines avant de modifier la situation (pseudo parallélisme).
[edit] Représentation avec Kedama
- Les cases seront surveillées par des tortues cachées recouvrant les cases. Ces tortues compteront les voisines et modifieront les traces.
- Les traces représentent les cellules vivantes.
Interface:
Un seconde tortue permettra de tracer des motifs initiaux ou de placer les cellules vivantes initiales.
[edit] Réalisation
[edit] Initialisation
L'initialisation:
- Efface les marques.
- Fixe le compteur à zéro.
- Crée 100000 tortues.
- range les tortues dans le monde.
Le script range distribue les tortues en 100 rangées de 100 tortues.
- Le compteur augmente de 1 à chaque tortue.
- Les X sont le reste de la division du compteur par 100.
- Les Y sont le quotient de la division par 100.
- On cache les tortues.
Remarque: Pour faire faire toutes les commandes ensembles par une tortue Kedama, on met ces commandes dans un test. Sans partie test, la condition est toujours vraie.
[edit] Calcul d'une nouvelle génération
Le calcul se fait en 2 temps.
- Calcul de voisines.
- Affichage des nouvelles traces suivant les règles.
[edit] Calcul de voisines
On déplace l'ensemble des tortues autour de leur case, à chaque fois qu'une tortue se retrouve sur une marque, le script testeETAjoute ajoute 1 à sa variable voisines.
Pour simplifier l'écriture, le test et l'addition du compteur sont réalisés par le script testeETAjoute.
[edit] Affichage des nouvelles traces suivant les règles
Suivant le nombre de voisines détectées par les tests, une trace est mise ou enlevées.
[edit] Interface utilisateur
Deux possibilités sont offertes pour créer la situation initiale.
- Placer les cellules au hasard. On peut choisir le nombre.
- Dessiner une configuration avec la souris.
Les marques initiales sont tracées par une deuxième tortue.
[edit] Placer les cellules au hasard
- Attribution d'une couleur à la tortue.
- Suppression des anciennes traces.
- En mettant le nombre de tortues à zéro et en créant un nouveau nombre de tortues, on distribue les tortues au hasard. La variable nbMarques sera affichée pour permettre le choix du nombre de cellules à placer.
- On marque les cellules à l'emplacement des tortues.
- On ramène le nombre de tortues à 1 pour le placement manuel.
[edit] Dessiner une configuration avec la souris
Une scène servira à recueillir les coordonnées de la souris, on déplacera la tortue suivant l'emplacement de la souris dans la scène. Comme Y varie en sens inverse dans E-toy et Kedama, on utilise l'expression 100 - sourisY.
Ce script sera activé lorsque la souris entre dans la scène et désactivé lorsqu'elle la quitte.
Lorsque l'on clique, une marque est déposée, s'il y en a pas ou enlevée, s'il y en a une.
Voir et étudier le projet:










