2014-11-28 3 views
-1

Китайские шахматы имеют 8 * 8 = 64 ячейки. И точка (1,1), (1,2) .... (8,8).Как рассчитать кратчайшие шаги для этих шахмат

И конь ходит по диагональной линии двух ячеек от точки он включен.

Вычислить самый короткий шаг (ы) между двумя точками для лошади ходить. Например

(1,1) до (4,4). Лошадь идет следующим образом (1,1)> (2,3)> (4,4) 2 этапа

Китайские шахматы, закон законный ! [Введите описание изображения здесь] [1]

+0

Вы фактически не задать вопрос. Тем не менее, я бы предложил просмотреть алгоритм поиска по ширине (http://www.wikipedia.org/wiki/Breadth-first_search) для поиска платы для кратчайшего пути к квадрату адресата. – DaoWen

+0

Подсказка: преобразуйте 8x8 в график, затем примените алгоритм джикстры. Но, пожалуйста, не просите нас сделать домашнее задание. –

ответ

-1

проверить алгоритм Брешенема. это хороший алгоритм для этой задачи

http://en.wikipedia.org/wiki/Bresenham's_line_algorithm

+0

Это, безусловно, не правильный ответ. Подумайте об этом сценарии: лошадь находится на (3,3), и вы хотите переместить ее (4,3). Как этот алгоритм помогает выяснить юридический путь? – DaoWen

0
  1. создать Integer board[8][8]
  2. установить начальную точку в 0.
  3. найдены все точки, где лошадь может двигаться от начальной точки и установите его в 1.
  4. для всех точек, установленных на 1, найти все незастроенные точки, где лошадь может переместиться от них и установить ее на 2.
  5. повторите этот алгоритм до тех пор, пока не будет установлена ​​конечная точка. Число в конечной точке - это количество шагов.

Если вы хотите, чтобы получить путь, который вы должны идти от конечной точки до начальной точки в этой плате:

  1. в конечной точке содержит N.
  2. найти точку, где лошадь может двигаться от конца и содержит N-1.
  3. повторите, пока не достигнете начальной точки.
  4. верните этот путь.
+0

Вы только что описали [поиск по ширине] (http://en.wikipedia.org/wiki/Breadth-first_search). Однако вам нужен способ отслеживания фактического пути. (Обратите внимание, что он хочет _path_ в результате, а не подсчет движения.) – DaoWen

+0

@ DaoWen обновлено, спасибо за имя algo – DontRelaX

1

Вы можете превратить шахматную доску в виде графика, то вы можете использовать алгоритм поиска пути, как Дейкстры:

enter image description here

+0

вы недоразумение. Я говорю о китайских шахматах –

+0

@BruceCing Я не знаю китайских шахмат, но алгоритм все еще действует. Это игра? http://en.wikipedia.org/wiki/Xiangqi#mediaviewer/File:MovementOfHorsePiece.png –

Смежные вопросы