^

Scratch教學篇-認識變數

HiThink-logo
海獅程式團隊
Apr 14,2020

Scratch平台中的變數類型有幾種?程式設計中的全域變數和私有變數在Scratch中如何實作!文章將從認識變數、了解變數使用限制,最後分享在不同的創作需求中,如何選擇最適合的變數來設計應用。2020/6/6(修)

Scratch教學篇-認識變數
Scratch教學篇-認識變數

...

考量Scratch平台的中文化再後續有調整,可能讓文章中圖片和平台上說明有不同而造成困惑,因此本文中的操作圖片都以英文版為主,圖片版權為 MIT所有。

什麼是常數,什麼是變數?

開始討論前,先來認識常數和變數的基本定義
常數(constant)是一個固定不變的數值,例如1或3.14。
變數(variable)是一個可以改變的數值,例如x = 1,x就是變數,x等於什麼?依指派(assign)的值為主。

Scratch變數類型有幾種

1.全域變數(global variable)
Scratch對應的名稱是For all sprites(適用於所有角色),設定後可以給專案(作品)中的所有角色及背景使用。

Scratch全域變數設定方法
Scratch全域變數設定方法

2.私有變數(private variable)
Scratch對應的名稱是For this sprite only(僅適用當前角色),設定後只有該角色可以使用。

Scratch私有變數設定方法
Scratch私有變數設定方法

3.雲端變數(cloud variable)
Scratch獨特的變數類型,對應的名稱是cloud variable(stored on server)/雲端變數(儲存於伺服器),設定後可以給專案(作品)中的所有角色及背景使用。

當設定選取Cloud variable選項後,For all sprites選項將自動被選取,For this sprite only選項狀態會消失。

Scratch雲端變數設定方法
Scratch雲端變數設定方法

全域變數和雲端變數有什麼差別?
1.全域變數在線上版或離線版都可以新增。
2.雲端變數會將異動過的紀錄存放在官方主機並可查看紀錄。
3.雲端變數存放的資料必須是數值型態。

變數存放的資料型態

  • 數值資料:1、0、3.14、-1
  • 字串資料:APPLE、icoding.com.tw、空字串、Scratch程式設計
  • 布林值資料:true、false

※Scratch字串沒有大小寫區分,因此APPLE和apple是相同的。

變數使用的限制說明

  • 全域變數的變數名稱不能相同,私有變數在不同角色上名稱可以相同。
  • 全域變數和私有變數的變數名稱不能相同。若名稱有重複時,依建立優先順序為主,後面建立的名稱不能重複。
  • 全域變數和雲端變數名稱可以相同(※補充)。
  • 雲端變數必須使用線上版本才能新增。
  • 雲端變數只能指派數值型態資料。

補充:
雖然雲端變數和全域變數從積木圖示上可以很直覺分辨(下面範例有圖示可参考),但還是建議使用不同名稱來命名,從Scratch開始培養好的編程習慣,為未來學習更進階程式語言奠定良好的基礎。

...

開始來動動腦、動動手、動動口

Scratch遊戲設計-肥皂VS病毒大作戰
Scratch遊戲設計-肥皂VS病毒大作戰

變數應用創作範例

專案主題說明:
使用Scratch程式來設計開發一個「肥皂VS病毒大作戰」專案遊戲,遊戲中玩家需使用肥皂來消滅掉所有病毒,防止病毒全境擴散,你能順利成為地球的最佳守護者嗎!

遊戲玩法說明:
玩家必須在指定時間內用「肥皂」來將三種病毒(SARS、MERS、Covid-19)消滅掉。每種病毒有自己的獨特生命值,每當病毒遇到肥皂時生命值就會減1,而玩家就能得到1分,當病毒的生命值為0時,該病毒就會被消滅而不見,注意你必須於時間內完成讓病毒都消失。

變數設計說明:

  • 「時間變數」使用全域變數(global variable)
    遊戲指定時間內開始倒數,必須在時間內完成消滅全部病毒。
  • 「生命值變數」使用私有變數(private variable)
    遊戲中Covid-19是最恐怖的病毒,在人體存活時間最長,因此生命值最大,每種病毒都有自己的特性。
  • 「分數變數」使用雲端變數(cloud variable)
    遊戲中進行紀錄玩家所得到的分數。

創作範例影片:

如何選擇變數類型

  • 設計時間、分數、關卡等應用,選擇全域變數。
  • 描述每個角色的特質或各別的生命值等應用,選擇私有變數。
  • 紀錄挑戰玩家的分數或歷史最高分等應用,選擇雲端變數。

...

閱讀完文章一定知道,Scratch變數類型共有三種「全域變數、私有變數和雲端變數」。當下次創作時,若你是Scratch好手,一定能依需求選擇;若你是正在學習Scratch的未來好手,可以参考本篇文章。最後不要忘記「想學好程式一定要自己動手來Coding」。

我變!我變!我變變變 換成 你變!你變!你變變變

大家都能愛編程、愛思考、愛創造