def _set_combo_box_values(self): self._grid_sizes = [ GridSize.small, GridSize.medium, GridSize.large ] # fill the grid size combo box for grid_size in self._grid_sizes: grid_size_numerical = grid_size.value grid_size_textual = \ EnumConverters.grid_size_to_string_converter(grid_size) grid_size_caption = "{0} ({1}x{1})".format(grid_size_textual, grid_size_numerical) self.ui.comboBoxGridSize.addItem(grid_size_caption, QVariant(grid_size)) self._player_types[PlayerType.human] = Human.default() self._player_types[PlayerType.cpu] = CPU.default() player_one_textual = EnumConverters.player_type_to_string_converter( PlayerType.human ) player_two_textual = EnumConverters.player_type_to_string_converter( PlayerType.cpu ) # fill the player combo boxes self.ui.comboBoxPlayerOne.addItem( player_one_textual, QVariant(self._player_types[PlayerType.human])) self.ui.comboBoxPlayerTwo.addItem( player_two_textual, QVariant(self._player_types[PlayerType.cpu]))
def _grid_header_output(player_type, header_size): # outputs the grids header row print(Fore.RED + EnumConverters.player_type_to_string_converter(player_type) + "'s grid") print(" " * OutputHelpers._row_space_count, end="") for i in xrange(0, header_size): # padding the column numbers column = i + 1 column_digits = len(str(column)) print(Fore.YELLOW + str(column), end=" " * (OutputHelpers._grid_header_space_count - column_digits)) print(Style.RESET_ALL)
OutputHelpers.clear_output() print(Fore.RED + "Already hit", end="") clear = False continue player_two.shoot(player_one.grid) print(Style.RESET_ALL, end="") # a fleet has been sunk if player_one.fleet.is_sunk(): winner = player_two break elif player_two.fleet.is_sunk(): winner = player_one break session.session_phase = SessionPhase.game_over OutputHelpers.clear_output() OutputHelpers.session_phase_output(session) print(Fore.GREEN + EnumConverters.player_type_to_string_converter( winner.player_type ) + " wins") OutputHelpers.grid_output(player_one) print() OutputHelpers.grid_output(player_two, True) print(Style.RESET_ALL, end="")