注意:该挑战目前已死,因为我无法安装运行比赛所需的语言。如果其他人有时间和兴趣去做,我并不反对。
有关排行榜,请参见帖子底部。
这是一种半合作式的“山上之王”挑战,机器人在其中通过二维网格图构建路径。控制流量最大的节点的机器人是赢家。但是,实际上需要一个机器人的资源来建立一条连接路径,因此这些机器人必须在某种程度上协同工作。
游戏玩法
在下面,N > 0
设为正在运行的机器人的数量。
网格
游戏在尺寸为2的二维整数网格上进行,其左下坐标为。每个坐标与具有出边的三个坐标,以及在其上方,其中,所述坐标-取模 。这意味着网格在东边和西边环绕。每个下坐标是一个源,每个上坐标是一个下沉。⌊4/3N2⌋ × ⌊4/3N2⌋
(0,0)
(x,y)
0 ≤ y < ⌊4/3N2⌋-1
(x-1,y+1)
(x,y+1)
(x+1,y+1)
x
⌊4/3N2⌋
(x,0)
(x,⌊4/3N2⌋-1)
下图显示了一个8 × 8
网格。
图的每个顶点是不活动的,活动的或损坏的。所有顶点都开始处于非活动状态,并且可以被漫游器激活,然后漫游器将成为其所有者。此外,漫游器可能会破坏顶点,因此无法修复。
转单
转弯包括破坏阶段和激活阶段。在销毁阶段,每个漫游器可能会破坏一个不活动的顶点。该顶点从那时起就被破坏了,任何人都不能激活它。在激活阶段,每个漫游器可以激活一个不活动的顶点。从那时起,他们拥有该顶点,并且其他任何人都无法重新激活它。如果多个漫游器都在同一转弯上激活单个顶点,则它们可能拥有一个顶点。在每个阶段,顶点选择是同时完成的。
计分
一轮持续一圈。此后,该回合得分如下。从每个活动的源顶点,我们沿着活动的顶点执行一次随机的深度优先搜索(这意味着每个顶点的子级均以随机顺序访问)。如果找到从源到某个汇的路径,则对于该路径上的所有顶点,顶点的每个所有者都会获得一个点。N2
N
整个游戏持续100回合,而总分最高的机器人就是赢家。如果分数差异太大,我可能会增加这个数字。
附加规则
- 不会弄乱控制器或其他提交内容。
- 每个参赛者最多提交一份。
- 在游戏开始时,除了一个私人文本文件外,没有其他外部资源被清除。
- 不要设计您的机器人来击败或支持特定的对手。
- 提供命令来编译和运行您的机器人。可以免费使用任何可用于Debian Linux的编译器/解释器。
控制器
该控制器是用Python 3编写的,可以在GitHub中找到。有关详细说明,请参见README文件。这是一个让您入门的API:
- 僵尸程序在每个回合开始时开始,并一直持续到回合结束。使用换行符终止的消息,通过STDIN和STDOUT与控制器进行通信。
BEGIN [num-of-bots] [num-of-turns] [side-length]
在开始时输入。DESTROY [turn]
在每个销毁阶段开始时输入。您的漫游器应VERTEX x,y
以选择一个顶点或做出响应NONE
。BROKEN [turn] [your-choice] [other-choices]
在每个销毁阶段结束时输入。其他机器人的顺序在每个游戏开始时都是随机的,但在此过程中保持不变。选项显示为x,y
或N
。ACTIVATE [turn]
和OWNED [turn] [your-choice] [other-choices]
在激活阶段与上述等效,并且具有相同的语义。SCORE [your-score] [other-scores]
在游戏结束时输入。- 您的机器人有1秒的时间来分析阶段的结果并选择下一个顶点,并在给出分数后有1秒的时间退出。我将在相对较旧的笔记本电脑上测试提交的内容,因此最好在此处留一些余量。
请记住刷新您的输出缓冲区。否则可能会使控制器挂在某些环境中。
排行榜
2015年3月13日更新
Peacemaker已启动并正在运行,Funnelweb也收到了更新。分数上升了一个数量级。连接器在两场比赛中超过了时间限制。
Funnelweb: 30911
Connector: 18431
Watermelon: 3488
Annoyance: 1552
Explorer: 735
Checkpoint: 720
Random Builder: 535
FaucetBot: 236
Peacemaker: 80
带有ASCII美术图形的完整日志可以在控制器的存储库中找到graphical_log.txt
。
一些观察:
- 通过断开连接器前面的单个顶点,可以很容易地将其停止。我怀疑烦恼经常这样做。但是,这目前意义不大,因为只有连接器才能构想出一条路径。
- 只需碰巧在连接路径上,西瓜就可以得到不错的成绩(因为DFS很可能会使用其顶点)。
- 探险家喜欢用西瓜种藤。
- 更新的Funnelweb得分很高,因为Connector通常会锁定在网格的下半部分。
- 游戏变得相当长,平均回合在我的机器上花费约25秒。
4/3*N^2
,即使在此处,机器人也难以形成有效的路径。但是,由于出现错误,Connector暂时丧失了参赛资格,现在,它已得到修复,我希望游戏会更加有趣。我今晚要再办一批。