Bonjour, je cherche un Algo pour écrire la fonction qui permet de determiner l'état des voisins d'une cellule pour défenir son état futur.
L'algo utilisant des boucles imbriqué m'étant interdit j'ai du mal à trouver autre choses.
Merci à vous.
Bonjour, je cherche un Algo pour écrire la fonction qui permet de determiner l'état des voisins d'une cellule pour défenir son état futur.
L'algo utilisant des boucles imbriqué m'étant interdit j'ai du mal à trouver autre choses.
Merci à vous.
Peux-tu nous expliquer ce que tu entends par "L'algo utilisant des boucles imbriqué m'étant interdit j'ai du mal à trouver autre choses." . Est-ce dans l'évolution du système ou dans la sélection des cellules ?
Le jeu de la vie se déroule dans un tableau 2D.
L'approche typique pour parcourir un tableau 2D est d'utiliser 2 boucles imbriquées, style:
for (i=0 ; i<hauteur ; i++)
for (j=0 ; j<largeur ; j++)tripotage de la cellule en [i, j]
Est-ce de cela qu'il est question ? Tu dois parcourir le tableau avec une seule boucle for ?
Si oui:
for (k=0 ; k<largeur*hauteur ; k++)
j = k modulo largeur
i = arrondiInferieur( k / largeur )
// tripotage de la cellule en [i, j]
Dans un cas classique de jeu de la vie, la plupart des cellules sont vides. Itérer sur toutes les cellules du tableau (à supposer que l'on ait effectivement fixé des frontières à la zone de jeu) est une mauvaise idée : mieux vaut itérer sur toutes les cellules en vie.
Il y a bien imbrication de boucle, mais la second ne contient que 9 itérations. La difficulté est ici de gérer la simultanéité : il ne faut pas calculer l'état n+1 de Bob en fonction de l'état n+1 d'Alice qui a déjà été calculé, mais bien de son état précédent (n).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Pour chaque cellule vivante c, pour chaque voisin v de c (c étant son propre voisin), calculer le nouvel état de v fin pour. fin pour.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager