首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >List_Name.clear导致python崩溃

List_Name.clear导致python崩溃
EN

Stack Overflow用户
提问于 2021-05-15 04:29:16
回答 1查看 23关注 0票数 0

我正在尝试创建一个蛇形算法,它本身就能击败游戏,我已经采用了哈密顿循环方法,具有创建快捷方式的能力,我试图通过使用寻路算法来创建循环,并计算最长的路径,其中蛇的头部是起点,尾部是终点,中间的两个块是墙,python中的寻路库使用一个矩阵来表示像素的地图,所以为了生成我的矩阵,我使用了以下代码块:

代码语言:javascript
运行
复制
from pathfinding.core.grid import Grid
from pathfinding.finder.a_star import AStarFinder
from pathfinding.core.diagonal_movement import DiagonalMovement


matrix=[]
row=[]

yi=0
xi=0

while yi<800:
  if row != []:
    matrix.append(row)
    yi += 20
    row.clear()     #This causes crash
  while xi<1400:
    row.append(1)
    if  xi == 40 or xi == 60:
      if yi == 20:
        row.append(0)
    xi += 20

grid = Grid(matrix=matrix)

start = grid.node(4, 1)
end = grid.node(1, 1)

finder = AStarFinder(diagonal_movement=DiagonalMovement.always)
path, runs = finder.find_path(start, end, grid)

print('operations:', runs, 'path length:', len(path))
print(grid.grid_str(path=path, start=start, end=end))

但每当我运行它时,它就会崩溃,我已经将它的范围缩小到row.clear()行,但我不知道为什么它会这样做,如果我删除它,就不会创建墙,其他清空列表的方法如:row=[]

代码语言:javascript
运行
复制
while i<len(row):
     row.remove(i)
     row += 1

给我同样的结果,我没有得到错误消息,什么也没有打印,只是崩溃了,整个代码更清楚了,因为显示蛇的游戏的窗口没有显示任何东西,窗口崩溃窗口出现了,我使用的是windows 10,python 3.8.2

我是编程新手,所以请原谅我的低效代码,我这样做是为了好玩,性能给我带来一点乐趣,任何帮助都是非常感谢的

我希望我没有遗漏任何明显的东西,浪费您的时间,但只要我的代码被修复,我就是一个快乐的家伙。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2021-05-16 22:10:40

事实证明,我真的很愚蠢,忘记添加xi = 0,这样它就可以再次开始缩进循环,而不是直接循环到无穷大

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67540618

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档