Skip to main content

No project description provided

Project description

Тайное послание

Текстовая игра "Любовное послание" в виде бота для телеграма выполненного на python3.7.

Установка и запуск

Установка

$ pip install loveletter

Запуск

Для того чтобы запустить бота требуется установить телеграм и завести себе бота. Для этого достаточно написать в телеграм @botfather, он расскажет, что делать дальше, а в конце выдаст токен вашего бота (он выглядит примерно так 123456789:AAEaEMQlkqjLFEjklajklhCEWOHucAcidOH).

Имея токен можно легко запустить бота:

$ loveletter --token='<token>'

Если не хочестся каждый раз вводить токен руками или искать откуда его скопипастить, то также можно сохранить его в системе, в переменной окружения:

$ export LOVELETTER_TOKEN='<token>'

Тогда бота запускать будет значительно легче :)

$ loveletter

Можно также вообще ничего не устанавливать, а воспользоваться готовым ботом @loveletter_gamebot который принадлежит автору этого репозитория. Впрочем автор не дает никаких гарантий, что бот будет в рабочем состоянии, когда вам захочется поиграть, поэтому, он постарался сделать так что деплой бота на произвольный компьютер, подключенный к интернету будет максимально прост.

Правила игры

Колода

Это карточная игра в которой используется всего 8 карт:

  • (8) Принцесса x1
  • (7) Графиня x1
  • (6) Король x1
  • (5) Принц x2
  • (4) Служанка x2
  • (3) Барон x2
  • (2) Священник x2
  • (1) Стражница x5

Слева от карт указана их ценность, чем она больше — тем больше шансов выиграть в конце раунда, так как из всех оставшихся игроков выигрывает тот, у кого карта самая ценная. Справа указано число карт в стандартной колоде (всего их 16).

Начало игры

В начале игры карты перемешиваются, и одна карта откладывается в сторону — она не будет участвовать в игре (так всегда остается интрига, какие карты остались в колоде), остальные карты расдаются игрокам по одной штуке, определяется порядок ходов и тот кто ходит берет себе еще одну карту.

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

Свойства карт

Ниже перечисленны свойства карт:

  • Принцесса — если скинуть эту карту с руки, игрок моментально выбывает из игры. При этом не важно скинул он ее сам, или же ему пришлось это сделать в результате действий других игроков и их карт. С одной стороны эту карту очень опасно держать на руках, но если удержать ее до конца раунда, обладатель этой карты становится безусловным победителем.
  • Графиня — эту карту можно только скинуть с рук. Более того, если у игрока на руках второй картой оказывается Король или Принц, то игрок обязан играть Графиней. Учитывая что Принцессу он тоже не может скинуть (если не хочет проиграть конечно), то Графиня это хороший индикатор того что у игрока на руке остается ценная карта (впрочем никто не запрещает блефовать и скидывать графиню с мелкими картами на руке).
  • Король — скинув карту выберите другого игрока и обменяйтесь с ним картами, которые у вас на руках.
  • Принц — выберите любого игрока (можно себя), он должен скинуть свою карту с руки и взять другую. Если у него была Принцесса, то он моментально проиграл, а если карт в колоде нет, то игрок берет ту которая была отложена в начале игры.
  • Служанка — сыграв эту карту, игрок становится полностью защищенным от эффектов других карт. Иногда бывает так что все игроки защищены служанкой, а кто то хочет применить карту требующую выбора игрока, тогда он применяет ее на себя (по умолчанию на себя можно применять только карту Принца)
  • Барон — сыграв барона выберите игрока, и сравните ваши с ним карты на руках. Тот у кого карта слабее — выходит из игры. Если же карты одинаковые, ничего не происходит, Барон уходит впустую.
  • Священник — скинув карту игрок может посмотреть карту любого другого игрока, при этом она не раскрывается всем остальным игрокам.
  • Стражница — сбросив карту можете выбрать любого игрока и попробовать угадать, что у него за карта (при этом нельзя загадывать стражницу), если угадаете — игрок выходит из игры.

Цель

