分享

【Scratch 教學】8位數字計分板 - 3

前一篇提到,要修改別人的程式之前,一定要先瞭解原來程式的思路與邏輯,才能順著這樣的邏輯改下去,尤其是教學的時候,學生才能理解改進的地方在哪邊。那麼就來看看傑夫老師會怎麼修改~
先看看分身的程式:
Scratch Scratch教學 Scratch分身 傑夫老師

分身的程式

  • 變數 id 是分身的編號,與學生的設計相同,分身編號的數字越大的位置越右邊。老師改成了建立 8 個分身,所以 id 是從 1 到 8 。
  • 『重複無限次』改成了『重複直到』,因為老師用了一個 counting 這個變數來表示數字在增加中。counting 等於 0 的時候,表示數字增加結束,離開迴圈。
  • 變數 digits 紀錄著要顯示的數字 people 這個變數有幾位數,例如 6267 有 4 位數字,變數 digits 就是 4。
  • 如果要讓數字靠右對齊,那麼 8 號分身顯示的數字一定是第 digits 位,也就是「字串 people 的第 digits 個字」
  • 往左推一位, 7 號分身顯示的數字一定是第 (digits-1) 位,也就是「字串 people 的第 (digits-1) 個字」
  • 簡單的推導就能得到,第 id 號分身顯示的數字一定是第 (digits-(8-id)) 位,也就是「字串 people 的第 (digits-(8-id)) 個字」
  • 既然是"第幾個字",那 (digits-(8-id)) 一定要大於 0,否則的話就是超出位數的分身,便需要隱藏。
跟學生的程式相比,只是改了第幾個分身該顯示哪個位數的邏輯,其他的部分是否都還依照學生的思路呢?
  

把『重複無限次』改成『重複直到』也是傑夫老師在教學上常常指導的,因為『重複直到』可以在跳出迴圈後做一些其他的事,這邊的例子就是讓數字變回原來的亮度,從黑色變回(原來的)紅色。

再來看看數字增加的程式:
Scratch Scratch教學 Scratch分身 傑夫老師

數字增加程式

變數 people 是要顯示的數字,與學生的相同。分身編號老師改成了變數 id。變數 digits 與 counting 前面都介紹過了。分身只產生了 8 個,與學生的作法不同,前面也說明了原因。就來看看怎麼讓 people 這個數字快速地增加,這裡老師運用到了 digits:
  • 當 people 的位數少於 4 位數的時候,people 改變的幅度是 2 位數字,也就是看到的『變數 people 改變 27』;
  • 當 people 的位數少於 6 位數的時候,people 改變的幅度是 4 位數字,也就是看到的『變數 people 改變 1347』;
  • 當 people 的位數大於 6 位數的時候,people 改變的幅度是 6 位數字,也就是看到的『變數 people 改變 132847』
  • 當 people 的數字接近要顯示的最終數字 37246207 時,也就是在大於 37006267 時跳出迴圈停止改變
  • 最後再將『變數 people 設為 37246207』
這樣就完成了,bye now~
  

老師這裡留個問題,people 改變的數字 (27, 1347, 132847) 個位數都是 7 。雖然在這個例子中看不出效果,但如果把速度放慢就會有差別了,你知道是什麼嗎?這問題留給你好好去想想。

#Scratch  #Scratch教學  #Scratch分身  #傑夫老師 
分類:學習

傑夫(Jeff)老師喜歡研究積木型(block)程式,如:Scratch, App Inventor, micor:bit,除了有一般中小學生的課程,也不定期的會開設Scratch師資培訓班,並且是「Scratch的100個技巧」的共同作者。

評論
上一篇
  • 【Scratch 教學】8位數字計分板 - 2
  • 下一篇
  • 【GAS 筆記】提交Google表單後自動發出確認email
  • 更多文章
    載入中... 沒有更多了