Skip to main content

Консольный расклад по системе Мидичи

Project description

Midich

Консольная утилита для расклада карт по системе Мидичи. Позволяет наблюдать пошаговую визуализацию процесса, а также управлять цветами мастей и скоростью выполнения.


Установка

Установите напрямую из PyPI:

pip install cat-midich

Или локально из исходников:

git clone https://github.com/LazzyCatto/midichi
cd midich
pip install .

Использование

midich [опции]

Доступные флаги:

Флаг Описание По умолчанию
--guided Показ пошаговой визуализации False
--sleep Задержка между шагами (в секундах) 0.1
--add-color Цвет новой карты green
--diamond-color Цвет масти ♦ red
--hearts-color Цвет масти ♥ red
--clubs-color Цвет масти ♣ white
--spades-color Цвет масти ♠ white

Пример:

midich --guided --sleep 0.2 --add-color yellow --diamond-color cyan --spades-color blue

Классы

CardSuit

enum с возможными мастями карт

  • CardSuit.DIAMOND - буби ♦
  • CardSuit.HEARTS - черви ♥
  • CardSuit.SPADES - трефы ♣
  • CardSuit.CLUBS - пики ♠

__str__ и __repr__ возвращают unicode символ мастей (♦, ♥, ♣, ♠)

CardValue

enum с возможными значениями карт

  • CardValue.SIX - "6"
  • CardValue.SEVEN - "7"
  • CardValue.EIGHT - "8"
  • CardValue.NINE - "9"
  • CardValue.TEN - "10"
  • CardValue.JACK - "J"
  • CardValue.QUEEN - "Q"
  • CardValue.KING - "K"
  • CardValue.ACE - "A"

__str__ и __repr__ возвращают символьное описание значения ("6", "7", "8", "9", "10", "J", "Q", "K", "A")

@classmethod from_str(cls, new_value: str) -> "CardValue" - возвращает CardValue из строки. В случае попытки создать CardValue из некорректного состояния - бросает исключение InvalidCardValue

Card

Класс карты. Содержит поля

  • suit: CardSuit
  • value: CardValue

@property rank(self) -> int - возвращает числиное значение веса карты. Для всех числовых крат - значение сохранится, а все буквенные карты перейдут в соответствующие числа

  • "J" -> 11
  • "Q" -> 12
  • "K" -> 13
  • "A" -> 1

Deck

Класс колоды. Изначально создается неперемешанная колода. Содержит поля

  • cards: list[Card] - список карт

  • shuffle() -> None - перемешивает колоду

  • pop() -> Card - достает первую карту из колоды (в случае попытки достать карту из пустой колоды - бросает исключение EmptyDeckAccess)

__str__ и __repr__ выписывают все карты подряд через пробел

__bool__ - проверяет колоду на наличие карт


Методы

расклад

midich(guided: bool = False, **kwargs) -> list[Card] - симуляция расклада с новой колодой

  • guided - если True будет печатать подробный расклад, если False - только выдаст результат
  • kwargs:
    • sleep_time - (необходимо, если guided=True) время ожидения между инструкциями
    • suit_colors - (необходимо, если guided=True) словарь с цветами мастей
    • add_color - (необходимо, если guided=True) цвет последней добавленной карты В случае, есои не все необходимые параметры заданы - бросает исключение GuidedMissingParameters

utils

colored_card(card: Card, suit_colors: dict[str, str], attrs) -> str - генерация цветного текста карты

  • card - карта
  • suit_colors - словарь с цветами мастей
  • attrs - дополнительные тпараметры для termcolor.colored

print_table(cards, sleep_time: float, suit_colors: dict[str, str], highlight_indices: tuple[int]=(), **kwargs) -> None - генерация цветного текста списка карт

  • cards - список карт
  • sleep_time - время ожидания после написания карт
  • suit_colors - словарь с цветами мастей
  • highlight_indices - индексы карт, которые будут подчеркнуты
  • **kwargs - дополнительные параметры
    • add_color: str - цвет последней карты

В планах

  • Генерация аналитики расклада с помощью лёгкой языковой модели (например, GPT-2)
  • Возможность загрузки собственной колоды

Автор

Akio

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cat_midich-0.1.2-py3-none-any.whl (8.0 kB view details)

Uploaded Python 3

File details

Details for the file cat_midich-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: cat_midich-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 8.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.16

File hashes

Hashes for cat_midich-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 5860809a8e6d9861b4c2b2ef92ac22fa4691422e854516aba930a60c8aa2c556
MD5 0c0ae1e2ca49a7a93cfcec058d4dcb39
BLAKE2b-256 185ce6b3d3967c6f76acb080bc229892a3651f871cc1cff4ea4d17f65a9c2a2d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page