Kadence

進階範例 04|密碼鎖

題目

用 Web:Bit 開發板設計一個密碼鎖,密碼是 ABAA,上鎖時 LED 亮白燈。透過按鈕 A 和 B 輸入密碼,每按一次會有蜂鳴器發出提示音。

如果密碼正確,LED 亮綠燈,過一下變回白燈;如果密碼錯誤,LED 亮紅燈,過一下變回白燈。

怎麼讓 AI 知道我想要什麼?

1. 拆解需求,釐清問題

首先我們需要將題目需求分解成更小的子問題,以便更容易理解和解決。可以將問題分解成以下幾個子問題:

  • 如何讓 AI 知道正確的密碼?
  • 如何透過按下按鈕輸入密碼?
  • 如何讓按下按鈕時發出提示音?
  • 如何判斷輸入的密碼是否正確?
  • 如何在適當的時機,顯示對應的燈號?

2. 比對經驗,找出相似

密碼鎖是生活中常見的物品,我們可以參考密碼鎖的使用方式,設計我們自己的版本。一般密碼鎖由這些元素組成:

  • 正確密碼
  • 數字或英文字母按鈕,或是轉盤
  • 至少有「上鎖」和「解鎖」兩種狀態
  • 輸入正確密碼,可以解鎖

3. 提取核心,化繁為簡

接下來,我們要收斂前面列出的細節,整理出密碼鎖的必要條件:

  • 偵測輸入的密碼,儲存成「密碼輸入」
  • 將「密碼輸入」和「正確密碼」進行比對,判斷密碼是否正確。
  • 找到「燈號」的一般性規則。「如果上鎖,亮白燈」、「如果密碼正確,亮綠燈後間隔 n 秒亮白燈」、「如果密碼錯誤,亮紅燈後間隔 n 秒亮白燈」。
  • 如果按下按鈕 A 或 B,蜂鳴器發出聲音。

4. 精準表達,轉譯需求

最後,我們需要將需求翻譯成 AI 比較好理解的語言,以下是其中一種表達方式:

我們可以告訴 AI 這樣做

  • 設定[正確密碼]為ABAA
  • 設定LED為白色
  • 偵測按鈕被按下的順序,設定為[密碼輸入]。例如依序按下按鈕A、按鈕B、按鈕A、按鈕A,[密碼輸入]為ABAA
  • 按下按鈕A或B,蜂鳴器發出 Re
  • 重複執行,如果[正確密碼]等於[密碼輸入],LED變綠色,蜂鳴器發出Sol La Si,2秒後變成白色。否則LED為紅色,蜂鳴器發出 Do Do,2秒後變成白色
  • 重複出現的專有名詞,可以用中括號[],讓 AI 明確知道你反覆提及的是同一個詞彙。
  • 善用舉例,讓 AI 更清楚你的想法。例如上面的描述告訴 AI,當「依序按下按鈕A、按鈕B、按鈕A、按鈕A」時,代表[密碼輸入]為ABAA,讓 AI 能依此類推。

使用範例 >>

將產生的程式碼,部署到 Web:Bit 開發板,就可以完成這樣的效果囉!

延伸思考

  1. 如何讓密碼正確時,LED 顯示一朵小花?
  2. 如果想要增加「重設密碼」的功能,可以如何表達需求?
分享