Вопрос : Змейка алгоритма A* 2D с трассой препон максимальной

Мне нужен некоторый быстрый алгоритм (как A*) для разрешать максимальную трассу в 2D с препонами (moving змейкой через все свободно положения).
I делало его с рекурсией но на таблице бита более большой переполнение стога происходит. filename " class= >

snake.JPG (6 KB) яваскрипт " href= " " attachmentDetails class= (тип архива детали) описание " ширина class= "
>
class=

Ответ : Змейка алгоритма A* 2D с трассой препон максимальной

О'кейо, мои 2 идеи являются следующими:

* двиньте только если вы можете все еще достигнуть всю доску
* двиньте только если вы не создадите тупик

Здесь Кодий, оно работает довольно наилучшим образом, если разрешение не существовать в который случай оно пытается все стартовые положения, перед заключать то. Я сомневаюсь его можно сделать более лучше.
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 пакета;

ввоз java.util.ArrayList;
ввоз java.util. Список;

/**
 *
 * @author Przemyslaw Horban  

* общественный тип LabRunner { карта чарса [] []; int w, h; приватный вол int [] = {- 1, 1, 0, 0}, oy = {0, 0, 1, -1}; приватный чарс [] stepChar = {''<>, «v», «^»}; dirCh int; приватная булевская прогулка (int x, int y) { если (checkReachability, то && checkDeadEnds (x, y) (x, y)) { булевское wayToGo = ложно; для (int iий = 0; iий < 4="">= 0 nx && < w="">= 0 newX && < h="">&& ny = 0 < w="">= 0 newY && < h=""> 1) возвращенное ложное; } } } возвращенно true; } классифицируйте Pt { int x, y; Pt (int x, int y) { this.x = x; this.y = y; } } приватное булевское checkReachability (int x, int y) { toVisit списка = новое ArrayList (); булевско [] [] посетил = новое булевское [h] [w]; toVisit.add (новый Pt (x, y)); посещено [y] [x] = true; пока (! toVisit.isEmpty ()) { Pt p = toVisit.get (toVisit.size () - 1); toVisit.remove (toVisit.size () - 1); для (int iий = 0; iий < 4="">= 0 newX && < w="">= 0 newY && < h="">

Другие решения  
  •  Как я добавляю кнопки на форме PDF для того чтобы добавить/извлекаю рядки данных?
  •  Шнур ошибки в блоке задвижки?
  •  сколько вариант сервера SQL на одной машине
  •  Внешний вид 2007 не может архивный файл открытой сети сохраненный
  •  Активно директория DNS записывает вопрос
  •  Отчет о доступа 2010 экспорта к CSV с коллекторами?
  •  Прокладчик OCE 9400 не начинает
  •  как добавить десятичное место в формуле в отчете о кристалла seagate
  •  Windows XP и Мичрософт Оутлоок и проблемы установителя Windows
  •  VB6 к VS2010 - консультации тренировки?
  •  
    programming4us programming4us