2022年6月4日 星期六

[micro:bit, maker] 猛龍搶珠

 猛龍搶珠 [1]

Line:ted2016.kpvs
Email:Lct4246@gmail.com
FBhttp://gg.gg/TedLeeFB/
Bloghttp://gg.gg/TedLeeBlog/

Jun 4, 2022
88x31.png[2]

讓金龍爭奪隨機出現的龍珠。

從觀察中建立編程邏輯直覺

請讀者們觀察本文最開頭的 GIF 動畫,比參照題目的要求,拿張白紙動手寫出/畫出該動畫可能的操作流程,而這個流程就是本文的編程邏輯。

設計

龍珠(LED 亮度最亮)會隨機出現在 5*5 的 LED 矩陣(matrix)上。
按 A 以列為主(row major),則由左到右,再由上到下搜尋;
按 B 以行為主(column major)則由上到下,再由左到右尋找。

程式解說

程式一開始時讓 micro:bit 出現開機的愛心圖示,然後讓按鈕控制變數 sw 設定成 -1,其中,
接著,按下 A 時清除畫面後開始由左到右、由上到下尋找龍珠,尋找的流程如圖 1 所示(我們利用 micro:bit 的重複執行 forever() 函式的特性,按鈕按下時在事件積木中設定對應 sw 旗標(flag)值,然後等到輪到 forever() 取得執行權時即進入圖 1 的執行邏輯。)此外,讀者們可以動動腦再想一想:圖 1 的流程圖中有幾個迴圈呢?為什麼?
另一方面,按下 B 的處理邏輯和 A 相同,可參考圖 1 的做法修改之。

圖 1:按鈕 A 的控制流程


完整程式碼如圖 2 所示,讀者可連至自行下載。

圖 2:完整程式碼

挑戰

舉出其他搜尋(search)的方法,例如:由右到左,再由上往下。並修改範例程式來實現(implement)你的想法!

學習參考

本單元配合南一書局七年級資訊科技第二冊 6-3 節的重複結構(repetitive structure)

沒有留言: