Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Задачка про короля. Питон...

Руслан Барновский Знаток (282), закрыт 1 месяц назад
 KingX = int(input()) 
KingY = int(input())
OtherX = int(input())
OtherY = int(input())

if ((OtherX + 1 == KingX) or (OtherX - 1 == KingX)) and ((OtherY + 1 == KingY) or (OtherY - 1 == KingY)):
print("YES")
else:
print("NO")
Мой код и задачка. Первые два теста проходит. на последнем стопится. Я просто не понимаю где король должен стоять. чтобы мой код не просчитал возможность его перемещения?
Лучший ответ
твой интимный гусь Мудрец (10288) 1 месяц назад
 KingX = int(input())  
KingY = int(input())
OtherX = int(input())
OtherY = int(input())
Distance = ((KingX - KingY)**2 + (OtherX - OtherY)**2)**0.5
print("YES" if Distance < 2.0 else "NO")
Работа с координатами а не с числами всегда если в условии заданы точкит x1,у2 и x2,у2
Руслан БарновскийЗнаток (282) 1 месяц назад
рекорд! вы смогли пройти 3 тест!
Остальные ответы
Евгений Павлов Гений (50252) 1 месяц назад
А что за тесты? На этом месте условие обрывается.
Хотя... Ты же не проверяешь вариант, когда одна координата совпадает, а другая отличается? Ты же проверяешь по диагонали. Ну, вот, а король стоит рядом по вертикали или горизонтали.
Короче, я бы проверил, что модуль разности по каждой координате меньше или равен 1.
Руслан БарновскийЗнаток (282) 1 месяц назад
да не пишут там какие тестымол сам догадывайся
Евгений Павлов Гений (50252) Руслан Барновский, я догадался и поправил свой ответ.
Евгений ПавловГений (50252) 1 месяц назад
Вместо "==" проверяй "<=", как ещё это написать?

ModX = abs(KingX - OtherX)
ModY = abs(KingY - OtherY)

if (ModX <= 1) and (ModY <= 1):
print("YES")
else:
print("NO")
Руслан Барновский Знаток (282) Евгений Павлов, Он теперь на втором стопорится.
Похожие вопросы