Jeu de la vie avec Kedama

From OFSET Wiki

Jump to: navigation, search

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.


Image:KedamaVieAjoute.png









[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:

Personal tools