Aide pour parcours de tableau

Résolu/Fermé
Rushed59286 Messages postés 763 Date d'inscription mardi 19 février 2013 Statut Membre Dernière intervention 12 juillet 2021 - 18 mars 2017 à 11:09
Rushed59286 Messages postés 763 Date d'inscription mardi 19 février 2013 Statut Membre Dernière intervention 12 juillet 2021 - 19 mars 2017 à 16:50
Bonjour à tous, alors voilà j'ai un projet à faire en cours qui est un jeu de plateau

Mon plateau est un tableau de Case ( Classe à part ), ma classe Case a un attribut "type" en int, initialisé à 0 ( case vide )
Puis je place en (0,0) et en (tailleX-1, tailleY-1) 2 bases (c'est à dire les 2 coins opposés)
Ensuite je place aléatoirement un certain nombre d'obstacles sur le plateau en fonction d'un float donné

Ce que je voudrais faire, c'est refaire cette création de plateau tant qu'il n'y a pas au moins un chemin valide ( c'est à dire un chemin de cases vides d'une base à l'autre )

Je voudrais savoir si quelqu'un pouvait m'aider car j'ai déjà essayé par exemple de faire une ArrayList qui contient les cases à visiter ( les voisins vides à partir d'une case ) et une ArrayList qui contient les cases visitées pour éviter de prendre plusieurs fois la même
Mais apparemment je sautais les obstacles car la méthode chargée de faire cette vérification me renvoyait toujours vrai alors qu'il n'y avait pas de chemin

Donc si vous pouvez me donner une autre technique pour faire cette vérification, ou bien si ma technique est bonne, m'aider dans le code ^^

Merci à vous

2 réponses

Dalfab Messages postés 706 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023 101
18 mars 2017 à 15:38
Bonjour,

Une méthode (filling method) :
1) On créé un table des points accessibles, initialement seul (0,0) l'est.
2) on ajoute les nouveaux points accessibles (point accessible d'un point accessible et n'est pas obstable ni point déjà noté accessible)
  • Le coin final vient de passer accessible => fin c'est possible
  • aucun nouveau point accessible => fin c'est impossible
  • sinon reprendre à l'étape 2
0
Rushed59286 Messages postés 763 Date d'inscription mardi 19 février 2013 Statut Membre Dernière intervention 12 juillet 2021 293
19 mars 2017 à 10:55
Je vais tester de cette façon merci
0
Rushed59286 Messages postés 763 Date d'inscription mardi 19 février 2013 Statut Membre Dernière intervention 12 juillet 2021 293
19 mars 2017 à 10:57
Quand tu dis de créer une table, je peux faire ça sous forme d'ArrayList ? Comme ça je peux faire

if(nomArrayList.contains(coinFinal) return true;
0
Rushed59286 Messages postés 763 Date d'inscription mardi 19 février 2013 Statut Membre Dernière intervention 12 juillet 2021 293
19 mars 2017 à 16:50
C'est bon j'ai enfin réussi ;)
0