示例#1
0
    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]))
示例#2
0
    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)
示例#3
0
            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="")