
Code Roulette — это терминальный интерфейс (TUI), многопользовательская онлайн-игра в русскую рулетку, где проигравший выполняет Python payload файл победителя.
Многопользовательская русская рулетка на основе терминального интерфейса, где проигравший выполняет Python-файл полезной нагрузки победителя.

![]() | ![]() |
![]() | ![]() |
Code Roulette — это многопользовательская игра в русскую рулетку на основе терминального интерфейса (TUI), где проигравший вынужден выполнить Python-файл полезной нагрузки по выбору победителя. Включает чат.
Интерфейс игры полностью основан на терминале с использованием Textual и поддерживает взаимодействие как с клавиатуры, так и с мыши. Таким образом, в нее можно играть везде, где можно установить пакеты Python и открыть терминал.
Выполняя на своем компьютере Python-файл полезной нагрузки другого игрока в случае проигрыша, суть оригинальной игры в русскую рулетку можно адекватно смоделировать в цифровом пространстве.
Игра начинается с подключения всех пользователей к локальному или удаленному серверу и выбора имен пользователей и файлов полезной нагрузки. Как только в лобби собирается достаточное количество игроков, первый подключившийся (владелец лобби) может запустить игру.
Все игроки будут попарно соединены на стороне сервера с другим игроком. Затем каждому игроку будет показан файл полезной нагрузки его оппонента и предоставлена возможность отказаться.
После того как все оставшиеся игроки подтвердят готовность, игра начинается. Каждый игрок по очереди нажимает на курок ASCII-револьвера. Камеры скрыты, поэтому любая из них может стать той, что отправит вас на экран проигравшего.
Для тех, кто нажал на курок не в последний раз, отображается экран победителя с подробной информацией о том, чей код сейчас выполняется, предварительным просмотром самого кода и именем проигравшего игрока.
Для проигравшего на его системе выполняется файл полезной нагрузки, с которым он согласился рисковать.
[!CAUTION] Эта программа может выполнять на вашем компьютере произвольный код, предоставленный другим игроком, если вы проиграете игру.
Пожалуйста, ознакомьтесь и убедитесь, что вы понимаете риски удаленного выполнения кода, как игра работает и прочитайте отказ от ответственности, прежде чем использовать это программное обеспечение!
[!NOTE] Code Roulette еще не доступна в виде пакета PyPi или нативного исполняемого файла. Однако я планирую реализовать это, когда программа будет готова к более широкому распространению.
Этот репозиторий можно легко запустить локально с помощью менеджера пакетов UV.
uv run main.py --help
uv run main.py serveruv run main.py clientДля удобства также включен файл requirements.txt для пользователей pip.
В Code Roulette вы можете использовать любые возможности стандартной библиотеки Python 3 в ваших файлах полезной нагрузки. Поскольку система открыта, вы можете придумать способ импорта дополнительных пакетов. Однако такая поддержка не будет реализована нативно в игре.
Примеры файлов полезной нагрузки можно найти в каталоге payloads/.
Индекс файлов полезной нагрузки в формате JSON также доступен из этого репозитория для разработчиков. Будущие планы включают интеграцию выбора файлов из этой базы данных.
Убедитесь, что textual-dev также добавлен в зависимости.
Клиент можно открыть в режиме разработчика Textual, выполнив: textual run --dev -c uv run main.py --log-level debug client
Этот репозиторий, за исключением содержимого каталога payloads/, распространяется на условиях GNU General Public License v3.0.
Практически при любых обстоятельствах я настоятельно рекомендую не использовать эту лицензию. Однако, учитывая характер этого проекта как готового конечного продукта (игры), я считаю ее уместной в данном контексте. Если у вас есть веская причина для открытия кода, дайте мне знать, и мы, возможно, сможем обсудить лицензирование для использования.
Содержимое каталога payloads/ только распространяется на условиях MIT License.
[!CAUTION] Эта программа может выполнять на вашем компьютере произвольный код, предоставленный другим игроком, если вы проиграете игру.
Пожалуйста, ознакомьтесь и убедитесь, что вы понимаете риски удаленного выполнения кода, как игра работает и прочитайте отказ от ответственности, прежде чем использовать это программное обеспечение!
Это программное обеспечение предоставляется «как есть», без каких-либо гарантий, явных или подразумеваемых, включая, но не ограничиваясь, гарантиями товарной пригодности, соответствия для конкретной цели и ненарушения прав. Ни при каких обстоятельствах авторы или правообладатели не несут ответственности за какие-либо претензии, убытки или другие обязательства, будь то в рамках договорных, деликтных или иных отношений, возникающих из, в связи с или в ходе использования этого программного обеспечения или других действий с ним.
Вы несете единоличную ответственность за любые последствия, которые могут возникнуть в результате использования этого программного обеспечения, включая, но не ограничиваясь, потерю данных, повреждение системы или юридические проблемы, возникшие в результате выполнения кода, предоставленного другими игроками. Всегда проверяйте и понимайте код, который вы соглашаетесь выполнять, перед участием в игре.