def new_game_init(self): print "New Game initializing" self.game = Game() self.player1 = AI("artificial agent", "X", self) self.player2 = AI("artificial agent 2", "O", self) self.game.setPlayer1(self.player1) self.game.setPlayer2(self.player2) self.game.setFirstMover(self.player1) self.startGame = True self.playerHasMoved = False self.playerMove = None print "New Game started"
class Main: def __init__(self): self.breceiver = BroadcastListener(self) self.net = Network.Instance() self.net.setMain(self) self.webClient = None; self.startGame = False #self.new_game_init() def new_game_init(self): print "New Game initializing" self.game = Game() self.player1 = AI("artificial agent", "X", self) self.player2 = AI("artificial agent 2", "O", self) self.game.setPlayer1(self.player1) self.game.setPlayer2(self.player2) self.game.setFirstMover(self.player1) self.startGame = True self.playerHasMoved = False self.playerMove = None print "New Game started" def startNetwork(self): self.net.startNetwork() def getNextAction(self): if len(self.msgsToSend) == 0: return ""; head = self.msgsToSend[len(self.msgsToSend) - 1]; self.msgsToSend.remove(head); return head; def setWebClient(self, client): self.webClient = client #self.new_game_init() def onWebPeerMessage(self, webConnection, msg): print "MESSAGE FROM CLIENT " + msg self.new_game_init() pass def playerNextMove(self, player, move): self.playerMove = move self.playerHasMoved = True return; def run(self): board_sent_to_player = False while (self.net is None or self.webClient is None or not self.startGame ): print "no work thread sleeping" time.sleep(1) self.net.sendDataWebPeers("HEARTBEAT") self.net.sendDataWebPeers("GAME BOARDSTATE " + str(self.game.board.board)) if self.game.gameover(): winner = self.game.getWinner(); if winner == "": self.net.sendDataWebPeers("GAME GAME_OVER NO_WINNER") else: self.net.sendDataWebPeers("GAME GAME_OVER WINNER " + winner); self.startGame = False if not self.playerHasMoved: if not board_sent_to_player: self.game.next_player.getNextMove(self.game.board.makeCopy()) board_sent_to_player = True else: coord = self.playerMove self.game.makeMove(self.game.next_player, coord) self.playerHasMoved = False self.playerMove = None board_sent_to_player = False time.sleep(1) self.run()
class Main: def __init__(self): self.breceiver = BroadcastListener(self) self.net = Network.Instance() self.net.setMain(self) self.webClient = None self.startGame = False #self.new_game_init() def new_game_init(self): print "New Game initializing" self.game = Game() self.player1 = AI("artificial agent", "X", self) self.player2 = AI("artificial agent 2", "O", self) self.game.setPlayer1(self.player1) self.game.setPlayer2(self.player2) self.game.setFirstMover(self.player1) self.startGame = True self.playerHasMoved = False self.playerMove = None print "New Game started" def startNetwork(self): self.net.startNetwork() def getNextAction(self): if len(self.msgsToSend) == 0: return "" head = self.msgsToSend[len(self.msgsToSend) - 1] self.msgsToSend.remove(head) return head def setWebClient(self, client): self.webClient = client #self.new_game_init() def onWebPeerMessage(self, webConnection, msg): print "MESSAGE FROM CLIENT " + msg self.new_game_init() pass def playerNextMove(self, player, move): self.playerMove = move self.playerHasMoved = True return def run(self): board_sent_to_player = False while (self.net is None or self.webClient is None or not self.startGame): print "no work thread sleeping" time.sleep(1) self.net.sendDataWebPeers("HEARTBEAT") self.net.sendDataWebPeers("GAME BOARDSTATE " + str(self.game.board.board)) if self.game.gameover(): winner = self.game.getWinner() if winner == "": self.net.sendDataWebPeers("GAME GAME_OVER NO_WINNER") else: self.net.sendDataWebPeers("GAME GAME_OVER WINNER " + winner) self.startGame = False if not self.playerHasMoved: if not board_sent_to_player: self.game.next_player.getNextMove(self.game.board.makeCopy()) board_sent_to_player = True else: coord = self.playerMove self.game.makeMove(self.game.next_player, coord) self.playerHasMoved = False self.playerMove = None board_sent_to_player = False time.sleep(1) self.run()