def generateMaze(self, playerIds, prevMaze=None): """ Generate a maze for this game. """ self.maze = MazeAI(self.air, self.doId) self.air.createDistributedObject(distObj=self.maze, zoneId=self.objZone) # How many players are we basing this maze on? numPlayers = len(playerIds) mazeSize = max(numPlayers * Globals.MazeSquaresPerPlayer, Globals.MazeMinSize) xsize = math.sqrt(mazeSize) # Expand or contract the width of the maze by up to 33%, so # it's not always square. if random.choice([True, False]): xsize += xsize * random.uniform(0, 0.33) else: xsize -= xsize * random.uniform(0, 0.33) xsize = int(math.floor(xsize + 0.5)) ysize = int(math.floor(mazeSize / xsize + 0.5)) self.mazeId = self.maze.doId self.maze.generateMaze(xsize, ysize, prevMaze=prevMaze)