[心得] Automachef Code小小心得
----建議使用電腦或者全螢幕瀏覽以得到最佳觀賞體驗----
週末買了這遊戲,一打開好幾小時就不見了,真的是時間小偷QQ
研究了一下裡面AC-16和AC-32的Code,以下是我小小心得,希望拋磚引玉釣出神人
官方AC-16教學:
https://www.automachef.com/wp-content/uploads/2019/07/AC-16_english.pdf
AC-32教學:
https://www.automachef.com/wp-content/uploads/2019/07/AC-32_english.pdf
AC-16和AC-32簡介與差異:
AC-16其實和AC-32大同小異
AC-16和AC-32都是每秒運作30次,只能接受32行code,且區分大小寫,
add打成ADD或者O0打成o0,會跳error說code有問題,
輸入一樣有R0~R3四種訂單,I0~I3四個輸入,Rn和In都只唯獨不能寫入
訂單Rn數值為這個執行迴圈內新增的訂單總數,
訂單可以再深入選擇來源 RnR/T/D,分別是R內用、T外帶及D得來速,
如R0R是0號餐內用的訂單。
要存取需要用到變數V0~V3,AC-32則擴充到8個,V0~V7,
不過變數範圍AC-16和AC-32都是16位元的,-32768到32767,AC-32沒有升級到32位元,
AC-32多了乘法器(mul)和自訂函數(cal),可以編寫四個,分別用cal 1~4呼叫。
指令簡介:
add: 相加 Add
例如: add A B C
代表A + B 的結果儲存到C
A和B可以是Rn In Vn或整數,但C只能是變數Vn
cmp: 比較 Compare
jmp/ jeq/ jne/ jgt/ jlt
jmp: 跳至 Jump
jeq: 如果等於跳至 Jump if EQual
jne: 如果不等於跳至 Jump if Not Equl
jgt: 如果大於跳至 Jump if Greater Than
jlt: 如果小於跳至 Jump if Less Than
cmp多和jmp系列指令一併使用,
cmp比對後會輸出相對關係-1,0,和1,分別是小於等於和大於
下一行的jump指令會依照cmp的結果做出相對動作
例如: cmp R0 0
jeq nonewrecei
表示比對訂單R0和0的關係,如果等於就跳到nonewrecei這個標籤,類似C的goto
標籤
搭配Jump指令使用,限制為4~10個字,需要":"結尾
dec: 減少 Decrease
例如:dec V0
代表V0--,V0減一並直接存到V0裡,扣到0就不會再扣了,方便用於計時器
mov: 搬移 Move
例如:mov R0 V0
表示複製R0的數值到V0裡面
not 切換 Not
單純切換0和1,
例如:not V0
如果V0原本是0,經過這條指令就變成1;反之如果原本是1就變成0
out 輸出 Out
例如: out O1 V2
輸出V2值到O1中,0代表off,其他值都代表on
ret 返回 Return
代表直接結束程式,不過不能放在jmp後面。
sub 差異
例如: sub V0 10 V1
表示計算V0減10的結果,並儲存到V1中
AC-32特有 mul 相乘 Multiplier
例如:mul R0 30 V0
將R0的數值乘上30,將結果儲存在V0裡
AC-32特有 cal 呼叫 Call
例如:cal 1
呼叫函數1,可以呼叫函數1~4
程式範例:
這程式功能為開場先準備2份餐預備,每有張新單就補一份,
做滿10份就不再新增了
R0設定為訂單,O0連結中繼器,連結要運作的分配器
設定V1為計時器,讓機器運作多久
V0為做了幾分餐的計數器,V2為新增幾分餐
cmp V1 0 程式一開始先檢查計時器是否歸零,如果不是0(jne)就跳到endifa:
jne endifa 如果是0就讓O0關機,輸出0給它
out O0 0
endifa:
cmp V0 0 開場備兩份餐的部分,
jne endifb
mov 360 V1 |開場餐點總數V0為0時,會執行這三行程式,
out O0 1 |這邊一份餐需要6秒鐘(端看分配器設定),
mov 2 V0 |所以需要6秒 *2份 *30cycle/秒=360
endifb:
cmp R0 0 新增訂單再多做一份的部分,比對R0有沒有新增的訂單
jeq endifd 如果沒有新增就跳到程式結尾
mov R0 V2 如果R0不為0,有新增的單,複製增加的訂單量R0到V2中
loop:
cmp V1 10 比對此時餐點總數有沒有超過設定的10份
jeq endifd 如果大於就跳到程式結尾,不再製作新的餐點
out O0 1 輸出啟動訊號1到O0,讓分配器送出材料
add V1 180 V1 讓計時器增加180,意旨分配器運作180/30=6秒
add V0 1 V0 讓餐點總數增加一份
dec V2 使新增的訂單數減少1份(已經增加在排程中了)
cmp V2 0 比對還有沒有需要新增的訂單
jne loop 如果還有(不為0)就跳到上方loop:,再增加一次
endifd:
dec V1 使計時器V1減少1,AC-15/AC-30都是每秒鐘運作30次
所以經過一秒後,AC-15/AC-30運作30次後V1總共會減少30,
以上是AC-16的,如果是AC-32有乘法器mul可以更精簡一點
-------我是分隔線-------
希望有幫助到AC-15/AC-32的苦手們,一開始我也是一頭霧水,
官方教學裡面還有一些有趣的使用方法,就交給神人了QQ
--
--
上班coding,下班coding XD
我愛摳頂,摳頂愛我,天天摳頂,天天健康!
這三小
Overcooked的邊緣人版本QQ
真碼農!
我是個只會Hello world的菜雞QQ
好組語
喜歡這類型的話簡單版推human resource machine, 有難度
的推TIS100, 後者zechtronics開發的遊戲都很硬ww但是都
設計的十分巧妙有趣,有興趣的可以去試試
Google TIS100 看到遊戲畫面就縮了 怕.jpg
看起來真的很組語
一款機械手臂夾住漢堡 底下盤子會一起黏起來的遊戲
是膠水 我加了膠水
不說我還以為我來到工程師板
我愛了
....公三小
我選擇死亡
工三小,我都看不懂 XDD
看不懂才是幸福的QQ
我來回好幾次才確定沒走錯版= =
組合語言遊戲 我D天
不使用電腦也是可以過關 不過就比較難拿到星星
看一半以為我在複習計組XDD
等等這不是餐廳遊戲嗎?XD
http://i.imgur.com/poyGOPI.jpg 印象中是張這樣XD
就是它 現在Steam五折特價~
所以原po用code編寫生產線然後通關的意思嗎 效率高嗎
我即使用電腦還是只能壓線過 要拿三顆星還是要調整一下 除了電腦遊戲內還是有簡單的控制器 可以輕鬆的設定有一張新訂單就做幾份餐點 不過若要先做幾份預備就只能使用電腦了 除了直接coding 遊戲內有提供類似Scratch的介面編寫
誰幫文組解釋一下
跟電腦隊友討論我們這場要怎麼出餐
另外有款 Human Resource Machine, 都是組語遊戲 XD
HRM 太簡單,TIS-100難很多,還有SHENZHEN I/O
57
Re: [情報] Akg N5005 $199又特價了,不過這次要另外加 coupon code MOONAKGN5005 Add to cart 後到 shopping cart 頁面的 promo code 那邊輸入 (超小超難找 XD) 希望想搶還沒搶到的板友這次順利買到 --24
Re: [閒聊] [瑪奇] 遊戲程式升級成64位元有什麼好處?首先講益處之前要先認識一下 所謂的32/64/....位元程式 那個位元代表的是啥意思 大家都知道位元,是指一種電腦容量單位,英文為bit(s) 那這裡的容量,又是指啥呢? 記憶體/硬碟/程式? 都不是16
[情報][待優化] 免費VPN+只讓艦隊收藏跑VPN雖然現在又恢復成只有進門需要VPN,但以備萬一還是先發 該篇系統背景:Win10、筑波大學免費VPN 參考文章:Z1000教學圖、school4303教學文 #1ULazCB6、backzerg補充推文 ======================================= 1.按照Z1000的教學圖,自己建一個VPN連線15
[情報] 10.0 專業製作訂單系統版本:現行 情報網址: 情報翻譯: 10.0 的生產採集系統與過去版本又不太一樣13
[請益] 商城的訂單資料庫設計想問問假使我有一個網路商城 使用者甲有可能會在A商店 買了 兩個羽球拍 一顆籃球 使用者乙有可能在A商店 買了 三雙球鞋 那麼我的訂單資料庫設計欄位 是應該要每個商品都要佔據一個列會比較適合嗎8
[問題] 未偵測到控制器..(已解決)各位大家好, 我整個早上都因為Steam偵測不到控制器, 到處Google 也試了很多方法, 例如重灌Steam, 安裝羅技驅動軟體等等 均無法解決 我用的搖桿是Logi Extreme 3D Pro6
[挖礦] Chia Error 13剛剛研究出Chia跑出13錯誤訊息的解決方式 出現這個錯誤是因為我更改了硬碟配置 重開Chia就跑出13的訊息 然後要add plot directory(新增耕地資料夾) 也一直跑出133
[問題] next無法完成結帳Next進入結帳畫面 輸入完信用卡付款資料後 跳至簡訊認證碼 輸入完認證碼後轉跳到訂單完成畫面 但卻出現這樣的訊息3
[問題] Automachef 自動化餐廳 AC16/32 電腦 la官方的說明跟大部分網路討論都是直接寫code的 看起來(應該好像)是在特定程式段開頭結尾加上label 但Switch上只有GUI 試了一下label不能像其他的commend可以把別段整段框到下面 然後試著在開頭結尾加label2
Re: [問題] 請教使用shortcut撥不同分機的功能: : 機型名稱: : iPhone 7 Plus : : 系統版本: