Шаблоны колоды
Генератор колоды.
Более высокоуровневый класс, для генерации колоды по выбранным правилам или по готовым шаблонам.
CARD_PRESETS
module-attribute
CARD_PRESETS: dict[str, DeckPreset] = {'classic': DeckPreset(name='🎻 Классика', desc='Стандартная колода Уно', groups=(CardGroup(_NUMBER, 0, ALL_COLORS, 1), CardGroup(_NUMBER, 1, ALL_COLORS, 2), CardGroup(_NUMBER, 2, ALL_COLORS, 2), CardGroup(_NUMBER, 3, ALL_COLORS, 2), CardGroup(_NUMBER, 4, ALL_COLORS, 2), CardGroup(_NUMBER, 5, ALL_COLORS, 2), CardGroup(_NUMBER, 6, ALL_COLORS, 2), CardGroup(_NUMBER, 7, ALL_COLORS, 2), CardGroup(_NUMBER, 8, ALL_COLORS, 2), CardGroup(_NUMBER, 9, ALL_COLORS, 2), CardGroup(_REVERSE, 1, ALL_COLORS, 2), CardGroup(_TURN, 1, ALL_COLORS, 2), CardGroup(_TAKE, 2, ALL_COLORS, 2), CardGroup(_TAKE_FOUR, 4, [BLACK], 4), CardGroup(_COLOR, 0, [BLACK], 4))), 'wild': DeckPreset(name='🐍 Дикие карты', desc='Меньше цифр, больше действий.', groups=(CardGroup(_NUMBER, 0, ALL_COLORS, 4), CardGroup(_NUMBER, 1, ALL_COLORS, 4), CardGroup(_NUMBER, 2, ALL_COLORS, 4), CardGroup(_NUMBER, 3, ALL_COLORS, 4), CardGroup(_NUMBER, 4, ALL_COLORS, 4), CardGroup(_NUMBER, 5, ALL_COLORS, 4), CardGroup(_REVERSE, 1, ALL_COLORS, 4), CardGroup(_TURN, 1, ALL_COLORS, 4), CardGroup(_TAKE, 2, ALL_COLORS, 4), CardGroup(_TAKE_FOUR, 4, [BLACK], 6), CardGroup(_COLOR, 0, [BLACK], 6))), 'casino': DeckPreset(name='🎰 Казино', desc='Нет слов, одни эмоции.', groups=(CardGroup(_NUMBER, 0, ALL_COLORS, 4), CardGroup(_NUMBER, 1, ALL_COLORS, 4), CardGroup(_NUMBER, 2, ALL_COLORS, 4), CardGroup(_NUMBER, 3, ALL_COLORS, 4), CardGroup(_NUMBER, 4, ALL_COLORS, 4), CardGroup(_NUMBER, 5, ALL_COLORS, 4), CardGroup(_REVERSE, 1, ALL_COLORS, 6), CardGroup(_TURN, 1, ALL_COLORS, 6), CardGroup(_TAKE, 2, ALL_COLORS, 6), CardGroup(_TAKE_FOUR, 4, [BLACK], 8), CardGroup(_COLOR, 0, [BLACK], 8))), 'single': DeckPreset(name='🗑️ Отладочные', desc='По одной карте для каждого типа.', groups=(CardGroup(_NUMBER, 0, ALL_COLORS, 1), CardGroup(_NUMBER, 1, ALL_COLORS, 1), CardGroup(_NUMBER, 2, ALL_COLORS, 1), CardGroup(_NUMBER, 3, ALL_COLORS, 1), CardGroup(_NUMBER, 4, ALL_COLORS, 1), CardGroup(_NUMBER, 5, ALL_COLORS, 1), CardGroup(_NUMBER, 6, ALL_COLORS, 1), CardGroup(_NUMBER, 7, ALL_COLORS, 1), CardGroup(_NUMBER, 8, ALL_COLORS, 1), CardGroup(_NUMBER, 9, ALL_COLORS, 1), CardGroup(_REVERSE, 1, ALL_COLORS, 1), CardGroup(_TURN, 1, ALL_COLORS, 1), CardGroup(_TAKE, 2, ALL_COLORS, 1), CardGroup(_TAKE_FOUR, 4, [BLACK], 1), CardGroup(_COLOR, 0, [BLACK], 1)))}
CardGroup
dataclass
CardGroup(behavior: NumberBehavior, value: int, colors: Iterable[CardColor], count: int)
Группа карт.
Обобщённо описывает карты. которые должны быть. Тип карты, значение, цвета, и их количество в колоде.
К примеру: Числовые карты всех цветов по две на каждый цвет.
behavior
instance-attribute
behavior: NumberBehavior
count
instance-attribute
count: int
value
instance-attribute
value: int
cards
cards() -> Iterator[MauCard]
Преобразует группу карт в итератор экземпляров карт.
Если было указано по 3 карты всех цветов, то он вернёт 12 карт.
DeckGenerator
DeckGenerator(groups: list[CardGroup] | None = None, preset_name: str = 'custom')
Генератор колоды.
Собирает колоду карт, используя группы карт. Позволяет редактировать правила сборки колоды.
DeckPreset
dataclass
DeckPreset(name: str, desc: str, groups: Iterable[CardGroup])
Шаблон колоды.
Содержит готовые правила формирования колоды, которые можно использовать в игре.
desc
instance-attribute
desc: str
name
instance-attribute
name: str