def __init__(self, graphicsBackend, difficultyLevel, playerName): self.board = Board() self.graphics = Graphics(graphicsBackend, self.board, playerName) self.aiPlayer = AI.AIPlayer(self.board, RED, difficultyLevel) # Cache parameters for when we need to restart the game self.graphicsBackend = graphicsBackend self.difficultyLevel = difficultyLevel self.playerName = playerName self.done = False self.mousePos = None self.hoverPiece = None self.hoverButton = 0 self.selectedPiece = None self.profiler = cProfile.Profile() # Last timeDelta from last graphics update self.timeDelta = 0. self.turnNumber = 1 # Player's turn switcher self.board.playerTurn = WHITE # Game state variables self.exitedGame = False self.gameEnded = None self.forceMove = None self.forcedMove = False self.states = { "playerTurn": self.playerTurnEventLoop, "AITurn": self.AITurnEventLoop, "pause": self.pauseEventLoop, "gameOver": self.gameOverEventLoop, "anim": self.waitForAnimationEventLoop } self.state = "playerTurn" self.stateBeforePause = None self.stateAfterAnimation = None