跳转到主要内容

"这个镇子不够大,容纳不下我们两个机器人"

项目描述

Showdown
========

这个镇子不够大,容纳不下我们两个机器人

这是什么?
-------------

Showdown是一款为两个机器人(以及编写这些机器人的人们)设计的游戏

规则
---------

.. 图像:: https://nerdist.com/wp-content/uploads/2016/08/Good-Bad-Ugly-Trio.jpg
:alt: Showdown(墨西哥枪战)来自《好人、坏人、丑人》(图片来自https://nerdist.com/)

基础
^^^^^^

这款游戏由2个机器人(即玩家)进行,实现为2个不同的命令行程序。

每个机器人代表西部电影风格对决中的对手。他们都有6发子弹的Colt手枪,并开始时有一颗子弹上膛。目标是射杀对方,在他们脆弱时进行射击。

玩家通过发出3个允许的命令之一:``射击``、``躲避``、``装弹``来同时进行游戏。然后,如果两个玩家都幸存,他们将看到对方做了什么,然后重新开始,等等。

谁会死?
^^^^^^^^^^

(A和B可以是2个玩家中的任何一个)

- 如果A在B装弹时射击,B会死
- 如果A和B都射击,但B没有更多的子弹,B会死
- 如果A在B发出无效命令或他们的程序已退出时射击,B会死
- 如果B在一秒钟内没有发出命令(但他们的程序仍在运行),B会死。这个规则是为了避免在每一轮都会减慢游戏速度的机器人。

在其他所有情况下,游戏继续进行。

弹药
^^^^^^^^^^

每个玩家开始时枪中有1发子弹。射击总是从你的枪中移除一颗子弹(除非它已经空了)。装弹总是向你的枪中添加一颗子弹(除非它已经有6颗子弹并已满)

回合 & 胜利
^^^^^^^^^^^^^^^

当对手死亡、至少一名对手给出指令超过一秒,或者经过100回合后,游戏将停止。

如果没有胜者,则胜者将被选为躲避次数最少的一方。如果双方躲避的次数相同,则随机选择胜者。

输入、输出、时间
^^^^^^^^^^^^^^^^^^^^^^^^

在这里,“print”意味着写入stdout,后面跟换行符(`\n`),而“read”则表示从stdin读取,直到遇到换行符。

程序应在进程开始后10秒内打印其名称

然后,只要游戏在进行,程序应重复以下两个动作。

程序应打印出当前回合的动作,动作可以是“shoot”、“dodge”或“reload”。
然后,程序可能会读取对手所采取的动作。动作可以是“shoot”、“dodge”、“reload”、“shoot_no_bullet”(如果对手射击但没有子弹),或“stand”(如果对手发送了无效的命令)。

程序接收到对手动作后有一秒钟的时间来打印自己的动作,否则游戏将被终止。

程序
-----------

.. code::bash

showdown first command with args -vs- second command with args

项目详情


下载文件

下载适合您平台的应用程序。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

showdown-0.1.0.dev0.tar.gz (10.6 kB 查看哈希值)

上传时间

构建分发

showdown-0.1.0.dev0-py2.py3-none-any.whl (13.9 kB 查看哈希值)

上传时间 Python 2 Python 3

支持者:

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面