基于终端的在线多人俄罗斯轮盘游戏,输家需执行赢家选择的 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 通用公共许可证 v3.0 提供。
在几乎所有情况下,我强烈建议不要使用此许可证。 然而,鉴于该项目是一个完整的最终产品(一款游戏),我认为在此情境下它是合适的。 如果你有令人信服的理由需要放宽许可,请告知我,或许我们可以探讨使用的许可方式。
仅有 payloads/ 目录中的内容采用 MIT 许可证 提供。
[!CAUTION] 如果输掉游戏,该程序可以在你的电脑上执行由另一名玩家提供的任意代码。
使用本软件前,请仔细阅读并确保你了解远程代码执行的风险、游戏规则以及免责声明。
本软件按“原样”提供,不作任何明示或暗示的担保,包括但不限于适销性、特定用途的适用性及不侵权的保证。在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论是合同行为、侵权或其他方式,由本软件引起或与之相关,或与本软件的使用或其他交易有关。
您对使用本软件可能产生的任何后果承担全部责任,包括但不限于数据丢失、系统损坏或因执行其他玩家提供的代码而导致的法律问题。在参与游戏之前,请务必审查并理解您同意执行的代码。
俄罗斯轮盘在现实生活中是一种危及生命的危险游戏。 本软件仅供娱乐目的,不应视为对此类活动的认可。如果您或您认识的人正在面临与赌博或危及生命行为相关的问题,请寻求专业帮助。总会有人愿意倾听并帮助您。
如果您选择使用本软件,您将自行承担风险。