Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- """
- https://otvet.mail.ru/question/212043138
- Решить задачу на Python/На доске стоит белая шашка. Требуется определить, может ли она попасть в заданную клетку
- Айгуль Абсалямова Ученик (91), Вопрос открыт 1 день назад
- На доске стоит белая шашка. Требуется определить, может ли она попасть в заданную клетку, делая ходы по правилам и не пользуясь ходами дамки (т. е. не используя возможность перемещаться назад после превращения в дамку). Белые шашки могут ходить по черным клеткам по диагонали вверх-влево или вверх-вправо. Ходов может быть несколько!
- Доска имеет размер 8x8, вертикали и горизонтали нумеруются числами от 1 до 8 начиная с левого нижнего угла. Исходная и конечная клетки не совпадают.
- Формат ввода
- Вводится клетка, где стоит шашка, а затем клетка, куда шашка должна попасть.
- Каждая клетка описывается номером вертикали, а затем номером горизонтали. Под номером вертикали имеется в виду не номер по вертикали, а номер вертикальной линии считая слева направо. Аналогичная формулировка используется для номера горизонтали: нумерация идет снизу вверх. Например, клетка A2 кодируется как 1 2.
- Формат вывода
- Выведите слово YES (заглавными буквами), если шашка может попасть из начальной клетки в указанную, и NO в противном случае.
- """
- #-----------------------------------------------------------------#
- """
- --- проверка правильности ввода
- - лежат ли обе клетки в пределах шахматной доски 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')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement