Я новичок в программировании в целом, и получил эту задачу от универа:
Определить функцию near_piece (board, x, y), которая использует формулу Пифагора для определения расстояния до ближайшегокусок.Насколько я понял:
def nearest_piece(board, x, y):
distance = 1000001
temp = 0
piece_coordinates = list(board.keys())
for element in piece_coordinates:
temp = math.sqrt(((((piece_coordinates[element][0]) - x)**2)) + ((piece_coordinates[element][1]) - y)**2)
if temp < distance:
shortest_distance = temp
shortest_distance_coordinates = element
else:
continue
return shortest_distance_coordinates
«Доска» - это словарь с «кусочками» внутри.Они хранятся так:
{ (x, y): "player", (x, y): "player" }
Ключ является кортежем, а значение - строкой, в которой указан игрок, которому принадлежит фигура по указанной координате.Причина для расстояния = 100001 просто в том, что это максимальный размер доски.Ранее я решил ошибку с индексацией на board.keys()
, поэтому вместо этого я сделал это в виде списка.Следующей ошибкой является эта, и, похоже, она возникает в строке 6 в этом примере, также в первой итерации.
TypeError: списочные индексы должны быть целыми или кусочками, а не кортежем
Оценитьлюбая помощь.