• 沒有找到結果。

World.my First Method:

在文檔中 1. 程式設計教學的發展。 (頁 42-52)

二、使用參數(parameter)

有沒有發現這四隻甲蟲的程式碼很類似?有沒有什麼方法可以使它更精簡?

這個時候我們可以使用”parameter”這個新的功能。

1、先在 world’s details 新增一個方法

(method),取名為 solo。

2、按下新增 parameter(參數),注意 要將 parameter 的 Type(型態)設定 為 object。

3、將 Do together 和 Do in order 放入 World.solo 中。

4、直接將 bandMember 拉進 Do in order 的區塊中。

5、這時候 Alice 會要求我們設定樂團成員(bandMember)的動作,把動作設 定為向上跳 1 / 2 公尺(move up 1 /2 meter)。

6 、 完 成 bandMember 的 move up 動 作 後 , 重 覆 剛 剛 的 動 作 , 一 併 將 bendMember move down 完成,對照你完成之後的程式碼和下圖是不是相符 合?

7、回到 world.my first method,把 solo 拉進 world.my first method 裏,因為我 們把 bandMember 這個參數的型態設為 obj(物件),所以這時候 Alice 會要 求我們設定傳給 solo 的物件。為了要讓 georgeBeetle、lennonBeetle、

paulBeetle、ringBeetle 這四隻甲蟲都各表演一次,所以將 solo 拉進 world.my first method 裏的這個動作需要做四次。

8、完成之後如下圖,只需要寫一個 world.solo 的程式之後,透過傳遞參數,可 以把不同的成員名字傳給 world.solo,Alice 就可以知道這時候該讓哪隻甲蟲 表演。

三、新增另一個參數 music

甲蟲既然是表演樂器,那當然要來點音樂才逼真,現在利用新增一個 music 的參數,把樂器聲音名稱傳給 world.solo。

1、打開剛剛編完的 World.solo 的程式碼,新增一個 parameter,取名為 music,

因為是聲音,所以我們選擇 Other,再選擇 Sound。

2、加入聲音,先選擇 bassGuitar,放進 World.solo。

3、將 world.bassGuitar 用 music 取代。

4、完成後的 World.solo 如下圖,請注意 world play sound music more 是放在 Do together 裏,並不是放在 Do in order 裏。

5、再打開剛剛編輯的 world.my first method,現在的 world.my first method 和 剛剛的 world.my first method 有什麼不一樣?

我覺得不一樣的地方是….

6、在 music 右邊倒三角形的下拉式選單中,選擇分別相對應的樂器演奏聲音。

[概念說明]

參數(parameters)是讓兩個不同的方法(functions),彼此之間用來傳遞 所需要的數值。在本課的範例中,我們在 world.solo 裏新增了兩個變數,一個是 bandmember,另一個是 music。當 world.my first method 呼叫 world.solo 的時 候,world.my first method 必須傳遞 bandmember 和 music 這兩個參數給 world.solo,這樣 world.solo 才會知道現在是輪到哪個樂團成員表演。

重新再看我們剛編寫的程式碼(如下圖),在 world.my first method 裏,呼 叫了 world.solo,並且將 bandMember 設定成 geogeBeetle,music 設定成 World.bassGuiter,

當 world.solo 被呼叫的時候,它會自動將 bandMember 和 music 替換成 georgeBeetle 和 World.bassGuitar

對照上圖一起看,也就是說實際上它在執行時,已經變成了像下圖的程式 碼,所以當你將 bandMember 設定成 georgeBeetle,music 設定成

World.bassGuiter 的時候,就會是 georgeBeetle 執行表演動作並且往上跳一次。

Do together

World play sound World.bassGuitar more Do in order

georgeBeetle move up 0.5 meters duration = 0.5 seconds more georgeBeetle move down 0.5 meters duration = 0.5 seconds more

也就是說,當 my first method 取用 world.solo 的時候,my first method 會分別

bandMember=lennonBeetle、music= World.guitar;

bandMember=ringoBeetle、music= World.Drum;

bandMember=paulBeetle、music= World.saxophone;這些參數值傳給

world.solo 的 member 和 music,world.solo 會再根據所收到的參數值做不同的 動作。

請問將 bandMember 設定為 lennonBeetle,music 設定為 World.guitarSolo 時, World.solo 實際在執行時的程式碼為何?填入括號內

Do together

( )

Do in order

( )

( )

[課後練習]

1、現在我們來試試看別種型態的參數吧!在剛剛的範例中,每隻甲蟲都會向上跳 0.5 meter 再往下跳 0.5meter,修改範例,新增一個 parameter,取名為 height,

讓每隻甲蟲向上跳的高度都不一樣。

2、請設計一個如下圖情境,在一個池塘旁有四隻青蛙在做日光浴,這時候有一 條饑餓的蛇在池塘的四周徘徊,當青蛙一發現有蛇靠近的時候,它就跳進池 塘裏去。你必須替這四隻青蛙取四個不同的名字,並且利用傳遞參數

(parameters)的方式指定是哪隻青蛙跳進池塘裏。

1、池塘旁有五隻青蛙,有隻蛇朝青 蛙們爬去

2、第一隻青蛙轉向池塘

3、第一隻青蛙跳進池塘裏 4、蛇繼續朝青蛙們爬去

3、利用 Alice,可以設計一場魔術表演哦!請設計一個如下圖的場景,有個魔術 師,一個女助手,一張桌子,還有在魔術表演裏一定不可缺少的兔子囉!

魔術師的手先朝向女助手並向上舉起再放下,女助手會向上升起再降下,接 著魔術師的手再朝向兔子並向上舉起再放下,兔子會向上升起再降下。因為 這兩個動作是相同的,所以請你寫一個 method,利用傳遞參數的方式,將

移動的距離是不同的。(在 People 這個分類裏可以找到 Magician(魔術師); 在 People 這個分類裏可以找到 girl(女助手);在 Web gallery 裏的 Furniture 這個分類裏可以找到;在 animals 這個分類裏可以找到 rabbit(兔子)) 機器人)、在 Object 的分類下找到 barbell(大的啞鈴)、Pinata(小鹿布偶)、

teddyBear(小熊布偶))

你需要寫三個 methods,它們的功能分別是:

pickup(撿起):機器人走到物品的旁邊把東西撿起來 putdown(放下):機器人把手上的東西放下

putInCloset(放到櫃子裏):機器人走向櫃子並且把櫃子的門打開 這個例題同樣的需要利用傳遞參數的方式,指定機器人要收哪樣東西,大的 啞鈴或小鹿布偶或是小熊布偶。

1、機器人走到物品的旁邊 2、把東西撿起來 3、機器人走向櫃子並且把 櫃子的門打開,把東西放 進櫃子裏

在文檔中 1. 程式設計教學的發展。 (頁 42-52)

相關文件