Если это не задачка на рекурсию, а просто получить заданный результат, то по-моему так:
https://pastebin.com/iMCWrCKs"""
--- проверка правильности ввода
- лежат ли обе клетки в пределах шахматной доски 1...8
- является ли клетка черной
- отличается ли финиш от старта
--- проверка возможности прохождения
- лежит ли клетка финиша хоть на один ряд выше клетки старта
- меньше ли сдвиг по горизонтали чем по вертикали
"""
while 1:
while 1:
sh, sv = map(int, input('Start: hor ver ').split())
if ( 1 <= sv <= 8 and 1<= sh <= 8 and
not (sv+sh)%2):
break
else:
print('Неправильная клетка')
while 1:
fh, fv = map(int, input('Finish: hor ver ').split())
if (1 <= fv <= 8 and 1<= fh <= 8 and
not (fv+fh)%2 and
(fv != sv or fh != sh)):
break
else:
print('Неправильная клетка')
if (fv-sv)>0 and (abs(fh-sh) <= abs(fv-sv)):
print('YES')
else:
print('NO')
Доска имеет размер 8x8, вертикали и горизонтали нумеруются числами от 1 до 8 начиная с левого нижнего угла. Исходная и конечная клетки не совпадают.
Формат ввода
Вводится клетка, где стоит шашка, а затем клетка, куда шашка должна попасть.
Каждая клетка описывается номером вертикали, а затем номером горизонтали. Под номером вертикали имеется в виду не номер по вертикали, а номер вертикальной линии считая слева направо. Аналогичная формулировка используется для номера горизонтали: нумерация идет снизу вверх. Например, клетка A2 кодируется как 1 2.
Формат вывода
Выведите слово YES (заглавными буквами), если шашка может попасть из начальной клетки в указанную, и NO в противном случае.