深圳IO游戲入門攻略(不定期更新)


@


沒學過匯編,公眾號看到的游戲,steam入手了,隨手記錄下

第一關 (模擬)安全攝像頭

在這里插入圖片描述
第一關比較簡單,只需要在原來的基礎上面造輪子就行。先選擇右側的器件,這里選用MC4000。(保持上下器件一致,畢竟剛接觸,其他器件也不知道怎么玩,鼠標左鍵是連線,右鍵是取消)
切換到確認的選項卡,可以看到信號的輸出。分析給出的活動狀態的代碼

  mov 0 p0       //將第一個操作數復制到第二個操作數中
  slp 6          //slp 6等價於sleep 6毫秒,在游戲中就是六個單位
  mov 100 p0
  slp 6

0電平信號走了6單位,100電平走了6單位,然后一直循環。
在來看網絡輸出信號的規律。
在這里插入圖片描述
大體都一樣,都是對某一部分循環。
0電平4單位,100電平2單位,0電平1單位,100電平1單位。

mov 0 p0
slp 4
mov 100 p0
slp 2
mov 0 p0
slp 1
mov 100 p0 
slp 1

測試成功
在這里插入圖片描述
在這里插入圖片描述
這里還顯示了所花費的產品成本,電量以及代碼行數,同時可以看到其他玩家的消耗,鼓勵玩家不斷優化自己的代碼,成本和電量,相當於同台競技,挺好的。第一關通過后有個紙牌游戲在這里插入圖片描述
想累了,可以試着玩一下。有空做個入門的小教程,也不知道每一把是不是都有個解?

第二關 工程模型替換件

郵件和信息提升
第二關可能把一部分人整蒙了(包括我),因為沒有可以參考的了,所以只能自己做了。通過提示信息和郵件,我們需要放大控制信號。器件依舊是MC4000。

由於沒學習過匯編語言,所以參考自帶的數據手冊(下載鏈接在末尾,分中英兩版,版主英語不行,看的是中文的)
翻閱手冊,在p13-p15左右找到一些頭緒
在這里插入圖片描述
在這里插入圖片描述
R我覺得應該是寄存器(Register)吧?咋翻譯成存儲器,不是很清楚,參考鏈接:知乎
主要是兩個指令,mov 和 mul。還有一個名為acc的默認寄存器
在回想下第一關中的代碼,好像就明白了一些什么

mov R/I R    //R:寄存器,I:整數類型
mov 0 p0     //把0(操作數)復制到p0(操作數)
mul R/I      //將第一個操作數的值與acc存儲器相乘,並將結果存到acc

我們要做到,是將p0端的信號,放大一倍輸出到p1端。那么中間勢必要經過某些過程,沒學過計算機的可能對這些指令不知道怎么辦。我舉個例子,你有兩杯飲料,分別裝着牛奶和橙汁,你現在需要調換兩杯子之間的飲料,先前放牛奶的杯子現在要放橙汁,放橙汁的杯子現在要放牛奶。顯然,如果只有手頭兩個裝滿飲料的杯子,是沒有辦法將內容進行調換的。所以我們需要借一個杯子,第三個杯子。牛奶的先倒在空杯子,橙汁的倒在牛奶里面,空杯子內的牛奶在倒在橙汁里,這樣就完成了飲料的互換。

mov p0 acc  //將輸入端的信號放到acc中
//因為需要放大一倍的信號,也就是乘以2
mul 2  // mul 2也就是 acc *= 2等價於acc = acc * 2
mov acc p1
//注意,這里需要slp 1,通過觀察波形圖可以得知。具體進游戲,鼠標放上去有提示
slp 1

在這里插入圖片描述
在這里插入圖片描述
測試成功
在這里插入圖片描述

第三關 脈沖發生器

閱讀郵件,注意到有條件執行五個字
在看一眼波形圖
在這里插入圖片描述
輸入信號為100時,脈沖信號走1單位100,然后走1單位0(注意第三個,輸入是100走11單位,但第12單位變0,輸出也就變0)。
重點是條件這兩個字,繼續翻手冊,p16可以得到想要的內容。
在這里插入圖片描述
上述分析我們得知,當輸入為100時,才產生脈沖。

  teq R/I R/I  //比較兩個操作數是否相等
  //相等:執行+指令,禁止-指令,不相等:執行-指令,禁止+指令

問題來了,+ - 放在哪里呢?在p13,可以得到想要的答案
在這里插入圖片描述

  teq 100 p0     //判定100 和p0相等么?相等走+指令
+ mov 100 p1     //將p1置為100,
+ slp 1          //走1單位
+ mov 0 p1       //p1置為0
  slp 1			 //若不相等,走1單位

注意這里的程序結構,由於程序是自上而下的,有的人可能寫成這樣

  teq 100 p0    
  slp 1			
+ mov 100 p1    
+ slp 1
+ mov 0 p1  

測試后:
在這里插入圖片描述
還是要注意下,代碼的先后順序的。對了,可以設置斷點,不斷的試錯。成功是建立在無數次失敗上面的!
測試成功
在這里插入圖片描述
點擊模擬,沒有前面兩個那么絲滑了,嗯,我在想想咋改進,讓它絲滑點。-----------------------------2021/3/14更
在這里插入圖片描述

第四關 發光標志

看一眼郵件和提示信息
在這里插入圖片描述
在看一眼波形圖
在這里插入圖片描述
好像找不到什么思緒。看了下點擊0和點擊1兩部分,是互補的。第二關中給的圖中有這么一個指令:not
在這里插入圖片描述
在這里插入圖片描述
acc寄存器的值默認為1,由於not不帶任何操作數,所以,應該是單獨的一行。注意到,點擊1的波形圖先是0電平,走一單位,100電平,走一單位,0到100電平靠not指令執行。

mov acc p1  //先將p1寄存器中存放acc的默認值,0
not         //acc此時的值為100
mov acc p0  //將p0寄存器中存放acc為100的狀態量
slp 1       //走一單位。
//第一圈:p1 = 0,p0 = 100,走一單位
//第二圈:p1 = 100, p0 = 0,走一單位,此后循環往復。 

測試結果:
在這里插入圖片描述
現在開始另外一部分,也是互補,只不過是三個部分的互補了。
沒想到啥好的思路,先過關,后面來補。

//喝-0
  mov 100 p0
  slp 6
  mov 0 p0
  slp 4
//喝-1
  mov 0 p0
  slp 6
  mov 100 p0
  slp 1
  mov 0 p0
  slp 2
  mov 100 p0
  slp 1
//喝-2
  mov 0 p0
  slp 7
  mov 100 p0
  slp 2
  mov 0 p0
  slp 1

測試成功
在這里插入圖片描述
-----------------------------------------------------------------2021/3/15更
PS:今天沙塵暴有點大,受不住這空氣

第五關 海量男爵

第六關 垃圾音頻裝置

游戲成就

在這里插入圖片描述
嘿嘿,空擋接龍成功10次了--------2021/3/15 1:41更
成功20次--------------------------------2021/3/16 0:32更

參考手冊

中文

鏈接:https://pan.baidu.com/s/1aTiLpA44K2nXDvYemgvSTA
提取碼:s5zx

英文

鏈接:https://pan.baidu.com/s/1Ydvd4dQtcaxluSrctIvLzg
提取碼:xexp


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM