Ход конём
В рамках разработки шахматного ИИ стоит новая задача. По заданным вещественным координатам коня и второй точки программа должна определить может ли конь ходить в эту точку. Используйте как можно меньше конструкций if и логических операторов. Обеспечьте контроль ввода.
Пример:
Введите местоположение коня:
0.071
0.118
Введите местоположение точки на доске:
0.213
0.068
Конь в клетке (0, 1). Точка в клетке (2, 0).
Да, конь может ходить в эту точку.
Python
Помогите пожалуйста решить задачу "Ход конём" в Python.
x1, y1 = float(input('Введите местоположение коня: \n')), float(input())
x2, y2 = float(input('Введите местоположение точки на доске: \n')), float(input())
if (int(10 * x1) - int(10 * x2)) * (int(10 * y1) - int(10 * y2)) in [-2, 2]:
~~print('Да')
else:
~~print('Нет')
Один if, одна логическая операция.
x2, y2 = float(input('Введите местоположение точки на доске: \n')), float(input())
if (int(10 * x1) - int(10 * x2)) * (int(10 * y1) - int(10 * y2)) in [-2, 2]:
~~print('Да')
else:
~~print('Нет')
Один if, одна логическая операция.
Помогаю:
Для получения клеток:
x = float(input())
y = float(input())
print( int(x * 10), int(y * 10) )
Для возможности хода, должно выполниться условие:
abs(y1 - y2) == 2 and abs(x2 - x1) == 1
Или еще одно такое же наоборот, 2 для разницы `x` и 1 для `y`
Для получения клеток:
x = float(input())
y = float(input())
print( int(x * 10), int(y * 10) )
Для возможности хода, должно выполниться условие:
abs(y1 - y2) == 2 and abs(x2 - x1) == 1
Или еще одно такое же наоборот, 2 для разницы `x` и 1 для `y`
Мидинбек Абдырайымов
Спасибо, помогли
print('Задача 7. Ход конём')
while True:
print('Введите местоположение коня:')
x = float(input(' '))
y = float(input(' '))
xSquare = int(x * 10)
ySquare = int(y * 10)
print('Введите местоположение точки на доске:')
point_x = float(input(' '))
point_y = float(input(' '))
point_Square_X = int(point_x * 10)
point_Square_Y = int(point_y * 10)
if 0 <= xSquare <= 8 or 0 <= ySquare <= 8 or 0 <= point_Square_X <= 8 or 0 <= point_Square_Y <= 8:
print(f'Конь в клетке ({xSquare}, {ySquare}) Точка в клетке ({point_Square_X}, {point_Square_Y}).')
break
else:
print('Введите координаты повторно, таких не существует!')
dxy = abs(xSquare - point_Square_X) + abs(ySquare - point_Square_Y) == 3
if dxy:
print('Да, конь может ходить в эту точку.')
else:
print('Нет, конь не может ходить в эту точку.')
while True:
print('Введите местоположение коня:')
x = float(input(' '))
y = float(input(' '))
xSquare = int(x * 10)
ySquare = int(y * 10)
print('Введите местоположение точки на доске:')
point_x = float(input(' '))
point_y = float(input(' '))
point_Square_X = int(point_x * 10)
point_Square_Y = int(point_y * 10)
if 0 <= xSquare <= 8 or 0 <= ySquare <= 8 or 0 <= point_Square_X <= 8 or 0 <= point_Square_Y <= 8:
print(f'Конь в клетке ({xSquare}, {ySquare}) Точка в клетке ({point_Square_X}, {point_Square_Y}).')
break
else:
print('Введите координаты повторно, таких не существует!')
dxy = abs(xSquare - point_Square_X) + abs(ySquare - point_Square_Y) == 3
if dxy:
print('Да, конь может ходить в эту точку.')
else:
print('Нет, конь не может ходить в эту точку.')
Виталий Змитрукевич
Неверно
x = float(input('Введите местоположение коня x: '))
y = float(input('Введите местоположение коня y: '))
bx = float(input('Введите местоположение точки на доске x: '))
by = float(input('Введите местоположение точки на доске y: '))
xSquare = int(x * 10)
ySquare = int(y * 10)
bxSquare = int(bx * 10)
bySquare = int(by * 10)
print('Конь в клетке', (xSquare, ySquare), '.Точка в клетке', (bxSquare, bySquare),'.')
if abs((x-bx) * (y-by)) == 2:
print('Нет, конь не может ходить в эту точку.')
else:
print('Да, конь может ходить в эту точку.')
y = float(input('Введите местоположение коня y: '))
bx = float(input('Введите местоположение точки на доске x: '))
by = float(input('Введите местоположение точки на доске y: '))
xSquare = int(x * 10)
ySquare = int(y * 10)
bxSquare = int(bx * 10)
bySquare = int(by * 10)
print('Конь в клетке', (xSquare, ySquare), '.Точка в клетке', (bxSquare, bySquare),'.')
if abs((x-bx) * (y-by)) == 2:
print('Нет, конь не может ходить в эту точку.')
else:
print('Да, конь может ходить в эту точку.')
Виталий Змитрукевич
Неверно
Medet Bazarbaev
Вообще неверно, Может так конь ходить куда угодно
Похожие вопросы
- Помогите, пожалуйста, решить задачу Python
- Помогите пожалуйста решить задачу на python
- Помогите пожалуйста решить задачу по программированию наpython.
- Помогите пожалуйста решить задачи на питоне:
- Добрый вечер, помогите, пожалуйста, решить задачу по информатике
- Помогите пожалуйста решить задачу на питоне...
- Помогите пожалуйста с задачей на Python.
- Помогите решить задачу в яндекс-практикуме Python
- Помогите пожалуйста с задачей по python!
- Задача «Ход слона» для Python
knight_pos_y = 0.118
board_pos_x = 0.213
board_pos_y = 0.068
x = int(knight_pos_x * 10)
y = int(knight_pos_y * 10)
bx = int(board_pos_x * 10)
by = int(board_pos_y * 10)
print(f'Конь в клетке {x, y}. Точка в клетке {bx, by}')
if abs((x-bx) * (y-by)) == 2:
print('Можно')
else:
print('Нельзя')