Esempio n. 1
0
    def cpu_button_press(self, index):
        assert index in range(9)

        # Adds token to the tic tac toe board
        if not self.state.add_token(CONST.LOC_LOCAL_CPU, index): return
        self.vsCpu_view.update_tooltip(f'You had made your move at grid {index}!')
        self.play_sound()
        self.refresh_boards()

        # Checks for winning
        winner = State.checkWinningState(self.state.cpu_board)
        # Player wins, or tied
        if winner is not None:
            Controller.show_cpu_winner(winner, self.state.isPlayerFirst)
            self.state.game_set(CONST.LOC_LOCAL_CPU, winner)
            self.vsCpu_view.update_tooltip(f'A new game has begin')
            self.refresh_boards()

            # After refresh, check if CPU moves first
            if not self.state.isPlayerFirst:
                move = self.state.cpu_moves()
                self.play_sound()
                self.refresh_boards()
                self.vsCpu_view.update_tooltip(f'CPU had made its move at grid {move}!')
                return

        # Player moves but not yet deterministic. CPU moves and check state
        move = self.state.cpu_moves()
        self.play_sound()
        self.refresh_boards()
        self.vsCpu_view.update_tooltip(f'CPU had made its move at grid {move}!')
        winner = State.checkWinningState(self.state.cpu_board)
        # Tie or CPU wins
        if winner is not None:
            Controller.show_cpu_winner(winner, self.state.isPlayerFirst)
            self.state.game_set(CONST.LOC_LOCAL_CPU, winner)
            self.refresh_boards()
            self.vsCpu_view.update_tooltip('A new game has begin')

            # After refresh, check if CPU moves first
            if not self.state.isPlayerFirst:
                move = self.state.cpu_moves()
                self.play_sound()
                self.refresh_boards()
                self.vsCpu_view.update_tooltip(f'CPU had made its move at grid {move}!')
Esempio n. 2
0
    def practice_button_press(self, index):
        assert index in range(9)

        # 1 - Adds token to the tic tac toe board
        if not self.state.add_token(CONST.LOC_LOCAL_VS, index): return
        token = 'X' if self.state.isOTurn else 'O'
        self.practice_view.update_tooltip(f'{token} had made his move at grid {index}!')
        self.play_sound()
        self.refresh_boards()

        # 2 - Checks for winning state, and set state, show winner if someone does win
        winner = State.checkWinningState( self.state.practice_board )
        if winner is None: return
        self.state.game_set(CONST.LOC_LOCAL_VS, winner)
        Controller.show_practice_winner(winner)
        self.practice_view.update_tooltip('A new game has begun')
        self.refresh_boards()