用Python优化Langton的Ant

时间:2019-09-24 07:25:32

标签: python optimization graphics

我正在Python中使用graphics.py创建一个非常简单的Langton's Ant程序。我的问题是,蚂蚁需要超过2分30秒才能到达“高速公路”。如果可能,我希望将其减少到仅几秒钟。

我已经尝试过“优化”我的代码(从大约90行减少到大约45行,大部分只是压缩一堆if语句)。这节省了大约10秒钟的时间,所以我猜问题是实际的渲染。我确实希望能够看到蚂蚁在屏幕上跟踪其路径,但是我担心问题是将每个像素绘制为黑色或白色。

这是我当前代码的主要内容:

#Import graphics.py and math, initialize variables

grid = [[0 for x in range(xSize)] for y in range(ySize)]  # 0 is white, 1 is black

while key != 'x':
    key = win.checkKey()
    if grid[antX][antY] == 0: #Light square
        if antDir < 4: #Turn ant right
            antDir += 1
        else:
            antDir = 1
        grid[antX][antY] = 1
        win.plotPixel(antX, antY, "black")
    elif grid[antX][antY] == 1: #Dark square
        if antDir > 1: #Turn ant left
            antDir -= 1
        else:
            antDir = 4
        grid[antX][antY] = 0
        win.plotPixel(antX, antY, "white")
    if antDir == 1 and antY != 0:
        antY -= 1
    elif antDir == 2 and antX != xSize-1:
        antX += 1
    elif antDir == 3 and antY != ySize-1:
        antY += 1
    elif antDir == 4 and antX != 0:
        antX -= 1
    else:
        break #Break if touching wall
key = win.getKey()

那么,你们怎么看?我应该使用其他图书馆吗?我的代码中是否有占用时间的东西?还是我不能在合理的时间内重复绘制到屏幕上?

我正在使用Acer Aspire E5-576G和i5处理器以及8 gig RAM。

0 个答案:

没有答案