代码机器人
我讨厌私有和保护变量。我只想访问任何东西!
如果您像我一样,那么这个挑战就是给您的!
编写一个与其他机器人协调工作的机器人,使其他机器人按您的意愿工作。您是一名程序员,并且您知道应该如何工作。您的工作是将尽可能多的其他漫游器转换为您的方式。
代码
您将有24行代码来编写您的机器人。每回合,每个漫游器将顺序执行1行。
每个漫游器A
通过都存储5个变量E
。 A
并且B
供个人使用,C
存储要执行的下一行,D
存储当前方向,并且E
是一个随机数。变量从0开始,除了除外D
,后者将从一个随机值开始。所有变量仅存储0-23。更大或更小的数字将被24调制。
在这篇文章中,我将使用对手作为您面临的相邻机器人
每行必须包含以下5个命令之一:
Flag
什么也没做。除了这是你赢的方式Move
将您的漫游器移向D
th方向。如果机器人已经占据了空间,则不会发生任何移动Copy Var1 Var2
将Var1的内容复制到Var2If Condition Line1 Line2
如果Condition为true,则执行Line1,否则执行Line2Block Var1
阻止对变量的下一次写入
变量可以如下使用:
#Var
将使用该变量作为行号。如果A
为17,Copy #8 #A
则将第8行的内容复制到第17行。
*Var
将使用对手的变量。 Copy 5 *C
将对手的C
变量设置为5
Var+Var
将两个变量相加。 Copy D+1 D
会将机器人向右旋转
当D
用作指示时,[North, East, South, West][D%4]
将被使用
这些修饰符可以链接在一起:Copy *#*C #9
将对手将执行的下一行复制到第9行的自己的代码中。 **D
是指对手的对手D
变量。
条件的评估如下:
- 如果
Var
:- 如果Var
A
通过C
,则如果Var非零,它将返回true,否则返回false。 - 如果Var是
D
,则如果在此D
方向上有机器人,则它将返回true ,否则返回false - 如果Var为
E
,如果E为奇数,则返回true,否则返回false - 如果Var是一行,则如果它是Flag行,它将返回true
- 如果Var
- 如果
Var1=Var2
:- 如果两个都是
A-E
,并且等于相同的数字,则返回true - 如果两者都是线,并且线型相等,则返回true
- 如果两个都是
- 如果
Var1==Var2
:- 如果两个都是
A-E
,并且等于相同的数字,则返回true - 如果两个都是行且相同,则返回true(来自不同机器人的标志将不相等)
- 如果两个都是
每种类型的50个机器人将以以下方式放置在环形世界中:
B...B...B...B...
..B...B...B...B.
B...B...B...B...
..B...B...B...B.
每次进行5,000转后,将计算每个机器人上的标志。如果一个机器人具有比其他任何类型的标志更多的标志,您将获得一个分数。如果N
机器人之间出现平局,则不会给出任何分数。
将有10场比赛,最后将累积分数。
旁注
行尾注释是允许的,并用表示 //
尝试执行无意义的操作(例如添加到行中)将无济于事
尝试在不存在的机器人上做某事将无济于事
在If
will 上进行无限递归而没有执行任何行
If
不会改变 C
Block
直到有人尝试写入它,A 才会过期
可以一次阻止多个变量和行
Block
只要第二个block语句与第一个语句位于不同的代码行,则多次将变量阻塞多次
仅在参数之间(以及命令之后)允许有空格
如果漫游器少于24行,则Flag将是其余的行。
样例程序
Copy 2 C //Skip to the If line
Flag //Where I'm storing my flag
Move //Move in the D'th direction
If D #5 #2 //If there's a bot, copy code, otherwise, move!
Copy #1 *#E //Copy my flag onto a random spot in my bot's code
Copy 2 C //Skip back to the If line
该程序将由我的Python控制器在此处运行。
Java控制器就在这里, 它速度很快,并且看起来比python更好。
计分板:
- 6837 $复制
- 3355 洛克希德
- 1695 思维控制
- 967 拜占庭
- 959 AttackOrElse
- 743 Cadmyllion
- 367 流行性感冒
- 251 TheCommonCold
- 226 魔导士
- 137 隐藏块攻击
- 第129 章
- 123 快速移动克隆道奇
- 112快速转发克隆
- 96 QuickFreeze
- 71 维修与保护
- 96 超级冻结
- 93 漫游病毒
- 80 ForwardClone
- 77 FreezeTag
- 68 Palimpseste
- 62 BlockFreezeAttack
- 51 RushAttackDodge
- 46 格挡
- 40个 TurretMaker
- 37 山寨
- 37 神风
- 35 FlagInjector
- 33 随机复印机
- 31 阴险
- 29个 HappyAsAClam
- 25纳米病毒
- 21 消音器
- 19 纳米病毒
- 17 BoringCopybot
- 16 Movebot
- 14 Flagbot
- 13 中和剂
- 12 癌
- 9 DNAbot
- 9 寄生虫
- 8 MetaInsidious
- 8 品牌重塑
- 8个 AdaptiveBot
- 8 ReproductionBot
- 8 功夫
- 5 QuickFreezerbot
- 4 攻击者