欢迎使用Code Bots 2!
自上次代码漫游以来,您已经学到了教训。您试图找出更多的方法以更少的行数来适应更多的动作,现在您终于拥有了它。您将制作一个事件驱动的代码机器人。
您的漫游器必须由24行组成。每行遵循以下两种格式之一:
Condition:Action
要么
Action
您的漫游器还具有足够的存储空间来存储5个A
通过命名的整数E
。整数可以存储0到23之间的值。
每回合,您将执行line C
,除非其中一个条件为真。如果是这样,C
则将包含条件为真的行号,然后将执行该行。在每个回合结束时,C
将递增。
有可用条件:
Start
仅在第一回合才成立。您必须一次在您的代码中包含此代码BotAt(N)
如果在N定义的位置有一个机器人,则为trueEquals(A,B)
如果A等于B,则为true。它们可以是不同的类型,如果是,则它们将不相等。Modified(A)
如果A
在上一回合中复制到,则为true 。A
必须是变量名,行或条件Any(C1,C2,...)
如果任何条件为真,则为真None(C1,C2,...)
如果没有一个条件为真,则为真All(C1,C2,...)
如果所有条件都为真,则为真Not(C)
如果C为假,则为true。C
必须是一个条件。
变量可以采用以下格式之一。前9个数字,可在此页面中使用N时使用。
A
,B
,C
,D
,E
- 0到23之间的数字
This
将返回当前所在的行号Add(N1,N2,...)
将返回所有值的总和Sub(N1,N2)
将返回N1减去N2Mult(N1,N2,...)
将返回所有值的乘积Div(N1,N2)
将返回N1除以N2Mod(N1,N2)
将返回N1 mod N2OVar(N)
将接受变量名称,并返回对手的变量Line(N)
将在您的代码中返回第N行Type(N)
将在您的代码中返回第N行类型(类型是操作的名称)Cond(N)
将在第N行返回条件CondType(N)
将在第N行返回条件类型(类型是条件的名称)OLine(N)
将返回对手代码中的第N行OType(N)
将返回对手代码中的第N行类型OCond(N)
将在第N行返回条件OCondType(N)
将在第N行返回条件类型
A
和B
供您个人使用,C
用于确定要在代码中执行的行,并D
用作指示。每个值都D
引用不同的正方形和方向对。E
每次产生一个随机值。 D
并且E
将被初始化为随机值,否则0
。
使用的方向为[North,East,South,West][D%4]
。您的对手是朝该方向紧邻的机器人。
您可以使用4种操作:
Move
会D
沿th方向向前移动1格。如果那里有机器人,您将不会移动。Copy(A,B)
会将变量复制A
到B
。B
变量名除外,不能为数值。A
且B
不能为其他类型。复制行不会复制条件。Flag
什么也没做。 代码中标记最多的机器人将获得分数。得分最高的机器人将获胜。If(C,L1,L2)
L1
如果C
为true,则执行该行,否则执行L2
。C
是一个条件,L1
并且L2
必须是直线。
大图景
每个机器人将有50个副本被投放到世界上。您的目标是让您的标志进入尽可能多的机器人。对于每个具有比其他任何标志类型更多的标志类型的机器人,您将获得一个分数。
机器人的位置如下:
B...B...B...B...
..B...B...B...B.
B...B...B...B...
将进行10场比赛,并且将在所有游戏中平均得分,从而确定获胜者。
旁注
如果有多个条件,Start
则将立即执行紧随其后的条件
僵尸程序将被紧密打包,但您不会开始与另一个僵尸程序相邻。(技术上将与上一个CodeBots相同)
由于此挑战并未发布在沙盒中(不会给任何人带来优势),因此我保留更改小细节以保持公平或附加功能的权利。另外,如果CodeBots运行程序中存在错误,即使机器人依靠该错误获得成功,我也将对其进行更改。我正在努力做到公平。
递归If
语句将不会执行
如果您的漫游器短于24行,其余行将被填充 Flag
请记住,复制到自己的副本时C
,该C
值在回合结束时增加。
可以在此处找到CodeBots解释器。它包含一个.jar文件,以便于执行。只需将您的机器人添加到bots文件夹
分数
- 893.9博格
- 1.3懒惰
- 0.9后卫
- 0.5旗手
- 0.4 CliqueBot
- 0.4阴险的
- 0.3攻击者
- 0.3加尔
- 0.3单目标
- 0.2 FreezeBot
- 0.2前哨
- 0.2路过
- 0.0反阴险
- 0.0 MoveBot
- 0.0 CliqueBorg
- 0.0计算器
- 0.0测试宝
- 0.0模仿者
更新
现在,当您查看对手的代码时,代码行将旋转。这意味着,对手的第1行可能是第14行(或其他任何行)。机器人将有一个固定的偏移X
量,当对手观看时,该偏移量将使其线偏移。对手的C
变量也将偏移相同的X
数量。 X
在同一个游戏中不会改变,但是在不同游戏中会改变。