Как мне проверить, является ли ход действительным или нет, сделанный Конем и Слоном

#python #python-3.x #algorithm #data-structures #chess

#питон #python-3.x #алгоритм #структуры данных #шахматы

Вопрос:

Выполните следующую функцию, чтобы проверить ход данной шахматной фигуры, и верните True (логическое значение), если ход действителен, или False(логическое значение), если ход недействителен. Шахматная доска приведена ниже для вашей справки.

Функция принимает 3 аргумента

фигура может быть «Конем» или «Слоном».

currentpos(строка) представляет собой комбинацию строки и столбца, это может быть что угодно между «a1» и «h8». currentpos представляет ячейку на шахматной доске, где в данный момент находится фигура

nextpos(строка) также представляет собой комбинацию строки и столбца и также может находиться в диапазоне от «a1» до «h8». nextpos представляет ячейку, в которую должен быть перемещен фрагмент

введите описание изображения здесь

Мне трудно понять этот вопрос. Может ли кто-нибудь подсказать мне правильный подход к этой проблеме?

 def valid_move_or_not(piece,currentpos,nextpos):  #Write your code here  return True  if __name__=='__main__':  #you can run your tests here  print(valid_move_or_not("Knight","a1","a2"))  

Комментарии:

1. Вот вспомогательный вопрос: может ли рыцарь перейти от a1 к a2 ? (и почему).

Ответ №1:

Он просит вас закодировать правило перемещения шахматных фигур. Вы можете погуглить, если вы не знакомы с шахматами.

В качестве простого примера вы можете проверить правильность хода Ладьи, как показано ниже

 def valid_move_or_not(piece,currentpos,nextpos):  if currentpos == nextpos:  return False  if piece == 'Rook':  return (currentpos[0] == nextpos[0]) or (currentpos[1] == nextpos[1])  

Комментарии:

1. Я все еще не мог понять логику найта и бишопа. Ваша помощь будет очень признательна.

2. @Лукас, возможно, начать с Бишопа проще. Слон перемещается по диагонали, что изменяет обе координаты на одинаковую величину (в абс-значении)

3. Это слишком просто, что делать, если между начальным и конечным квадратом есть фигуры?