Я использую graphics.py в Python для создания действительно простой 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 гигабайтами оперативной памяти.