Trouver la cellule libre voisine dans un tableau à 2 dim

Fermé
samiras87 Messages postés 9 Date d'inscription dimanche 1 juin 2014 Statut Membre Dernière intervention 16 septembre 2014 - 16 sept. 2014 à 09:49
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 16 sept. 2014 à 18:35
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.
A voir également:

1 réponse

Whismeril Messages postés 19022 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 17 avril 2024 928
Modifié par Whismeril le 16/09/2014 à 10:51
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.
0
samiras87 Messages postés 9 Date d'inscription dimanche 1 juin 2014 Statut Membre Dernière intervention 16 septembre 2014
Modifié par samiras87 le 16/09/2014 à 12:01
tout à fait j'ai raisonné de la même façonn mais en utilisant un tableau dans le quel je stock les indices dont les cellules sont égales 0 mais le problème c'est que mon tableau n'est pas initialisé puisque je ne sais pas combien de valeur ça sera égale 0

merci bien je vais essayer avec les listes
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
16 sept. 2014 à 13:40
Bonjour,

"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.
0
samiras87 Messages postés 9 Date d'inscription dimanche 1 juin 2014 Statut Membre Dernière intervention 16 septembre 2014
16 sept. 2014 à 13:45
mon deuxième tableau sert à récupérer les indices dont la valeur =0 c'est à dire les indices de cellules libres et c'est un tableau à 1 dimension dont je ne peux pas savoir sa taille car c'est en fonction des cellules qui ont 0
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015 > samiras87 Messages postés 9 Date d'inscription dimanche 1 juin 2014 Statut Membre Dernière intervention 16 septembre 2014
16 sept. 2014 à 18:35
Je ne vois pas l'intérêt d'avoir un tableau à une dimension qui te donne la même information que ton tableau à deux dimensions, si tu lis au fur et à mesure les valeurs 0 applique directement le traitement associé plutôt que de les stocker dans un coin pour les relire ensuite...
0