У меня есть этот фрагмент кода, в котором я пытаюсь создать цикл внутри цикла, чтобы определить, существует ли определенная позиция дважды.Изменение значений
current_dir = 1
position = [0,0]
index = 0
move_list = ["L2", "L3", "L3", "L4", "R1", "R2", "L3", "R3", "R3", "L1", "L3", "R2", "R3", "L3", "R4", "R3", "R3", "L1", "L4", "R4", "L2", "R5", "R1", "L5", "R1", "R3", "L5", "R2", "L2", "R2", "R1", "L1", "L3", "L3", "R4", "R5", "R4", "L1", "L189", "L2", "R2", "L5", "R5", "R45", "L3", "R4", "R77", "L1", "R1", "R194", "R2", "L5", "L3", "L2", "L1", "R5", "L3", "L3", "L5", "L5", "L5", "R2", "L1", "L2", "L3", "R2", "R5", "R4", "L2", "R3", "R5", "L2", "L2", "R3", "L3", "L2", "L1", "L3", "R5", "R4", "R3", "R2", "L1", "R2", "L5", "R4", "L5", "L4", "R4", "L2", "R5", "L3", "L2", "R4", "L1", "L2", "R2", "R3", "L2", "L5", "R1", "R1", "R3", "R4", "R1", "R2", "R4", "R5", "L3", "L5", "L3", "L3", "R5", "R4", "R1", "L3", "R1", "L3", "R3", "R3", "R3", "L1", "R3", "R4", "L5", "L3", "L1", "L5", "L4", "R4", "R1", "L4", "R3", "R3", "R5", "R4", "R3", "R3", "L1", "L2", "R1", "L4", "L4", "L3", "L4", "L3", "L5", "R2", "R4", "L2"]
for i in move_list:
turn = i[0]
movement = int(i[1:])
if turn == "R":
current_dir += 1
if current_dir > 4:
current_dir = 1
if turn == "L":
current_dir -= 1
if current_dir < 1:
current_dir = 4
if current_dir == 1: #Move North
position[1] += movement
if current_dir == 3: #Move South
position[1] -= movement
if current_dir == 2: #Move East
position[0] += movement
if current_dir == 4: #Move West
position[0] -= movement
position_2 = position
current_dir2 = current_dir
turn2 = turn
for f in move_list[index+1:]:
turn2 = f[0]
movement2 = int(f[1:])
if turn2 == "R":
current_dir2 += 1
if current_dir2 > 4:
current_dir2 = 1
if turn2 == "L":
current_dir2 -= 1
if current_dir2 < 1:
current_dir2 = 4
if current_dir2 == 1: # Move North
position_2[1] += movement2
if current_dir2 == 3: # Move South
position_2[1] -= movement2
if current_dir2 == 2: # Move East
position_2[0] += movement2
if current_dir2 == 4: # Move West
position_2[0] -= movement2
print position_2
print position
i = + 1
index += 1
Он должен работать нормально, но у меня есть проблема, когда значение позиции изменяется, когда я пытаюсь изменить position_2, и я действительно не понимаю, почему.
Это меняет в этой части
if current_dir2 == 1: # Move North
position_2[1] += movement2
if current_dir2 == 3: # Move South
position_2[1] -= movement2
if current_dir2 == 2: # Move East
position_2[0] += movement2
if current_dir2 == 4: # Move West
position_2[0] -= movement2
Также подтвердите 'i = + 1' часть вашего кода. Я верю своей неправильной логике. 'i' изначально является членом move_list, но вы пытаетесь добавить 1 к этому. –
@VijayakumarUdupa: Это не добавление одного, оно заменяет его 1. Не повредит ничего, потому что 'i' автоматически обновляется по циклу, это просто не-op для большинства целей. – ShadowRanger
Упс, прочитайте неверный код. –