示例#1
0
 def __init__(self):
     self.main_widget = QWidget()
     self.play_button = get_button("Play", 80, 30)
     self.draw_opengl_button = get_button("Inspect trees", enabled=False)
     self.tree_path_edit = get_hint_line_edit()
     self.tree_path_edit.textChanged[str].connect(
         lambda: self.draw_opengl_button.setEnabled(self.tree_path_edit.text() != ""))
     self.tree_path_edit.setReadOnly(True)
     self.chosen_trees_paths = []
     self.select_tree_path_button_files = get_resizable_button("Select files")
     self.select_tree_path_button_directories = get_resizable_button("Select directory")
     self.chess_button = get_radiobutton("Chess")
     self.mancala_button = get_radiobutton("Mancala")
     self.player_vs_player_button = get_radiobutton("Player vs player")
     self.player_vs_pc_button = get_radiobutton("Player vs PC")
     self.pc_vs_pc_button = get_radiobutton("PC vs PC")
     self.limit_moves_check = get_checkbox("Limit moves in playouts")
     self.player_vs_player_button = get_radiobutton("Player vs player")
     self.player_vs_pc_button = get_radiobutton("Player vs PC")
     self.max_iterations_edit = get_line_edit()
     self.max_time_edit = get_line_edit()
     self.max_moves_edit = get_line_edit()
     self.exploration_parameter_label = get_non_resizable_label("Exploration parameter")
     self.exploration_parameter_edit = get_line_edit()
     self.max_iterations_button = get_radiobutton("Max iterations before move")
     self.max_time_button = get_radiobutton("Max time for move (ms)")
     self.animate_check = get_checkbox("Animate tree growth")
     self.most_visited_label = QLabel()
     self.least_visited_label = QLabel()
     self._create_layout()
     self._add_tooltips()
     self._set_events()
     self._load_defaults()
示例#2
0
 def __init__(self, main_widget, canvas: MonteCarloTreeCanvas, sequences):
     self.canvas = canvas
     self.reset_button = get_button("Reset view")
     self.serialize_csv_radiobutton = get_radiobutton("Save as csv file")
     self.serialize_binary_radiobutton = get_radiobutton(
         "Save as binary file")
     self.save_image_radiobutton = get_radiobutton("Save as bitmap")
     self.serialize_button = get_button("Save tree")
     self.node_panel_widget = None
     self.tree_details_panel_widget = None
     self.tree_details_labels = [["Vertices count", None]]
     self.node_labels = [["Id", None], ["Child count", None],
                         ["State name", None], ["Move name", None],
                         ["Visits count", None], ["Visits count pre", None],
                         ["Win score", None], ["Average prize", None],
                         ["Current player", None]]
     self._create_layout(main_widget, sequences)
示例#3
0
 def _create_jump_to_widget(self):
     self.jump_to_widget = QWidget()
     self.jump_label = get_non_resizable_label("Jump to tree with number: ")
     self.jump_edit_line = get_line_edit(60)
     self.jump_button = get_button("OK", width=20)
     jump_to_layout = QGridLayout()
     self.jump_to_widget.setLayout(jump_to_layout)
     jump_to_layout.addWidget(self.jump_label, 0, 0)
     jump_to_layout.addWidget(self.jump_edit_line, 0, 1)
     jump_to_layout.addWidget(self.jump_button, 0, 2)
示例#4
0
 def _create_left_right_button_widget(self):
     self.left_button = get_button("<<", width=40)
     self.right_button = get_button(">>", width=40)
     self.tree_info_number_label = get_non_resizable_label()
     self.tree_info_filename_label = get_non_resizable_label()
     self.left_right_widget = QWidget()
     left_right_layout = QGridLayout()
     self.left_right_widget.setLayout(left_right_layout)
     self._create_jump_to_widget()
     left_right_layout.addWidget(self.tree_info_filename_label,
                                 0,
                                 0,
                                 1,
                                 2,
                                 alignment=QtCore.Qt.AlignCenter)
     if len(self.canvas.trees_paths) > 1:
         left_right_layout.addWidget(self.tree_info_number_label,
                                     1,
                                     0,
                                     1,
                                     2,
                                     alignment=QtCore.Qt.AlignCenter)
         left_right_layout.addWidget(self.left_button,
                                     2,
                                     0,
                                     alignment=QtCore.Qt.AlignRight)
         left_right_layout.addWidget(self.right_button,
                                     2,
                                     1,
                                     alignment=QtCore.Qt.AlignLeft)
         left_right_layout.addWidget(self.jump_to_widget,
                                     3,
                                     0,
                                     1,
                                     2,
                                     alignment=QtCore.Qt.AlignCenter)
示例#5
0
 def _create_game_layout(self):
     self.game_layout = QGridLayout()
     # self.game_layout.setContentsMargins(0, 20, 20, 20)
     self.game_layout.setSpacing(20)
     self.game_widget = QWidget()
     self.game_widget.setLayout(self.game_layout)
     self.start_over_button = get_button("Start over")
     self.start_over_button.clicked.connect(self._handle_start_over_button)
     self.game_status_label = get_non_resizable_label("Game in progress")
     self.game_layout.addWidget(self.manager.canvas, 0, 0)
     self.game_layout.addWidget(self.game_status_label,
                                1,
                                0,
                                alignment=QtCore.Qt.AlignCenter)
     self.game_layout.addWidget(self.start_over_button,
                                2,
                                0,
                                alignment=QtCore.Qt.AlignCenter)
 def __init__(self, parent: QMainWindow, manager: MonteCarloWindowManager, display_settings: DisplaySettings):
     self.main_layout = QGridLayout()
     self.next_move_button = get_button("Make next move")
     self.next_move_button.clicked.connect(self.handle_next_move_button)
     super(MachineVsMachineWindow, self).__init__(parent, manager, display_settings, self.main_layout)
     self.game_layout.addWidget(self.next_move_button, 3, 0, alignment=QtCore.Qt.AlignCenter)