我无法弄清楚这个输出。我在列表mapa作为参数传递空位列表的位置。球也应该存在因为我在p函数中传递它
mapa={1:['.','.','.','.','.','.'],
2:['.','.','.','.','.','.'],
3:['.','.','.','.','.','.']}
pos=[]
ball='o'
vacio='.'
def pintar():
for i in range(1,len(mapa)+1):
print("".join(mapa[i]))
def bola():
for i in range(1,len(mapa)+1):
if ball in mapa[i]:
global pos
x_pos=1
pos.append(x_pos)
def refresh():
pintar()
bola()
def p(dic,inst_replace,inst_player):
(dic[pos[0]]).pop(pos[1])
(dic[pos[0]]).insert(pos[1],inst_replace)
(dic[pos[0]]).pop(pos[1]+1)
(dic[pos[0]]).insert(pos[1]+1,inst_player)
while True:
p(mapa,ball,vacio)
refresh()
print(pos)
答案 0 :(得分:0)
问题似乎是pos[0]
第1行中的p()
。您已将pos
定义为文件顶部附近的空列表,并且您尚未调用bola()
,因此它没有第0个元素。该错误让您知道您已尝试查找不存在的列表索引。
我认为您希望在While循环中将调用顺序切换为refresh()
和p()
,以便在bola()
中进行查找之前调用pos