Python;用“for x in range”更新列表中的几个位置

2024-04-28 12:56:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我想写一个游戏,一条蛇在矩阵中移动,用一个符号占据位置(我野蛮语言中的泰肯)。它会改变蛇的生长量,它由p决定,然后你可以决定它是水平生长还是垂直生长,信息在b和c中给出。然后我想要的是,我的矩阵将用我的符号更新,然后我的新位置和旧位置之间的所有位置也将用我的符号替换,又名蛇在那个位置生长。这可能有点难以理解我的意思,但这里是for循环,我认为可以做的工作。不幸的是,这并不能填补开始位置和结束位置之间的空白,它只会替换结束位置。有人知道我是怎么做到的吗?你知道吗

   for antal in range(p):
                       ormfält.table[self.x-p*b][self.y-p*c] = self.tecken

Tags: inself语言信息游戏for水平符号
1条回答
网友
1楼 · 发布于 2024-04-28 12:56:48

范围函数为0索引:

>>> p = 3
>>> range(p)
[0, 1, 2]

现在看看当你打开你的循环;你改变了3个字段,但其中一个是你已经在的字段!你知道吗

snakefield.table[self.x - 0 * b][self.y - 0 * c] = self.sign  # <  this one
snakefield.table[self.x - 1 * b][self.y - 1 * c] = self.sign
snakefield.table[self.x - 2 * b][self.y - 2 * c] = self.sign

要向前移动p步而不是p - 1,只需使用:

>>> range(1, p + 1)
[1, 2, 3]

相关问题 更多 >