Пример #1
0
 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"
Пример #2
0
	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"
Пример #3
0
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()
Пример #4
0
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()