我自己已经在寻找解决方案,也许我什么也没找到,或者我什至无法识别正确的解决方案。
我已经完成了这门课程的作业并且代码可以工作,但是当我将它放入代码测试器(课程所需)时,我收到以下消息:
合并([4])预期 [4] 但收到(异常:IndexError)“列表索引超出范围”在第 16 行,在合并中
我怎样才能摆脱这个错误?顺便说一句,这是创建游戏“2048”的尝试,其中非零数字必须向左移动,并且相同的数字将结合起来产生双倍的价值。
2 0 2 4 应该变成 4 4 0 0
这是我的代码:
def merge(line):
"""
Function that merges a single row or column in 2048.
"""
new_list = line
for x in line:
if x == 0:
line.remove(0)
line.append(0)
if new_list[0] == new_list[1]:
new_list[0] = new_list[0] * 2
new_list.pop(1)
new_list.append(0)
else:
pass
if new_list[1] == new_list[2]:
new_list[1] = new_list[1] * 2
new_list.pop(2)
new_list.append(0)
else:
pass
if new_list[2] == new_list[3]:
new_list[2] = new_list[2] * 2
new_list.pop(3)
new_list.append(0)
else:
pass
return new_list
return []
#test
print '2, 0, 2, 4 becomes', merge([2, 0, 2, 4])