Trouver la cellule libre voisine dans un tableau à 2 dim
samiras87
Messages postés
9
Date d'inscription
Statut
Membre
Dernière intervention
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
j'ai un tableau à deux dimension dans lequel il y a des 0 et 1 répartis, quand je choisis une cellule qui a 1 alors on regarde la valeur de ces 4 cellules voisine et la cellule qui à 0 change sa valeur en 1 -le changement c'est pour une seule cellule parmi les 4-
mon problème c'est savoir la quelle de ses 4 voisines est en 0 pour changer sa valeur, le chois d'une cellules voisine se fait d'une façon aléatoire.

Merci d'avance.
j'ai un tableau à deux dimension dans lequel il y a des 0 et 1 répartis, quand je choisis une cellule qui a 1 alors on regarde la valeur de ces 4 cellules voisine et la cellule qui à 0 change sa valeur en 1 -le changement c'est pour une seule cellule parmi les 4-
mon problème c'est savoir la quelle de ses 4 voisines est en 0 pour changer sa valeur, le chois d'une cellules voisine se fait d'une façon aléatoire.

Merci d'avance.
A voir également:
- Trouver la cellule libre voisine dans un tableau à 2 dim
- Tableau word - Guide
- Trier un tableau excel - Guide
- Tableau ascii - Guide
- Trouver adresse mac - Guide
- Aller à la ligne dans une cellule excel - Guide
1 réponse
Bonjour,
si tu as une case de départ tu as donc ses coordonnées (x et y).
Tu commences par regarder le contenue des 4 cases voisines (il y en a deux qui on le même x et y+1 et y-1, et deux avec le même y et x+1 et x-1, attention de ne pas sortir de la grille).
Quand le contenu vaut 0, tu stockes le jeu de coordonnées dans une liste.
Ensuite tu génères un nombre aléatoire qui devra prendre une valeur entière compris entre 0 et le nombre d'enregistrements dans la liste-1.
Tu auras ainsi un index qui te permet de sortir un jeu de coordonnées de la liste auquel tu pourras appliquer la veleur que tu veux.
Penser aux balises de coloration syntaxique: bouton <>, préciser le langage :<code csharp>.
Quand la solution est trouvée, mettre la discussion Résolue.
si tu as une case de départ tu as donc ses coordonnées (x et y).
Tu commences par regarder le contenue des 4 cases voisines (il y en a deux qui on le même x et y+1 et y-1, et deux avec le même y et x+1 et x-1, attention de ne pas sortir de la grille).
Quand le contenu vaut 0, tu stockes le jeu de coordonnées dans une liste.
Ensuite tu génères un nombre aléatoire qui devra prendre une valeur entière compris entre 0 et le nombre d'enregistrements dans la liste-1.
Tu auras ainsi un index qui te permet de sortir un jeu de coordonnées de la liste auquel tu pourras appliquer la veleur que tu veux.
Penser aux balises de coloration syntaxique: bouton <>, préciser le langage :<code csharp>.
Quand la solution est trouvée, mettre la discussion Résolue.
merci bien je vais essayer avec les listes
"le problème c'est que mon tableau n'est pas initialisé "
Bah... où sont tes 1 alors ? Ils sont bien dans le tableau non ?
Je pense que tu devrais travailler sur des générations successives.
Tu as une matrice avec des 0 et des 1 et une copie de celle-ci sur laquelle tu places les nouveaux 1 en fonction des anciens 1.
Mais du coup ta liste va être très réduite, elle contiendra maximum 4 éléments (Nord, Sud, Est, Ouest) qui seront les cases voisines (lorsqu'elles existent) dont la valeur est 0. Après tirer aléatoirement un nombre entre 1 et 4 c'est pas très dur pour savoir quelle case va être mise à 1.