Scratch‎ > ‎

控制:重複結構

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

 學習目標:

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

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

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

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

計次式迴圈

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

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

(2) 精靈再移至三角形下方,下筆繪製正方形。
 
1.【場景設計】

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

(2)新增角色精靈】()開啟角色檔案 Scratch\Media\Costumes\Fantasy\wizard1.png

※注意精靈】角色 只允許左、右翻轉
精靈】角色:造型→編輯→繪圖編輯器『設定造型中心』在棒子前端

loop-ex1-4


2.【程式設計
  • 精靈】角色:在『腳本區』選取【程式】即可編撰程式碼,如下圖。
三角形:(1.4 版) 

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

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


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

 鍵盤操控(按下:上、下、左、右移鍵)與計次式迴圈之應用,參閱範例(1.4 版→Scratch\Projects\Animation\3 Trampoline.sb)(2.0 版→檔名:loop-Trampoline.sb2)  分享

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


二、條件式迴圈

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

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

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




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

loop-ex2-3
 

1.【場景設計】

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

(2)新增3個角色:綠車、紅車、終點線。
  • 匯入兩輛車的圖案:()開啟角色檔案 Scratch\Media\Costumes\Transportation\car1.png、car2.png

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

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

2.【程式設計

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

(2)將綠車】角色的程式碼,拖曳到紅車】角色身上,即可複製相同的程式碼,並修改紅車】角色之起始 y 座標為-100。
 
綠車】角色程式碼:
loop-ex2-1
『灰框』出現表示可將此段程式碼複製給該角色。
紅車】角色程式碼:

*註:範例中終點線為黑色,故
條件式綠車】紅車】兩個條件式皆可。


延伸思考:

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


三、無窮迴圈

  • 重複不斷地執行迴圈內之指令。
無窮迴圈

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

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

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

(3) 匯入舞台背景圖 canyon.jpg,並 左右翻轉。
 

1.【場景設計】

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

(2)新增蝙蝠的角色:() 開啟角色檔案,匯入兩個造型 Scratch\Media\Costumes\Animals\bat1-a.png、bat1-b.png

bat-1
bat-2

(3)舞台背景:匯入 Scratch\Media\Backgrounds\Nature\canyon.jpg(刪除白色背景),背景→編輯
繪圖編輯器 左右翻轉。 

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


 範例:磁鐵效果。【重點:學會無窮迴圈的設計與應用】。執行畫面如下圖。(檔名:loop-4.sb2)  分享
磁鐵效果_執行畫面 
  • 題目說明:
(1) 磁鐵會跟著滑鼠移動。

(2) 當迴紋針碰到磁鐵會被吸附。

(3) 按下『空白鍵』迴紋針會被放置於座標(-100,-100)。

(4) 螢幕下方以文字說明:

『操作方式:磁鐵隨著滑鼠移動;按下【空白鍵】迴紋針放置(x:-100,y:-100)』


*原創:三本貓 http://www.isgame.idv.tw/~cat3/index.htm

1.【場景設計】

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

(2)舞台佈置:
選取【舞台→背景→編輯→繪圖編輯器→填色工具→選擇顏色】即可改變舞台之背景色。
選取【舞台→背景→編輯→繪圖編輯器→文字輸入工具→輸入『操作方式:磁鐵隨著滑鼠移動;按下【空白鍵】迴紋針放置(x:-100,y:-100)』】→確定。

(3)角色安排:
磁鐵:角色區按下【繪製新角色】按鈕, 編輯→進入【繪圖工具】→以【線段及方形工具】繪製磁鐵,並命名為「磁鐵」,畫面如下圖 。
pain-magnet
magnet-role
迴紋針:角色區按下【繪製新角色】按鈕, 編輯→進入【繪圖工具】→以【線段及筆刷工具】畫出迴紋針,顏色為鐵灰色,並命名為「迴紋針」,畫面如下圖 。
pain-迴紋針
迴紋針-role
 

2.【程式設計

(1)選取磁鐵」角色→再選取【程式】,編程式碼,如下圖:

磁鐵-program

(2)選取「迴紋針」角色→再選取「程式」,編寫程式碼,如下圖:

 Scratch 2.0 版:
 Scratch 1.4 版:
 


3.【測試程式】:按下螢幕右上方綠旗按鈕,磁鐵會隨著滑鼠游標移動;當磁鐵碰到迴紋針,迴紋針會被磁鐵吸附;若按下【空白鍵】迴紋針會放回(x:-100,y:-100)座標;欲停止執行程式,則按下紅色stop按鈕。


homework 作業:魚兒水中游。【重點:學會無窮迴圈的設計與應用】。題目說明如下: (檔名:loop-5.sb2)
  • 魚兒角色:匯入兩個造型 Scratch\Media\Costumes\Animals\fish1-a.gif、fish1-b.gif 魚兒左右游動,碰到邊緣則反彈。
  • 舞台背景匯入Scratch\Media\Backgrounds\Nature\underwater.gif