Я пытаюсь создать генератор лабиринта и показываю каждый «шаг» его создания (чтобы показать временную задержку создаваемого лабиринта).
Я пытался использовать комбинированный pyplot.pauseс pyplot.imshow, который работает, но очень медленно, слишком медленно для того, что мне нужно.
Я читал, что funcanimation можно использовать для отображения обновления изображения, но я не могу заставить его работать.
Лабиринт хранится в виде списков списков.
def chooseRandomAction(x, playSpace, possibleNodes, actions):
#gets next maze state
return next_maze_state
intWidth = 5
intHeight = 5
#creates initial state, not relevant to the question.
playSpace = [[3 for x in range(intWidth)] for x in range(intHeight)]
for i in range(1,intHeight - 1):
if(i % 2 == 1):
for j in range(1, intWidth - 1):
if(j % 2 == 1):
playSpace[i][j] = 0
playSpace[1][1] = 1
playSpace[intHeight - 2][intWidth - 2] = 2
possibleNodes = []
possibleNodes.append([1, 1])
possibleNodes.append([intHeight-2, intWidth-2])
a = -1
count = 0
actions = []
for i in range(len(possibleNodes)):
actions+=actionsFromNode(playSpace, [possibleNodes[i][0], possibleNodes[i][1]])
plt.imshow(playSpace)
plt.axis('off')
while(count < 10):
ani = FuncAnimation(plt.gcf(), chooseRandomAction, interval=5, fargs=(playSpace, possibleNodes, actions))
count+=1
plt.show()
Я ожидал, что первые 10 шагов лабиринта будут показаны в некотором интервале времени, но сгенерированное изображение будет отображаться сразу без интервала времени.