01 害羞的士兵
简单的关卡没啥好说的。
第一行ABGFEZ,第三行EDCB。
02 尾行
利用了优先级与惯性原理,方法是先向右走,等脱离了敌方视野再开始开枪,这样才能多打中敌人一枪。
三种三行解法。
03 绿色循环圈
拉怪,走位。略有繁琐,写代码时需要有个明确的思路。
第三行GHIP
第四行DMNL
04 黑枪
原理是,敌方狙击同时攻击我方士兵时,只会有一枪打中,然后士兵死亡,狙击会击中核心。
05 二人转
比较硬性的关卡,你需要设计一个能检测自己所在位置和运动方向的一个算法,并且根据遇敌时检测到的位置和方向做出相应的位移转换。
我的方法是让每个角落的敌人分别对应1234四个信号,每经过一个就打开一个并关掉两个,使得顺时针时在矩形地图每条边对应两个信号开且另外两个关;逆时针时则对应一个信号开且另外三个关(图中1234行),以实现位置与方向的检测功能。
接着,获得对应信号就可以控制新一轮的信号,实现新的位移变化(7-14行分别对应四条边两个方向一共8种可能性,15-22行则是每种可能性触发后要走的路线)
第5行是初始方向并关闭信号9
第6行代码发现敌人是转向的契机,由信号9所控制。(信号9打开才能触发7-14行,然后才能触发15-22行,要注意的是,信号9需要在触发7-14行后立马关掉。)
总的来说,这关难点在于复合使用信号,以实现检测和转换。另外,还有一种奇偶计数来判断方向的解法,tap里面能找到,原理如下,具体代码就不发了。
06 顺逆检测
个人觉得设计的比较有意思的一关,是某个版本增加了新命令-检测信号关的产物。方法很简单,只要敌人路过两个单位就能根据顺逆发信号4或者5,等信号45都打开时,士兵没有满足条件,按惯性前往。
07 转向
转向的原理我在另一个讲特性的帖子里面说了,解法有三种。
08 海底迷宫
简单的关卡,运用检测信号关来省代码,可以4行过。难点在于这个地图失败了你也看不到原因。😏
09 干扰
这关我就不信有人能过。
10 碰撞
特性关,特定距离的碰撞会有固定角度。
法一法二
11 咫尺天涯
简单关卡,没啥好说的。
12 界限
特性关,具体在特性帖子有讲
法一法二
13 鬼畜
侦察右三帧左三帧的离开原地,让怒火左右开花😌
注意先让右边的离开,因为这个怒火默认往右开火。
上图左侦察
上图右侦察
14 穿墙术(一)
走位,利用惯性,注意路点重置路点的特性,即第四行的位移必须是BC再加一个路点,不能直接用BC。
15 穿墙术(二)
这关没啥好说的,打死敌人就是了。
16 非酋模拟器
这关设计的时候敌人代码写有一百多行,穷举了70种情况,解法出奇简单,利用信号9做了一个很简单的信号反转。欧洲人应该一行就能过吧。
17 打砖块
https://www.taptap.com/topic/7396607
18 打 飞 机
https://www.taptap.com/topic/7396680
19 毒药检测模拟器
本关模仿10只小白鼠检测1000瓶水的原理,,将三个信号的开火组合出7种情况,然后定位发送,等侦察接受到定位并发现敌人后,就关闭所有信号让蜘蛛前进。还有5个侦察的代码我就不截图了,需要的就仿照这前两个侦察的代码写吧。
20 惯性
利用了路点重置路点的特性,很简单的一分关,没啥好说的
21 井字棋模拟器
理论上无解的关卡。😌
22 存活检测
本关难度较大,从左到右我将5个单位分成12345号,先放代码如下
1号↑
2号↑
3号↑
4号↑
5号↑
这个解法是作者群大佬LLLL做出来的,也是目前找到的最优解,
思路是每一帧数一次剩余单位,每次数完的下一帧开始时,由优先级最低的单位前往检测结果对应的路点并重置计数器。
原理是这样的:
首先每个单位都有一个由信号6,7,8,9构成的目前最新写法的计数器,最新写法具体可参考链接的帖子。
https://www.taptap.com/topic/8317126
根据多单位代码检测与执行的规则(不了解的看看我某篇讲特性的帖子),在每一帧里,每个单位都会为这个计数器+1,也就是思路中的每帧数一次。
接着,由信号1,2,3,4来控制优先级最低的单位前往检测结果对应路点,大家可以看一下每个单位的第一行和最后一行。每个单位必须等优先级比自身低的所有单位死亡,自身的第一行才能成立。
例如,
开局无单位死亡,计数结果7开8关9开,换成10进制是5。所以,1号单位第5行成立,前往路点5。
接着:
如果非1号死亡,比如3号死亡。那么计数结果7关8关9开,换成10进制是4,1号单位第4行成立,前往路点4;
如果1号死亡,那么,信号1会打开,此时2号执行第5行,前往路点4。
后面以此类推。
涉及很多特性的一个关卡,需要对游戏的理解极为深刻才能写出答案。
23 啊这
本关利用警戒与追击特性,在警戒状态下追击,单位会朝着最后一次发现敌人的位置前进。所以在CD之间触发追击后,士兵会走向核心。
第一行为ABCD
24 十步万度模拟器
https://www.taptap.com/topic/18724933
25 推箱子
https://www.taptap.com/topic/18677757
26 魔方
https://www.taptap.com/topic/18682477
27 刚枪
慢放就会发现,如果直接走ABC后两个士兵的射速高于敌人(第一张图),又因为第三个敌人不攻击,所以改变士兵位置的顺序,按231即可(解法后三张)。
28 最简不稳定
直接走必死,下图延迟一帧出发,刚好避过两秒时的第一枪,后面就看运气了,1/4*1/2*3/4=3/32概率过。
另外这关要写稳定解就必须写个延时6.033秒+开局2秒+走路2秒刚好避过10秒时的开枪,复用型计数器只能计数到256也就是4秒多,所以不行,这里需要用二进制单步计数,如下图,第一行则语句是9开8关7开6开5关4开3关2开1关,一共362帧。
注意:第1帧启动,则在2秒后也就是120帧到达,这样必死;上图最简不稳定解是第2帧启动,会在启动后121帧到达,后面看脸;而下图是362帧启动,481帧到达,刚好避过最后一枪。
注:本游1秒60帧。
下图解一共362行,欢迎尝试。(不会吧,不会吧,不会真有人写362行吧🙄)