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行吧🙄)