У меня есть функция (называемая generateMaze), которая должна генерировать лабиринт, но до сих пор она просто находила каждую «ячейку» в сетке. Когда он находит ячейку, он помечает ячейку как «посещенную». Я отмечаю каждую ячейку черным кружком, но когда она была «посещена», она должна быть отмечена как зеленая. Когда я запускаю программу, все мгновенно становится зеленым. Я хотел бы добавить сон в конце функции generateMaze, чтобы я мог видеть, как происходит процесс зеленеть ячеек, а не происходит мгновенно. В функции он печатает «Len: {len (openCells)}», который печатает количество ячеек, для которых разрешено go. Если я добавлю спящий режим в любое место функции, он начнет печатать числа, которые go превышают возможный максимум, равный 4.
# Function
def generateMaze(x=40, y=40):
global cells
possiblePositions = []
openCells = []
# These are all the possible positions that we can go to
possiblePositions.append([x-80, y])
possiblePositions.append([x+80, y])
possiblePositions.append([x, y-80])
possiblePositions.append([x, y+80])
# Find open cells using the possiblePositions
for cell in cells:
for i in range(len(possiblePositions)):
if cell.x == possiblePositions[i][0] and cell.y == possiblePositions[i][1] and (not cell.visited()):
openCells.append(cell)
# Choose random cell
print("Len: ", len(openCells))
if len(openCells) > 0:
targetCell = openCells[randint(0, len(openCells)-1)]
if targetCell in cells:
cells[cells.index(targetCell)].visit()
else:
print("Error: Could not find targetCell in cells")
generateMaze(targetCell.x, targetCell.y)
else:
print("Done generating")
#mainloop
while not done:
# [...]
if shouldGenMaze:
shouldGenMaze = False
print("Generating Maze...")
x = threading.Thread(target = generateMaze)
x.start()
# [...]