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()
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()