在我的游戏中,我有一个元组列表 (x,y):
最终,opti等于
solution = [(36, 37), (36, 36), (36, 35), (37, 35), (38, 35), (38, 34), (38, 33), (38, 32)]
这个列表描述了玩家从点(36,37)移动到点(38,32)应该执行的动作。
我想将这个列表简化为以下内容:
opti = [(36, 37), (36, 35), (38, 35), (38, 32)]
这意味着我想将任何固定x(或固定y)的一系列步骤缩减为仅第一个和最后一个步骤。
我正在努力想出一种算法来实现这一点。我已经尝试了两个多小时,以下是我目前正在努力解决的问题:
solution = [(36, 37), (36, 36), (36, 35), (37, 35), (38, 35), (38, 34), (38, 33), (38, 32)]
opti = [solution[0]]
for i in range(len(solution)):
if opti[-1][0] == solution[i][0]:
pass
elif opti[-1][1] == solution[i][1]:
pass
else:
opti.append(solution[i])
最终,opti等于
[(36, 37), (37, 35), (38, 34)]
,这不是我想要的... 有人可以指导我正确的做法吗?
(36, 36)
被删除而(36, 35)
没有被删除呢? - Gabriel