Пример #1
0
    def __init__(self, cards_count):
        """Инициализация стола.

        Параметры:
          - cards_count (int): количество карт для игры.

        При инициализации стола происходит генерация набора
        из 'cards_count' карт (номерами от 1 до 'cards_count').
        Если options.debug == True, карты должны быть лицом вверх.
        После генерации их необходимо перемешать -
        используйте self._card_list.shuffle().

        Необходимо удостовериться, что 'cards_count' > 1.
        """
        assert cards_count > 1, 'Количество карт должно быть больше единицы'
        self._card_list = CardList()
        # print(self._card_list._cards)
        self._card_list._cards = [Card(x) for x in range(1, cards_count + 1)]
        # self._card_list._cards=map(Card,list(range(1,cards_count+1)))
# кажется нельзя использовать мап для создания списка объектов класса
        # print(self._card_list._cards)
# используется поле CardList с '_', еще map может не работать с range
        # print(options.debug)
        if options.debug:
            # print('love')
            list(map(lambda x: x.turn_face(), self._card_list._cards))
# почему мап работает только, когда конвертируется в список???
        # print(self._card_list._cards[0].is_face)
# можно ли без lambda?
        self._card_list.shuffle()
Пример #2
0
    def __init__(self, cards_count):
        assert cards_count > 1, "Недостаточное кол-во карт, для игры!"

        self._card_list = CardList()
        for i in range(1, cards_count + 1):
            card = Card(i)
            if options.debug:
                card.is_face = True
            self._card_list.append(card)
        self._card_list.shuffle()
Пример #3
0
    def __init__(self, name):
        """Инициализация игрока.

        Параметры:
          - name (str): имя игрока.

        В процессе инициализации необходимо:
          - запомнить имя игрока;
          - инициализировать набор карт.
        """
        self.name = name
        self.card_list = CardList()
Пример #4
0
    def create_list(self, language: Language, name: str):
        card_list = CardList(util.slugify(name) + ".json", language, name=name)

        if self.get_flashcard_list_by_name(language, name) is not None:
            msg = QMessageBox()
            msg.setIcon(QMessageBox.Warning)
            msg.setText(
                "Die neue Liste konnte nicht erstellt werden, da eine andere mit dem gleichen Namen bereits existiert."
            )
            msg.setWindowTitle("Liste existiert bereits")
            msg.exec_()

            return

        self.card_lists[language.value][card_list.id] = card_list

        self.save_list(card_list)
Пример #5
0
    def load_lists(self):
        for language in Language:
            self.card_lists[language.value] = {}

            language_dir = self.language_dirs[language.name]

            for file in os.listdir(language_dir):
                if file.endswith(".json"):
                    try:
                        with open(os.path.join(language_dir, file),
                                  encoding='utf-8') as json_file:
                            card_list = CardList(
                                file, language, json_data=json.load(json_file))
                            self.card_lists[language.value][
                                card_list.id] = card_list
                    except:
                        print("Invalid", language.name, "card list '", file,
                              "'")
                        traceback.print_exc()
Пример #6
0
    draw_cards(players_hand, hand_size)
    draw_cards(bots_hand, hand_size)


def draw_cards(card_list, num_of_cards):
    # draws num_of_cards from the top of the deck to the input card_list
    for i in range(num_of_cards):
        card_list.cards.append(deck.cards.pop(0))


def display_current():
    print(players_hand)
    print(bots_hand)
    print(deck.cards)


if __name__ == '__main__':
    # script for playing 2s and 4s 1v1 vs a bot

    # Hardcoded default variables for the game
    hand_size = 5

    # init stuff
    players_hand = CardList()
    bots_hand = CardList()
    deck = CardList()
    play_pile = CardList()
    new_game()

Пример #7
0
    Attributes:
        normal_cards: 通常札
        trump_cards: 切札
        extra_cards: 追加札・毒
    """
    def __init__(self, normal_cards, trump_cards, extra_cards=None):
        # TODO: 追加札はカードから得る(引数で与えない)
        self.normal_cards = normal_cards
        self.trump_cards = trump_cards
        if extra_cards is None:
            self.extra_cards = []
        else:
            self.extra_cards = extra_cards

    def __str__(self):
        return str(self.normal_cards + self.trump_cards)


card_list = CardList()

# ウツロのかけら初期デッキ
utsuro_no_kakera_1 = Deck(
    [card_list[Goddess.UTSURO_HAJIMARI][0][0][i][0] for i in range(7)],
    [card_list[Goddess.UTSURO_HAJIMARI][0][1][i][0] for i in range(3)])

# ホノカのかけら初期デッキ
honoka_no_kakera_1 = Deck(
    [card_list[Goddess.HONOKA_HAJIMARI][0][0][i][0] for i in range(7)],
    [card_list[Goddess.HONOKA_HAJIMARI][0][1][i][0] for i in range(3)])
Пример #8
0
 def __init__(self, name):
     self.name = name
     self.card_list = CardList()