Advertisement
Guest User

Untitled

a guest
Dec 15th, 2018
2,410
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.44 KB | None | 0 0
  1. """
  2. https://otvet.mail.ru/question/212043138
  3. Решить задачу на Python/На доске стоит белая шашка. Требуется определить, может ли она попасть в заданную клетку
  4. Айгуль Абсалямова Ученик (91), Вопрос открыт 1 день назад
  5. На доске стоит белая шашка. Требуется определить, может ли она попасть в заданную клетку, делая ходы по правилам и не пользуясь ходами дамки (т. е. не используя возможность перемещаться назад после превращения в дамку). Белые шашки могут ходить по черным клеткам по диагонали вверх-влево или вверх-вправо. Ходов может быть несколько!
  6. Доска имеет размер 8x8, вертикали и горизонтали нумеруются числами от 1 до 8 начиная с левого нижнего угла. Исходная и конечная клетки не совпадают.
  7.  
  8. Формат ввода
  9.  
  10. Вводится клетка, где стоит шашка, а затем клетка, куда шашка должна попасть.
  11.  
  12. Каждая клетка описывается номером вертикали, а затем номером горизонтали. Под номером вертикали имеется в виду не номер по вертикали, а номер вертикальной линии считая слева направо. Аналогичная формулировка используется для номера горизонтали: нумерация идет снизу вверх. Например, клетка A2 кодируется как 1 2.
  13.  
  14. Формат вывода
  15.  
  16. Выведите слово YES (заглавными буквами), если шашка может попасть из начальной клетки в указанную, и NO в противном случае.
  17. """
  18. #-----------------------------------------------------------------#
  19. """
  20. --- проверка правильности ввода
  21. - лежат ли обе клетки в пределах шахматной доски 1...8
  22. - является ли клетка черной
  23. - отличается ли финиш от старта
  24.  
  25. --- проверка возможности прохождения
  26. - лежит ли клетка финиша хоть на один ряд выше клетки старта
  27. - меньше ли сдвиг по горизонтали чем по вертикали
  28. """
  29.  
  30. while 1:
  31.     while 1:
  32.         sh, sv = map(int, input('Start: hor ver ').split())
  33.         if ( 1 <= sv <= 8 and 1<= sh <= 8 and
  34.              not (sv+sh)%2):
  35.             break
  36.         else:
  37.             print('Неправильная клетка')
  38.              
  39.     while 1:
  40.         fh, fv = map(int, input('Finish: hor ver ').split())
  41.         if (1 <= fv <= 8 and 1<= fh <= 8 and
  42.             not (fv+fh)%2 and
  43.             (fv != sv or fh != sh)):
  44.             break
  45.         else:
  46.             print('Неправильная клетка')
  47.  
  48.        
  49.     if (fv-sv)>0 and (abs(fh-sh) <= abs(fv-sv)):
  50.         print('YES')
  51.        
  52.     else:
  53.         print('NO')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement