class GameManager: def __init__(self, size = 4): self.grid = Grid(size) self.computerAI = None self.PlayerAI = None self.over = False def setComputerAI(self, compAI): self.computerAI = compAI def setPlayerAI(self, playerAI): self.playerAI = playerAI def display(self): for cell in self.grid.board: print cell def getRandomValue(self): if randint(0,99) < 100*0.9: return 2 else: return 4 def insertRandomTile(self): tilevalue = self.getRandomValue() cells = self.grid.AvailableCells() random_cells = cells[randint(0,len(cells)-1)] self.grid.board[random_cells[0]][random_cells[1]] = tilevalue def start(self): for i in range(2): self.insertRandomTile() self.display() turn = PLAYER while True: gridCopy = self.grid.copy_grid() move = None if turn == PLAYER: print "Player's Turn" move = self.playerAI.getmove(gridCopy) #print actionDic[move] #validate move if move != None and move >= 0 and move < 4: if self.grid.isTileMovable([move]): self.grid.move(move) maxtile = self.grid.getMaxTile() else: print "Computer's turn" move = self.computerAI.getmove(gridCopy) if self.grid.canInsert(move): self.grid.board[move[0]][move[1]] = self.getRandomValue() self.display() if maxtile == 2048: break turn = 1 - turn