コード例 #1
0
ファイル: protocol.py プロジェクト: pmbos/hangman
def decode_player(command: str):
    parts = command.split(ASSIGNMENT)
    if parts[0] == PLAYER:
        construction_arguments = parts[1].split(LIST_DELIMITER)

        if len(construction_arguments) == 2:
            try:
                return Result.get_positive((construction_arguments[0],
                                            int(construction_arguments[1])))
            except ValueError as error:
                # WARNING Invalid argument
                return Result.get_negative(error)

    return Result.get_negative()
コード例 #2
0
    def _construct_player(self, command):
        result = P.decode_player(command)

        if not result.success:
            return Result.get_negative()

        name, number_of_players = result.result
        return Result.get_positive(Player(self.player.get_connection, name, number_of_players))
コード例 #3
0
    def _add_to_group(self):
        result = self._check_available_groups()

        if not result.success:
            return Result.get_negative()

        self._add_player_to_queue()
        result.result.add([self.player])

        return Result.get_positive()
コード例 #4
0
    def _check_available_groups(self):
        for group in self.groups:
            if group.count + 1 <= group.min_players and group.count + 1 <= self.player.preferred_players:
                return Result.get_positive(group)

        return Result.get_negative()
コード例 #5
0
 def _send_invalid_input(self):
     try:
         self.player.tell(P.INVALID_INPUT)
         return Result.get_positive()
     except S.error as error:
         return Result.get_negative(error)