问题描述
我对 python 非常陌生,正在尝试使用 pygame 制作国际象棋游戏。对于棋子的位置(特别是第一个 pawn),我在一个列表中有一个列表,该列表引用了第一个列表中的索引。稍后当这个列表被调用时,当它们肯定在范围内时,我得到“IndexError:list index out of range”......希望有一点知识的人可以解释这个吗?
我想不出另一种方法来将碎片的位置分配给它们的变量,而且错误并不完全准确,所以老实说我不知道。
pawnA2 = [WHITE_PAWN,1,2]
pawnA2 == [WHITE_PAWN,2,[(pawnA2[1]),(pawnA2[2] + 1)]]
200 行之后...
for event in pygame.event.get():
if event.type == pygame.MOUSEBUTTONDOWN:
if ((pawnA2[1] - 1) * 100 + 5 ) < event.pos[0] < (pawnA2[1] * 100 + 5 ) and (8 - pawnA2[2]) * 100 + 5 < event.pos[1] < (((8 - pawnA2[2]) + 1) * 100 + 5 ):
print("yes")
screen.blit(MOVABLE_SPACE,(((pawnA2[3][0]) - 1) * 100 + 30,(8 - pawnA2[3][1]) * 100 + 30))
else:
screen.blit(third_surface,(5,505))
update_screen()
错误中引用的行是:
screen.blit(MOVABLE_SPACE,(8 - pawnA2[3][1]) * 100 + 30))
解决方法
您在 ==
赋值中使用 =
而不是 pawnA2
,导致语句的计算结果为 false 而不更改 pawnA2