Scratch‎ > ‎

控制:重複結構

2012/08/03 謝碧景(c)編製更新 

 學習目標:

  • 學會計次式迴圈的設計與應用。
  • 學會條件式迴圈的設計與應用。
  • 學會無窮迴圈的設計與應用。

 Scratch提供三種重複結構:計次式迴圈(repeat n次)、條件式迴圈(if~else~)、無窮迴圈(forever),此類指令在【控制】類別積木指令中。 

一、計次式迴圈 Scratch官網 http://scratch.mit.edu

  • 在積木中設定參數,指定迴圈所包含的指令要被重複執行幾次。

 Scratch 3.0 版:
 Scratch 2.0 版:
計次式迴圈


 範例1:精靈以【畫筆】繪製三角形、正方形。【重點:學會計次式迴圈的設計與應用】。執行畫面如下圖。(檔名:loop-1.sb3)  分享

loop-ex1-3
 
  • 題目說明:
(1) 精靈以【畫筆】先於螢幕右上方下筆繪製三角形,後停筆。

(2) 精靈再移至三角形下方,下筆繪製正方形。

 精靈.sprite3
 
1.【場景設計】

(1)新增專案:於『角色區』的『貓咪』角色身上【按下右滑鼠鍵→選取『刪除』】,即刪除貓咪的角色。

(2)新增角色 先上傳精靈角色  精靈.sprite3選取『精靈』角→選取「造型」頁籤,框選並移動整個角色,設定造型中心』在棒子前端,如下圖

 Scratch 3.0 版:

 Scratch 2.0 版:
 ※注意精靈】角色 只允許左、右翻轉


loop-ex1-4
*註:角色圖片去背(即背景為透明):(1)在點矩陣模式下→(2)選取點陣繪圖工具中【以顏色填滿】→(3)再選取【不填色】→(4)點選欲去背之圖案,即可。tv 教學影片


2.【程式設計
  • 精靈】角色:在『腳本區』選取【程式】頁籤,即可編撰程式碼,程式碼→參閱連結
  • Scratch 3.0 版:如下圖,請於左側指令區下方選取『添加擴展→畫筆』即可增加畫筆積木應用。
添加擴展

三角形:(1.4 版) 

loop-ex1-1
 正方形:(1.4 版) 

loop-ex1-2
 完整指令木:(2.0 版)


延伸思考1:精靈以【畫筆】繪製六角形、八角形;同理可推,繪製圓形【提示:旋轉360/n】。(檔名:loop-1-2.sb3)  分享

 鍵盤操控(按下:上、下、左、右移鍵)與計次式迴圈之應用,參閱範例(檔名:loop-Trampoline.sb3)  分享

延伸思考2:呈上題,請以『偵測』類別中【詢問】&【答案】詢問繪製n邊形,精靈再以【畫筆】繪製n邊形(檔名:loop-1-3.sb3)  分享


二、條件式迴圈

  • 重複執行到某個情況發生為止,而六角形的條件式可搭配【偵測】類別指令。  
  • 條件式的運算結果是布林值,True(成立)或False(不成立) 兩種值。
條件式迴圈:
Scratch 3.0 版:
 
 Scratch 2.0 版:

條件式迴圈
 條件式是使用六角形的積木表示。
 例如以下幾個積木: 
  • 條件式中會搭配運算式『算術運算』、『比較運算』(關係運算)、『邏輯運算』應用,此類指令在【運算】類別中,以綠色積木顯示:
算術運算:
→數字的加法、減法、乘法、除法、餘數運算
 
 比較運算(關係運算):
 →大於、等於、小於

 邏輯運算:
 →且、或、相反





 範例2:賽車比賽→兩輛汽車向前移動,當碰到黑色終點線,則顯示“我到了!”。【重點:學會條件式迴圈的設計與應用】。執行畫面如下圖。(檔名:loop-2.sb3)  分享

loop-ex2-3
 

1.【場景設計】

(1)新增專案先【檔案→新建專案】,再於『角色區』的貓咪』角色身上按下右滑鼠鍵→選取『刪除』】,即刪除貓咪的角色。

(2)新增3個角色:綠車、紅車、終點線。
  • 角色區→選個角色:新增綠車、紅車,及繪畫一條終點線。

    新增3個角色:綠車、紅車、終點線
    Scratch 3.0 版:
    Scratch 2.0 版:
    ※注意:【角色】造型→編輯 繪圖編輯器→『設定造型中心』在車頭前端。

  • 繪製新角色:選取【 繪畫→繪圖編輯器→線條工具】繪製一條黑色線段(可搭配鍵盤【Shift】鍵,即可繪製『直線』)。 

2.【程式設計

(1)綠車】角色程式碼:在【綠車】角色→程式編輯程式碼,如下圖。

 Scratch 3.0 版:
 Scratch 2.0 版:
loop-ex2-1

(2)將綠車】角色的程式碼,先拖曳到『背包』區,再將程式碼拖曳到紅車】角色的腳本
如下左圖,紅車】角色身上,即可複製相同的程式碼,並修改紅車】角色之起始 y 座標為-100。
 
拖曳『背包』區程式碼複製給紅車】角色。
  


紅車】角色程式碼:
 Scratch 3.0 版:
 Scratch 2.0 版:
 
*註:範例中終點線為黑色,故
條件式綠車】紅車】兩個條件式皆可。


延伸思考:

【練習1】貓狗賽跑,貓狗皆向前移動,當碰到紅色終點線,則說“我到了!”。(檔名:loop-2-1.sb3)


三、無窮迴圈

  • 重複不斷的執行迴圈內之指令,即重複無限次。
 Scratch 3.0 版:
Scratch 2.0 版:
 無窮迴圈


 範例
:蝙蝠在空中不斷的左右飛翔。【重點:學會無窮迴圈的設計與應用】。執行畫面如下圖。(檔名:loop-3.sb3)  分享

  • 題目說明:
(1) 兩隻蝙蝠在空中不斷切換不同造型左右飛翔。

(2) 當蝙蝠碰到螢幕邊緣時反彈,旋轉5度飛翔。

(3) 匯入舞台背景圖 Canyon.jpg,並
橫向翻轉(即 左右翻轉)。
 

1.【場景設計】

(1)新增專案:先【檔案→新建專案】,再於『角色區』的貓咪』角色身上按下右滑鼠鍵→選取『刪除』】,即刪除貓咪的角色。

(2)新增蝙蝠的角色:『角色區→選個角色』或上傳角色圖檔。Scratch 2.0 版:()開啟角色檔案或匯入兩個造型圖檔bat1-a.png、bat1-b.png。

 bat1-a.png
bat-1
 bat1-b.png
bat-2

(3)舞台背景:
在【舞台區→選個背景】使用系統內建背景→Canyon.jpg,背景→編輯→繪圖編輯器→橫向翻轉(即 左右翻轉),並刪除白色背景。 

2.【程式設計
  • 在蝙蝠身上編輯程式碼,重複執行,當碰到邊緣即反彈,並不斷旋轉5度,如下圖。 
Scratch 3.0 版:
 蝙蝠1程式碼:
 蝙蝠2程式碼:

Scratch 2.0 版:
程式碼1: loop-ex3-2  程式碼2:


homework 作業:魚兒水中游。【重點:學會無窮迴圈的設計與應用】。題目說明如下: (檔名:loop-5.sb3)
  • 魚兒角色:魚兒左右游動,碰到邊緣則反彈。
  • 舞台背景:自訂。