Question : Serpent d'algorithme d'A* 2D avec l'itinéraire maximum d'obstacles

J'ai besoin d'un certain algorithme rapide (comme A*) pour résoudre l'itinéraire maximum dans le 2D avec les obstacles (serpent mobile à travers toutes les positions libres). le
I l'ont fait avec la récursion mais sur une plus grande table de peu un débordement de pile se produit. nom de fichier " " de >

le " le " de >
class= de

Réponse : Serpent d'algorithme d'A* 2D avec l'itinéraire maximum d'obstacles

L'ok, mes deux idées sont :

* se déplacer seulement si vous pouvez encore atteindre le conseil entier
* se déplacer seulement si vous ne créerez pas un cul-de-sac

Voici le code, il travaille assez bien, à moins que la solution n'existe pas dans ce cas elle essaye toutes les positions de début, avant de conclure cela. Je doute qu'il puisse être fait mieux.
1 :
2 :
3 :
4 :
5 :
6 :
7 :
8 :
9 :
10 :
11 :
12 :
13 :
14 :
15 :
16 :
17 :
18 :
19 :
20 :
21 :
22 :
23 :
24 :
25 :
26 :
27 :
28 :
29 :
30 :
31 :
32 :
33 :
34 :
35 :
36 :
37 :
38 :
39 :
40 :
41 :
42 :
43 :
44 :
45 :
46 :
47 :
48 :
49 :
50 :
51 :
52 :
53 :
54 :
55 :
56 :
57 :
58 :
59 :
60 :
61 :
62 :
63 :
64 :
65 :
66 :
67 :
68 :
69 :
70 :
71 :
72 :
73 :
74 :
75 :
76 :
77 :
78 :
79 :
80 :
81 :
82 :
83 :
84 :
85 :
86 :
87 :
88 :
89 :
90 :
91 :
92 :
93 :
94 :
95 :
96 :
97 :
98 :
99 :
100 :
101 :
102 :
103 :
104 :
105 :
106 :
107 :
108 :
109 :
110 :
111 :
112 :
113 :
114 :
115 :
116 :
117 :
118 :
119 :
120 :
121 :
122 :
123 :
124 :
125 :
126 :
127 :
128 :
129 :
130 :
131 :
132 :
133 :
134 :
135 :
136 :
137 :
138 :
139 :
140 :
141 :
142 :
143 :
144 :
145 :
146 :
147 :
148 :
149 :
150 :
151 :
152 :
153 :
154 :
155 :
156 :
157 :
158 :
159 :
160 :
161 :
162 :
163 :
164 :
165 :
/*
 * Przemyslaw Horban (nr. albumu : 262940)
 * Uniwersystet Warszawski
 *

labrunner de paquet ;

importation java.util.ArrayList ;
importation java.util. Liste ;

/**
 *
 * @author Przemyslaw Horban  

* classe publique LabRunner { carte de char [] [] ; international W, h ; boeuf privé d'international [] = {- 1, 1, 0, 0}, oy = {0, 0, 1, -1} ; char privé [] stepChar = {''<>, « v », « ^ »} ; dirCh d'international ; promenade booléenne privée (international X, international y) { si (checkDeadEnds (x, y) checkReachability de && (x, y)) { wayToGo booléen = faux ; pour (international i = 0 ; i < 4="">= 0 nx de && < w="">= 0 newX ny < h="">de && de && = 0 < w="">= 0 newY de && < h=""> 1) faux de retour ; } } } de retour rectifier ; } classer la pinte { international X, y ; Pinte (international X, international y) { this.x = x ; this.y = y ; } } checkReachability booléen privé (international X, international y) { toVisit de liste = nouvel ArrayList () ; booléen [] [] a visité = nouveau booléen [h] [W] ; toVisit.add (nouvelle pinte (x, y)) ; visité [y] [x] = rectifier ; tandis que (! toVisit.isEmpty ()) { Pinte p = toVisit.get (toVisit.size () - 1) ; toVisit.remove (toVisit.size () - 1) ; pour (international i = 0 ; i < 4="">= 0 newX de && < w="">= 0 newY de && < h="">

Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us