Игра продолжается пока не останется один игрок, либо закончатся карты. Среди игроков, которые остаются к концу игры, выигрывает тот, у кого оставшаяся карта на руке. Таким образом можно выбрать любую стратегию поведения, начиная от вариата "побыстрее выкинуть всех игроков из игры и остаться последним", заканчивая таким что игрок всю игру не подает вида и держит на руках Прицессу.

Полные правила игры в переводе от hobby world

Взаимодействие с ботом

У бота есть несколько команд:

  • /help - помощь по командам
  • /create - создать новую игру в чате
  • /join - присоединиться к игре
  • /start - начать игру
  • /cards - показать сброшенные карты
  • /players - показать список игроков
  • /hint - показать краткое описание свойств карт
  • /doubledeck - добавить в игру вторую колоду (полезно, если игроков больше 5)

Для того чтобы начать игру, требуется ее создать. Для этого один из игроков (пусть его ник будет @username) должен послать боту комманду /create. Далее любой игрок может написать боту /join @username (вообще говоря, чтобы присоединиться к игре, требуется указать после /join ник любого игрока, который уже присоединился). Для упрощения процесса, в ответ на создание игры бот пришлет сообщение-приглашение, с инструкцией, которое можно разослать другим игрокам.

Если игроков больше 6, автоматически включится вторая колода. Чтобы выключить/включить ее, требуется послать боту команду /doubledeck.

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

В процессе игры бот будет сообщать Вам какие у Вас карты, предлагать выбрать какую карту сыграть, если это таргетированная карта, то на какого из игроков применить свойство этой карты, и, если разыгрывается карта Стражницы, предложит угадать какую карту держит в руках ваш соперник.

Если Вы хотите написать что либо всем остальным игрокам, Вам необязательно выходить из чата с ботом, достаточно лишь послать любое текстовое сообщение, которое не является командой/названием карты/ником игрока (так как бот может их расценить как часть игрового процесса). Любое такое сообщение будет продублированно у всех остальных игроков.

После того как игра закончится, вы можете запустить ее заново, введя команду /restart, игра будет создана заново, со всеми игроками.

Локализация

В боте присутсвует локализация для русского и английского языков, локализация подключается со стороны сервера вместе с запуском бота:

$ LANG=ru_RU.UTF-8 loveletter
$ LANG=en_EN.UTF-8 loveletter

По умолчанию используются системные параметры (можно проверить командой $ locale)

Project details


Download files

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

Source Distribution

loveletter-0.0.5.tar.gz (20.3 kB view details)

Uploaded Source

Built Distribution

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

loveletter-0.0.5-py3-none-any.whl (19.0 kB view details)

Uploaded Python 3

File details

Details for the file loveletter-0.0.5.tar.gz.

File metadata

  • Download URL: loveletter-0.0.5.tar.gz
  • Upload date:
  • Size: 20.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0.post20191030 requests-toolbelt/0.9.1 tqdm/4.40.2 CPython/3.7.4

File hashes

Hashes for loveletter-0.0.5.tar.gz
Algorithm Hash digest
SHA256 d9d5059c988c610c6300b5de5d829a56632fe2c3122929170b80f3f3c4b9295e
MD5 29827bfd52bca3c068aea4bac14701de
BLAKE2b-256 406de3cbccec3f3a61150ce6c7b5aaa75cee2f12f1228a6096de5f3d23c21713

See more details on using hashes here.

File details

Details for the file loveletter-0.0.5-py3-none-any.whl.

File metadata

  • Download URL: loveletter-0.0.5-py3-none-any.whl
  • Upload date:
  • Size: 19.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0.post20191030 requests-toolbelt/0.9.1 tqdm/4.40.2 CPython/3.7.4

File hashes

Hashes for loveletter-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 42ecac1965f838e8ef274610e752370b2c3db96ec7b593b591a666d875dca1c6
MD5 97512bc2c7b6ff44c23a66c76028c8f9
BLAKE2b-256 8171924cb86191f0bfabd35a74f0b6152257f68e4cc352ed1faaa3e570698928

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