猜數字 ( 幾 A 幾 B )
這篇文章會介紹,如何在 Scratch 裡使用詢問、清單、說話、變數、邏輯判斷、重複...等積木,實作用幾 A 幾 B 猜中四個數字的數字遊戲。
積木程式原理
這個遊戲會隨機產生四個 1~9 不重複的數字讓使用者猜,因為四個數字要分別和使用者的答案比對,所以會透過「清單」的方式來實作 ( 可以參考:清單教學 )。
- 建立一個名為「答案」的清單。
- 放入「刪除答案所有項目」,讓清單的內容是空的。
- 使用「重複...直到」積木,直到「清單答案的長度」等於 4,如此就能只產生 4 個數字。
- 在每次重複的時候,從 1~9 中隨機取出一個數字,並將這個數字「添加到答案清單」裡。
執行後,會發現四個數字可能有些會重複,所以要加入一個邏輯判斷,判斷如果「清單答案包含數字不成立」( 清單裡面沒有這個數字 ) 的時候,才將這個數字加入清單裡,完成後,點擊綠旗,就會產生四個不重複數字的答案。
- 再建立一個名為「回答」的清單,將「刪除回答所有項目」放到剛剛的積木下方。
- 分別建立 a 和 b 兩個變數 ( 因為要判斷幾 A 幾 B ),將 a 和 b 都設為 0。
- 放入「重複...直到」積木,直到「a 等於 4」的時候停止重複 ( 表示答對了 )。
撰寫邏輯之前,先看一下判斷的原理,當使用者輸入四個數字後,讓四個數字分別和答案比對,首先判斷「有沒有包含」,如果「有包含」,再接著判斷「位置有沒有相同」,如果位置相同,就讓 a 增加 1,如果位置不相同,就讓 b 增加 1。
根據判斷原理,放入對應的積木。
- 新增一個名為 n 的變數,在每次重複時設定為 1,後續會使用到。
- 每次重複時,將 a 和 b 設為 0。
- 放入「詢問」積木,請使用者輸入數字。
- 放入「重複直到 n > 4」的重複積木,在每次重複時讓 n 增加 1,就能將數字一個個進行判斷。
- 使用「如果...那麼」判斷答案清單裡是否包含答案的第 n 個字 ( 此時如果 n 是 1 就會判斷第一個數字 )。
- 再度使用「如果...那麼」,判斷已經包含數字的答案,如果位置相同,就讓 a 增加 1,如果位置不同,就讓 b 增加 1。
使用「字串組合」積木,將答案和結果,記錄到回答的清單裡,方便根據記錄,繼續遊戲。
接著在使用者回答正確之後,出現「答對了!正確答案是...」的文字。
最後,在一開始放入「隱藏答案」和「顯示回答」的積木,就可以開始進行遊戲了。
完成效果
點擊綠旗,就可以輸入四個數字,開始進行遊戲。
範例解答
範例解答:猜數字 ( 幾 A 幾 B )
延伸練習
如果已經熟悉了猜數字 ( 幾 A 幾 B ) 的原理,還可以嘗試更多好玩的作法:
意見回饋
如果有任何建議或問題,可傳送「意見表單」給我,謝謝~