def extendBlocks(grid, extends): symbols = getBlockSymbolsList(grid) for _ in range(extends): if symbols == []: break symbol = random.choice(symbols) grid = extendBlock(grid, symbol) symbols.remove(symbol) return grid
def getAverageBlockSize(grid): totalSizeX = 0 totalSizeY = 0 totalNo = 0 for symbol in getBlockSymbolsList(grid): totalNo += 1 (sizeX, sizeY) = (getBlockSize(symbol, grid)) totalSizeX += sizeX totalSizeY += sizeY return (totalSizeX/totalNo, totalSizeY/totalNo)
def getAverageBlockSize(grid): totalSizeX = 0 totalSizeY = 0 totalNo = 0 for symbol in getBlockSymbolsList(grid): totalNo += 1 (sizeX, sizeY) = (getBlockSize(symbol, grid)) totalSizeX += sizeX totalSizeY += sizeY return (totalSizeX / totalNo, totalSizeY / totalNo)
def performNRandomSteps(grid, n): temp = SlidingBlock(grid) count = 0 while True: count += 1 validActions = getValidActions(grid) if validActions != []: action = random.choice(validActions) grid = temp.result(grid, action) if checkIfGoalTileIsInUpperLeftHalfgrid(grid): break else: if count > 1000: for symbol in getBlockSymbolsList(grid): if checkIfAnyTileIsInUpperLeftHalfgrid(grid, symbol): grid = exchangeBlock(grid, 1, symbol) continue return grid