Создать функцию с именем repeated_position(current_position, moves)
, которая для заданной позиции (current_position) и списка ходов (ходов) возвращает первую позицию, в которой пешка оказывается во второй раз (если такая позиция существует),или -1, если все позиции, занятые пешкой, различны.
Я уже создал функцию для определения следующего местоположения:
def next_position(current_position, move):
x, y = current_position
if move == 'left':
new_position = (x - 1, y)
elif move == 'right':
new_position = (x + 1, y)
elif move == 'up':
new_position = (x, y + 1)
else:
new_position = (x, y - 1)
return new_position
Но я не уверен, как написать ifусловия здесь.Что я получил:
def repeated_position(current_position, moves):
x, y = current_position
location = set()
for move in moves:
if next_position(current_position, move) not in location:
location.add(next_position(current_position, move))
elif next_position(current_position, move) in location:
return next_position(current_position, move)
elif len(location)==len(moves):
return -1