Example #1
0
    def set_computer_player(self, w ,data):
        # 0 - Computer plays White
        # 1 - Computer plays Red
        # 2 - Computer plays White and Red
        # 3 - Computer Off
        option = data.get_current_value()
        if option == 0:
            self.white_player = COMPUTER 
            self.red_player = HUMAN                       
        elif option == 1:
            self.white_player = HUMAN
            self.red_player = COMPUTER 
        elif option == 2:
            self.white_player = COMPUTER
            self.red_player = COMPUTER  
        else:
            self.white_player = HUMAN
            self.red_player = HUMAN           

        if self.side_to_move == RED and self.red_player == COMPUTER:
            engine.setcomputercolour(RED)
        elif self.side_to_move == WHITE and self.white_player == COMPUTER:
            engine.setcomputercolour(WHITE)

        self.set_panel_msg2()
        self.gui.init_all_dnd()
Example #2
0
    def computer_move(self):
        try:
            
            self.start_time = time.time()
            self.src = 0
            self.thinking = True
            # disable some functionality while the computer is thinking
            Gdk.threads_enter()
            self.gui.disable_menu_items()
            Gdk.threads_leave()
            
            Gdk.threads_enter()
            self.gui.set_status_bar_msg(self.get_side_to_move_msg() + '...')
            Gdk.threads_leave()

            GObject.timeout_add(200, self.running_display)
            #GObject.idle_add(self.running_display)            
                       
            pre_board = self.board.get_board_position()
            self.pre_board = pre_board[:]

            # Call the engine to make computers move
            engine.setcomputercolour(self.side_to_move)            
            board_position = engine.cmove(str(self.side_to_move))
            self.board.set_board_position(board_position)

            post_board = self.board.get_board_position()
            self.post_board = post_board[:]            

            # enable functionality previously disabled
            Gdk.threads_enter()
            self.gui.enable_menu_items()
            Gdk.threads_leave()
                                   
            self.thinking = False            

            # display updated board
            GObject.timeout_add(200, self.show_computer_move)                                              
        except:
            traceback.print_exc()