
Code Rouletteは、ターミナルインターフェースベース(TUI)のオンラインマルチプレイヤー、ロシアンルーレットゲームで、敗者が勝者のPythonペイロードファイルを実行します。
ターミナルインターフェースベースのオンラインマルチプレイヤー、ロシアンルーレット。敗者は勝者のPythonペイロードファイルを実行します。

![]() | ![]() |
![]() | ![]() |
コードルーレットは、ターミナルユーザーインターフェース(TUI)ベースのオンラインマルチプレイヤーロシアンルーレットゲームで、敗者は勝者が選んだPythonペイロードを強制的に実行します。チャット機能も含まれています。
ゲームのインターフェースはすべてターミナルベースであり、Textual を使用しており、キーボードとマウスの両方の操作に対応しています。そのため、Pythonパッケージがインストールでき、ターミナルを開ける環境であればどこでもプレイできます。
負けた場合に他のプレイヤーのPythonペイロードを自分のコンピュータ上で実行することで、本来のロシアンルーレットの本質をデジタル空間で適切にシミュレートできます。
ゲームは、すべてのユーザーがローカルまたはリモートサーバーに接続し、ユーザー名とペイロードファイルを選択することから始まります。十分な数のプレイヤーがロビーに集まると、最初に接続したプレイヤー(ロビーの「オーナー」)がゲームを開始できます。
すべてのプレイヤーはサーバー側で他のプレイヤーとペアになります。その後、各プレイヤーは相手のPythonペイロードファイルを表示され、ゲームから撤退する機会が与えられます。
残ったプレイヤー全員が準備完了になると、ゲームが始まります。各プレイヤーは順番に、ASCIIのリボルバーのトリガーを引きます。チャンバーは隠されているため、どのチャンバーが敗者画面に送るかはわかりません。
最後のトリガーを引かなかったプレイヤーには、誰のコードが実行されているか、コード自体のプレビュー、そして敗者の名前が詳細に表示された勝者画面が表示されます。
敗者の場合、賭けに同意したペイロードファイルが自身のシステム上で実行されます。
[!CAUTION] このプログラムは、ゲームに負けた場合、他のプレイヤーが提供した任意のコードをあなたのコンピュータ上で実行する可能性があります。
このソフトウェアを使用する前に、リモートコード実行のリスクを確認し理解した上で、ゲームの仕組みを理解し、免責事項をお読みください。
[!NOTE] コードルーレットは、まだPyPiパッケージやネイティブ実行可能ファイルとしては利用できません。 ただし、プログラムがより広く配布できる状態になった時点で実装する予定です。
このリポジトリは、UV パッケージマネージャを使用して簡単にローカルで実行できます。
uv run main.py --help
uv run main.py serveruv run main.py client便利なように、pipユーザー向けにrequirements.txtも含まれています。
コードルーレットでは、ペイロードファイルにデフォルトライブラリの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] このプログラムは、ゲームに負けた場合、他のプレイヤーが提供した任意のコードをあなたのコンピュータ上で実行する可能性があります。
このソフトウェアを使用する前に、リモートコード実行のリスクを確認し理解した上で、ゲームの仕組みを理解し、免責事項をお読みください。
このソフトウェアは「現状のまま」提供され、明示または黙示を問わず、商品性、特定目的への適合性、および非侵害の保証を含むがこれらに限定されない、いかなる保証もありません。いかなる場合においても、作者または著作権者は、契約行為、不法行為、またはその他にかかわらず、ソフトウェアまたはソフトウェアの使用もしくはその他の取引に起因または関連して生じたいかなる請求、損害、またはその他の責任についても責任を負いません。
このソフトウェアの使用から生じる可能性のある結果について、データ損失、システム損傷、または他のプレイヤーが提供したコードの実行に起因する法的問題を含むがこれらに限定されない、すべての責任はあなた自身にあります。 ゲームに参加する前に、実行に同意するコードを常に確認し理解してください。
現実世界でのロシアンルーレットは命にかかわる危険なゲームです。 このソフトウェアはエンターテイメント目的のみであり、そのような活動を推奨するものと受け取られるべきではありません。もしあなたやあなたの知り合いがギャンブルや命に関わる行動に関連する問題を抱えている場合は、専門家の助けを求めてください。耳を傾け、助けてくれる人は必ずいます。
このソフトウェアを使用することを選択した場合、自己責任で使用してください。