9.複習國小數學裡的怎樣解題

現在,我們將這25顆LED燈依序從0開始編號到24號,因為每一列都有5顆,因此將編號除以5,觀察商和餘數以及(X,Y)座標的關係。


發現了嗎?編號除以5所得到的商是LED燈的Y座標,餘數是LED燈的X座標,很好!我們可以利用【隨機取數】積木隨機取得024,並將取得的數字除以5,便可以隨機點亮micro:bit 5X5 LED燈。
基礎知識足備,可以開始轉換成程式碼。這次我們會用到的積木都在數學積木裡。


上圖,編號1取餘數沒問題、編號3隨機取數也很明確,但編號2四捨五入?仔細瞧,魔鬼藏在細節哩,四捨五入旁有個倒三角形,你要的功能藏在那底下。測試的程式如底下所見。
程式需要建立三個變數numberxynumber用來存放024隨機取得的數字,xy變數則是存放點亮LED燈座標。你會發現,number我設為24,而不是隨機取亂數。嗯!這裡順便談談程式設計的小技巧,再進行程式撰寫時,遇到你有不確定的結果時,可以先將問題簡化,例如,我不確定我的程式是否能夠正確的執行,也或許程式執行沒問題,但是結果卻不是我想要的。這寫隱藏在背後的問題都是一個隱憂,程式編譯器無法替你找到,這時,將程式簡化進行小片段的測試便是一個很好的方式,例如我已經知道編號24號的LED燈應該是點亮哪一顆,執行程式看看,結果是否無誤,正確了,表示你的演算法是正確的。


除了單調了一次點亮一顆燈外,我們可以多增加一個count變數儲存每次要點亮的LED燈數目,隨機取得110餅指定給count變數後,程式進入迴圈,內容跟上一個隨機點亮一顆LED的程式相同,程式再運轉是很快的,因此雖然迴圈每跑一次只點亮顆,但你會覺得count數量的LED燈會是同時點亮。迴圈結束,執行暫停200毫秒,讓LED燈持續點亮後,接著清空畫面。程式會重新到開始處繼續執行。



沒有留言:

張貼留言