樂高4位數密碼鎖完成型成功啦!
程式這種東西一旦鑽進去,就會上頭一段時間啊~以下為程式設計概念:
1.增加PASSWORD變數模組為數列(陣列或一維矩陣),內有預設密碼1234。增加INPUT變數模組為數列,但為空數列。
2.迴圈內為不斷偵測四個觸碰感測器是否有被按下,如果1號感測器被按下,則將INPUT數列讀出,放進數列模組,並用附加數字模式寫入數字1,它會自行排到最前面的位元(地0位元),以此類推到2-4號感測器。以下為失敗解決經驗:
4.跳出迴圈後就要比對INPUT和PASSWORD的四個位元是否完全相同,帶樂高EV3無法直接比對,需用數列模組的索引模式一個一個位元取出來,再用是否相等的邏輯模組來比對,最後再用AND邏輯模組再比對是否四個位元都相等,這裡寫成了自訂模組,節省空間。
最後加入一個大大迴圈框住全部,如果最後比對結果不符,就回到最前頭,重新設定兩個變數初始直,再偵測按鈕,再比較兩個變數長度是否相同,再比對兩個變數四個位元是否相同.....
PS:再新增加一個字串變數WINDOWS,當一號觸碰感測器按下時,就讀出WINDOWS字串變數將他放進連結文字模組的第一個位置,然後在第二個位置寫入文字1,亦即不管現在WINDOWS字串變數儲存的文字為何,都把文字1皆在其後,例如:WINDOWS已經有存放文字2,接著就會把文字1接在其後,最後輸出文字21,把連接文字模組的輸出再傳給WINDOWS字串模組與螢幕顯示模組即可,以此類推。



留言
張貼留言