四人对峙
描述
您已经以某种方式陷入四重僵局。手中装有枪支,手榴弹挂在皮带上。
目标是在对峙结束时拥有最大的健康。当最多一个人的健康状况良好时,对峙已经结束。
每个玩家都有5
健康,并且在其健康值下降到/低于时死亡0
。玩家死亡的回合是该玩家可以承受的最后回合。
如果在对峙结束时有一名现场玩家,则该玩家获胜。否则,负面健康程度最低的玩家获胜。
动作
射击:对某人射击。
2
射击活着的敌人会造成伤害0
射击死敌会造成伤害health_at_start_of_turn+2
射击自己会造成伤害。(请注意,这会使您处于最-2
健康状态。)- 如果一个敌人在射击自己的同一回合向您射击,您将以-4的生命值结束对峙(您在杀死自己的回合中仍然受到其他玩家的伤害)。
- 您在接下来的回合中的操作将被忽略(并假设为
Nothing
)。
躲闪:尝试躲避单个对手的投篮。
准备:解开您的手榴弹,并准备扔它。
- 在被炸毁之前,您只有三回合将其扔掉(
6
对自己3
造成伤害,对所有活着的敌人造成伤害) - 用未投掷的手榴弹杀死就等于不投掷手榴弹三圈。
- 在被炸毁之前,您只有三回合将其扔掉(
投掷:将手榴弹扔向某人,并希望获得最好的结果。
8
如果目标还活着,则会受到伤害- 其他每个人(包括您自己)都可能受到
3
伤害
什么都没有:无所事事地转弯,看着每个人都死了。
输入项
您的程序将获得以下信息:
- 每个球员的健康
自对峙开始以来该玩家采取的行动的清单以下是每个玩家传递的信息的格式:
[Health],[Action 1],[Action 2],[Action 3],...
动作将以“ 输出”部分中指定的格式给出。
您将收到4个这样的字符串,它们之间用空格隔开,并作为单个参数传递。这些字符串的顺序为:
[Player Info] [Opponent 1 Info] [Opponent 2 Info] [Opponent 3 Info]
字符串作为第二个参数传递。第一个参数包含一个整数,该整数唯一地标识正在执行的对峙。保证同一组玩家之间的僵持不会同时发生。但是,将同时发生多个对峙。
例如:
$./Player.bash 5 "3,S2,N 5,P,N 3,S0,N -2,S3,N"
当前,玩家和第二个对手的生命值为3,第一个对手的生命值为5,第三个对手的生命值为-2并且已经死亡。
在第一回合:
- 玩家1击中敌人2
- 敌人1准备了手榴弹
- 敌人2投手
- 敌人3开枪自杀
在第二个回合中:
- 所有球员什么都没做。(玩家和敌人2不能做任何事情,因为他们在前一回合射击。敌人3已死:他将
Nothing
在剩下的对峙中继续努力。)
僵局开始时的第二个参数是:5 5 5 5
。
输出量
应该以下面列出的格式输出命令。无效的输出被解释为“无”。要求目标的命令后应跟一个整数(0-3
,0
代表玩家,并1-3
代表敌人1-3)。
S[target]
:拍摄[目标]。D[target]
:尝试躲闪[目标]。P
:准备一枚手榴弹。T[target]
:向[目标]投掷手榴弹。N
: 没做什么。
需要目标的命令,但是在目标之间0
而3
不是目标之间或完全没有目标的命令将假定为目标0
(玩家)。
计分
在每个对峙结束时,玩家将获得一个由以下公式计算得出的分数:
35 + health at end of standoff
如果玩家的对局健康受到不利影响,他们将获得低于35分的分数。以下几点也可以作为奖励:
- 最健康:+4点
- 第二健康:+2分
- 第三健康:+1点。
如果是平局,则给予较低的奖励(如果两个人的健康状况最高,则两个人都被授予+2;如果三个人的健康状况最高,则被授予+1,如果每个人均等,则+0)。
通过计算所有单个分数的平均值来确定最终分数。
规则/细节
- 转弯内的事件顺序如下:
- 所有玩家都在行动。
- 生命值等于或小于0的玩家死亡。
- 需要爆炸的未投掷手榴弹将爆炸(刚刚死亡的玩家仍然受到伤害,因为这仍然是他们死亡的转折点)。
- 条目之间没有协作。
- 每组4名玩家之间将发生三场对峙。(玩家的顺序可能会因每次僵持而有所不同)。
- 占用过多磁盘空间内存的条目将被取消资格。
- 读取或修改除条目以外的文件将使您的条目失去资格。
50th
如果转弯结束时对峙尚未结束,则由醉汉驾驶的卡车将在转弯后驶过所有在场球员50th
。- 这辆卡车会对所有在场玩家造成20点伤害。
- 僵局很快发生。1秒后程序将被切断。
- 即使您已经去世,您的程序也会被调用。
- 您只能在目录中读取或写入文件(如果您的条目名为JohnDoe,则可以将文件保存在目录player / JohnDoe /中);但是,当您的脚本运行时,这将不是当前目录。
- 僵局将在运行Arch Linux的计算机上进行(发布2014.08.01)。
请在您的帖子中包括以下内容:
- 机器人的名字
- 运行bot
java Doe.java
输入(例如)的shell命令将作为单个参数(java Doe.java 5 "-2,S0 -2,S1 -2,S2 5,N"
)通过命令行传递 - 您的机器人代码
- Bot应该如何编译(如果适用)
- 语言(以及适用的版本,尤其是python)
*控制器占用的时间太长,无法容纳六个。
计分板
Observer 43.280570409982
MuhammadAli 43.134861217214
Osama 43.031983702572
LateBoomer 42.560275019099
SimpleShooter 42.412885154062
LessSimpleShooter 42.3772
Neo 42.3738
Scared 42.3678
Richochet 42.3263
Equivocator 42.2833
TwentyFourthsAndAHalfCentury 42.2640
Darwin 42.1584
HanSolo 42.1025
Coward 42.0458
ManipulativeBastard 41.8948
Sadist 41.7232
Aggressor 41.7058
CourageTheDog 41.5629
Grenadier 40.9889
Bomberman 40.8840
Spock 40.8713
Sniper 40.6346
DONTNUKEMEBRO 39.8151
PriorityTargets 39.6126
Hippolyta 39.2480
EmoCowboy 39.2069
Zaenille 39.1971
AntiGrenadier 39.1919
PoliticallyCorrectGunman 39.1689
InputAnalyzer 39.1517
Rule0Bot 39.1000
BiasedOne 39.0664
Pacifist 39.0481
StraightShooter 39.0292
Ninja 38.7801
MAD 38.2543
Monkey 37.7089
Label1Goto1 36.2131
Generated: 2014/08/22 03:56:13.470264860 UTC
日志:在GitHub上