本章概念
3
程式設計初探
—生日派對
3-1 程式語言簡介 P.50
認識程式語言、認識Scratch、Scratch 歡迎式
3-2 角色移動—上街買蛋糕 P.60
刪除角色、新增角色、新增舞臺背景、
利用Scratch 完成程式
3-3 畫筆與造型—生日布置 P.66
舞臺安排、利用畫筆功能繪製移動路徑、
繪製連續造型的角色、造型切換、播放音效
3-4 演奏音階—鍵盤鋼琴 P.78
的回憶。
Scratch 是將程式語言以積木呈現,透過積木組合,就可以簡單的完成程式設計。
現在就讓我們試試看,利用 Scratch來完成小潔的生日派對吧!
49
職涯導航
根據美國勞工局的研究,
西元2024 年時,美國將有 一百萬個與電腦科學相關的 工作職缺。
和電腦科學相關的職業 有:程式設計師、研發工程 師、網頁工程師、遊戲開發 工程師、動畫設計師、資料 科學家等。
程式語言簡介
3-1
在第 2 章中,我們學習到「演算法是解決問題的方 法」,可以利用文字敘述、流程圖或虛擬碼的方式來呈 現。但是,若希望利用電腦來實踐演算法,我們還要先 學會和電腦溝通。
想一想,人與人溝通需要透過「語言」,那人與電腦 之間要如何溝通呢?
手腦並用
語言
國語 閩南語
客語 英語
?
1 認識程式語言
資訊科技在生活中的應用層面越來越廣,因此,每 個人都應該學習與電腦溝通。程式語言( programming
language )是「將演算法的步驟轉換為電腦可執行的指
令,並精確地定義在不同情況下應採取何種行動」的一 種電腦語言,可說是人類與電腦溝通的語言。
如同人類間存在著各種不同的語言,隨著資訊科技
的演進與應用領域的不同,發展出各種程式語言,一般
可分為低階語言與高階語言兩大類。
1 低階語言(low-level language)
●
機器語言( machine language)
機器語言是最早的程式語言,由於電腦只認得 0 與 1 的訊號,因此機器語言的指令僅由 0 與 1 兩種符號組 成(圖 1-3-1)。也因為電腦可以直接看懂機器語言,
所以執行速度最快;但是,機器語言的可讀性低、不易 維護,且必須針對硬體進行設計,因此不同硬體設備的 電腦間無法通用,即所謂的可攜性差。
圖 1-3-1 機器語言與電腦溝通。
……0111101100111……
機器語言
●
組合語言( assembly language)
組合語言採用接近人類語言的簡短字串作為指令,
比起用 0 與 1 組合的機器語言容易理解(圖 1-3-2),
但因為電腦只懂機器語言,因此必須先轉譯為機器語言 才能執行,所以執行速度比機器語言慢;組合語言仍屬 於低階語言,可攜性差,無法在不同硬體設備的電腦間 通用。
圖 1-3-2 組合語言須轉譯成機器語言才能與電腦溝通。
……11011010……
……01010111……
機器語言
MOV X, 20
ADD X, 1
組合語言經過 轉譯
程 式 設 計 初 探 3 — 生 日 派 對
第 章
3-1 程式語言簡介
51
3-1
3-2
3-3
3-4
2 高階語言(high-level language)
高階語言的語法較接近人類的語言,使用上易於理解,且程式可 跨平臺在不同的電腦系統上執行,因可攜性佳而被廣泛應用。常見的 高階語言包括 C、C++、P ython 、 J ava 等,但由於必須轉譯成電腦能 理解的機器語言,因此執行效率會比機器語言低(圖 1-3-3)。
圖 1-3-3 高階語言比較容易理解,但也須轉譯成機器語言才能與電腦溝通。
……00010010……
……11010001……
機器語言
X=20
print(X+1)
高階語言經過 轉譯
延伸學習 常見的程式語言特色與應用範圍
低階語言
程 式 語 言
針對機器設 計,不同設 備的程式無 法通用。
程式可跨平 臺在不同的 電腦系統上 執行,語法 較好理解。
C 可於各種作業系統中執行,主要應 用於作業系統開發。
C++ 承襲C 語言的特性,常用於開發應 用程式。
Java
可於不同作業系統中執行,廣泛使 用於web 應用開發和行動系統應用 程式。
Python 語法易於理解,套件模組豐富,也 被廣泛使用在數據分析領域。
LISP 歷史悠久的程式語言,因應人工智 慧而發展的語言。
Prolog 原用來處理自然語言的程式語言,
被廣泛應用於人工智慧領域。
機器語言 電腦可直接執行,執行速度最快,
人類不易理解。
組合語言 須經過轉譯電腦才能執行。
高階語言
2 認識 Scratch
目前各領域廣泛應用的程式語言多為文字式程式語 言,但語法較為複雜,因此學習難度高。為了降低學 習門檻,我們可以選擇視覺化程式設計工具 ,例如 S cratch 、 B lockly 、 A pp I nventor 等,來學習程式的邏 輯,作為未來進入文字式程式設計的基礎(圖 1-3-4)。
開始 x = 20
sum = x + y y = 15
結束 輸出sum
圖 1-3-4 除了傳統文字式程式語言之外,現在更有視覺化程式設計工具,方便
我們從演算法進入程式設計的世界。
A
文字式(以 C 語言為例)B
視覺化(以 Scratch 為例)本書選用 S cratch 作為學習撰寫程式的工具,只要
將程式積木拖曳、組合,就能完成程式設計(圖 1-3-5)。
我們可以使用 S cratch 來創作互動式故事、遊戲、動畫、
音樂,還能在官方網站上分享自己的創意作品。
小叮嚀
本書畫面使用Scratch3.0 版 本。 由 於Scratch 會不定 時改版更新,因此最新版的 介面、翻譯,可能與本書畫 面略有不同。
圖 1-3-5 只要經由積木組合,就能完成Scratch 程式設計;右側舞臺區呈現的就是程式執行的結果。
❶
拖曳❷
組合知識快遞
視覺化程式設計工具又 稱「積木式」或「圖形化」
程式設計工具,讓初學者避 開文字式程式語法的學習障 礙,經由積木的組合,專注 於程式邏輯的學習。
程 式 設 計 初 探 3 — 生 日 派 對
第 章
3-1 程式語言簡介
53
3-1
3-2
3-3
3-4
C 程式編輯區
組合程式積木的地方。
可視需求控制積木顯示的大小,
方便檢視程式。
點選左側的「積木類別」,
右方會列出相關的程式積木。
B 程式積木區
1 Scratch 操作介面
物件可編輯的項目。
1.「角色」可編輯的項目:
2.「舞臺」可編輯的項目:
A 選項列
連結 Scratch 首頁,點擊「創造」,即可進入此介面。https://scratch.mit.edu/
註 增加擴展積木
點擊 可添加擴展項目到左側類別 區,例如:
1. 可以控制角色發出聲音、音 樂相關的積木。
2. 可以讓角色在舞臺上繪圖的 積木。
還有更多延伸工具,或與硬體設備互動 的功能,請自己探索看看!
D 角色區
本專題使用的所有角色清單。
1. 點擊角色縮圖,進入此角 色控制模式。
2. 點擊「選個角色」鈕,直 接由範例庫新增角色。
展示程式執行成果的區域。
1. 開始執行程式。
2. 停止執行程式。
3. 縮小舞臺區。
4. 放大舞臺區。
5. 全螢幕顯示。
F 舞臺區
註 新增角色/舞臺的方式
當鼠標停在按鈕上,會出現隱藏選單。
1. 從電腦中上傳。
2. 隨機挑選。
3. 自行繪製。
4. 從範例庫挑選。
控制舞台場景變換。
1. 點擊背景縮圖,進入背 景控制模式。
2. 點 擊「 範 例 背 景 」 鈕,
直接由範例庫新增背景。
舞臺背景區
E
程 式 設 計 初 探 3 — 生 日 派 對
第 章
3-1 程式語言簡介
55
3-1
3-2
3-3
3-4
3 角色方向
角色面對的方向會決定移動的方向,
角色預設為面朝 90 度(面向右方)。
向上 ( 0 度)、 向下 (180 度)
向右 ( 90 度)、 向左 (270 度)
圖 1-3-7 Scratch 角色方向。
此時小貓咪面向90 度方向,移動時會向右方移動。
2 舞臺坐標
舞臺區是展示程式執行結果的地方,
而角色在舞臺上的位置可用坐標來表示。
圖 1-3-6 Scratch 舞臺的坐標。
此時小貓咪的造型中心位於X: -100、Y:100 的位置,數學上記錄為( -100, 100)。
X 軸 : 介於-240~240 間 Y 軸 : 介於-180~180 間
0 度
180 度
(-180 度)
270 度
(-90 度) 90 度
(-270度)
如右圖,直接由 Scratch 範例庫中匯入蝙蝠角色(Bat),則:
(1) 若在不調整角色方向的狀況下,程式要角色 移動 10 點 ,則 蝙蝠會往舞臺的哪一個方向移動?
(A) 上方 (B) 下方 (C) 左方 (D) 右方。
(2) 當角色 面朝 0 度 時,蝙蝠會呈現什麼狀態?
(A) (B) (C) (D)
手腦並用
學習目標 1. 匯入舞臺背景。
2. 完成第一個程式。
3 Scratch 歡迎式!
現在,讓我們來熟悉一下 S cratch 的基本操作方式,
完成第一支 S cratch 程式。
現在要進行 Scratch 的歡迎儀式,主持人是小貓咪。儀式開始時,小貓咪要先 在舞臺左側就位,等待 1 秒後,再移動到舞臺中間。
當小貓咪到達舞臺中間,先停頓 1 秒,再用對話框說出:「哈囉!大家好!歡 迎一起來學 Scratch。」 過程如下圖所示,請利用 Scratch 來完成任務吧!
任務說明
答
本程式使用的是 Scratch 範例庫中的背景,試試看,下列哪一組步驟可以 順利新增舞臺背景呢?
(A) 角色區 選個角色 (B) 舞臺背景區
選個背景 (C) 角色區
選個背景 (D) 舞臺背景區
選個角色
新增舞臺背景 新建專案
逐步解析 1
(B)。
新增舞臺背景:舞臺背景區/選個背景/音樂/Spotlight 註 必須新增背景之後,才能將預設的白色背景刪除。
程 式 設 計 初 探 3 — 生 日 派 對
第 章
3-1 程式語言簡介
57
3-1
3-2
3-3
3-4
(1) 找找看,小貓咪的「移動」要用哪一類的積木來表現?
(A) 事件類 (B) 動作類 (C) 外觀類 (D) 音效類
(2) 小貓咪就位之後要先 等待 1 秒,找找看,要用哪一類的積木來表現?
(A) 動作類 (B) 事件類 (C) 控制類 (D) 外觀類
(3) 如右圖,小貓咪要用對話框說「哈囉!」,找找看,要用 哪一類的積木來表現?
(A) 音效類 (B) 事件類 (C) 外觀類 (D) 動作類
哈囉!
認識各類積木
逐步解析 2
(1) (B)。
移動屬於 動作類 ,是藍色的積木。
-- 朝著角色面對的方向移動 10 點 -- 將角色移動到(0, 0)
-- 角色在 1 秒內,滑行到(0, 0)
(2) (C)。
等待屬於控制類 ,是橘色的積木。
-- 等待 1 秒,然後再執行後續的程式。
(3) (C)。
用對話框說話屬於外觀類,是紫色的積木。
-- 出現對話框 2 秒,然後對話框消失,接著執行後續的程式。
-- 出現對話框後立即執行後續的程式,對話框不會自行消失。
答
(1) 在歡迎式過程中,小貓咪要完成下列動作。請使用課本【附件 1】的紙卡,
比照「任務說明」指示的流程,依順序重新排列組合。
(2) 請依據 (1) 排列完成的流程步驟,改以 Scratch 完成程式。
使用Scratch 完成第一個程式
逐步解析 3
附件2
3-2 上街買蛋糕—逐步解析 3(配合課本66頁)開始 在 B 點等待 1 秒
定位到 D 點(- 55, 15) 定位到 A 點(- 188, - 80)
在 A 點等待 1 秒 定位到 C 點(- 55, 130)
在 E 點等待 1 秒 定位到 E 點(85, 15)
在 C 點等待 1 秒 定位到 B 點(- 188, 130)
在 D 點等待 1 秒 說「我買到蛋糕了!」(2 秒)
附件1
3-1 Scratch 歡迎式—逐步解析 3(配合課本61頁)說「哈囉!」(2 秒) 移到舞臺上就位(20, - 15)
在左側就位(- 140, - 55) 說「大家好」(2 秒)
說「歡迎一起來學 Scratch !」 在左側等待 1 秒
開始 在舞臺上等待 1 秒
答 (1) 「Scratch 歡迎式」的正確流程:
D
開始B
在左側就位(-
140,-
55)G
在左側等待1 秒E
移到舞臺上就位(20,-
15)H
在舞臺上等待1 秒A
說「哈囉!」(2 秒)F
說「大家好」(2 秒)C
說「歡迎一起來學Scratch !」(2) 附件拼完後,將排好的紙卡翻面,可以看到對應的程式積木。
請利用Scratch 執行看看是否正確。
A 說「哈囉!」(2 秒)
翻面
程 式 設 計 初 探 3 — 生 日 派 對
第 章
3-1 程式語言簡介
59
3-1
3-2
3-3
3-4
媽媽要上街買蛋糕,蛋糕店開在一條 彎曲馬路的盡頭。請播放範例影片 上街買 蛋糕 .mp4 ,觀察程式的執行情形,一起用 Scratch 來完成任務吧!
【程式摘要】
媽媽必須從 A 點出發,沿著街道移動到 E 點
(蛋糕店),最後說:「我買到蛋糕了!」。
小叮嚀
各活動的範例影片、程式檔案等素材,均可由P.3
「檔案下載方式說明」提供的網址下載。
搭配【逐步解析】說明
題目解析流程
任務說明
開始
刪除貓咪
移動位置
說「買到蛋糕」
新增 媽媽 、 蛋糕 新增背景
等待時間
1
3
角色及背景
買到蛋糕 媽媽上街
結束
2
檔案
3-2
下載方式請見 P.33-2 角色移動 —上街買蛋糕
在這一節中,我們將學會匯入背景、匯入角色,並 利用 動作類 積木來移動角色(表 1-3-1)。
學習目標 1. 匯入背景與角色。
2. 控制角色移動。
表1-3-1 本程式所需積木
積木類型 外觀 功能
事件類 當綠旗被點擊後,開始執行下方的指令積木。
控制類 等待指定時間之後,繼續執行下一個指令積木。
動作類
將角色移動到指定位置。
角色在指定時間內,滑行到指定位置。
外觀類 以對話框顯示指定文字,並在指定的秒數後消失,
接著才執行下一個指令積木。
程 式 設 計 初 探 3 — 生 日 派 對
第 章
3-2 角色移動──上街買蛋糕
61
3-1
3-2
3-3
3-4
答 在角色區中,刪除角色的方法有2 種:
1. 在小貓咪身上按 下 「滑鼠右鍵/刪除」 2. 點擊小貓咪身上的
1. 街道地圖:舞臺背景區/上傳/選擇檔案 2. 媽媽:角色區/上傳/選擇檔案
3. 蛋糕:角色區/選個角色/ Cake
本程式要用到三個素材: 街道地圖
(舞臺背景)、 媽媽
(角色)和 蛋糕
(角色), 應該如何安排到舞臺上?
註 蛋糕 可在範例庫中找到, 媽媽 和 街道地圖 請依 P.60 任務說明下載。
新增角色、新增舞臺背景
逐步解析 2
開啟一個新專案之後,舞臺上會出現一個預設的小貓咪,但是我們用不到 他。要如何刪除舞臺上預設的小貓咪?
刪除角色 新建專案
逐步解析 1
答
調整角色尺寸大小
新增角色後,可利用角色區的尺寸工具來 調整角色尺寸大小。
100 為預設尺寸,數字大於 100 為放大;
數字小於100 為縮小。
按右鍵
刪除
取得角色坐標位置
❶
將角色拖曳到舞臺上特定位置。❷
此時積木已自動填入角色的坐標值 。❶
❷
試試看,幫媽媽加上右圖的程式,讓媽媽依序由A 點移動到B 點,最後停留在 C 點。
但是執行程式後,卻會發現媽媽一直停留在C 點不 動,為什麼呢?想一想,可以怎麼修正?
手腦並用
A 點 B 點
C 點
--A 點 --B 點 --C 點
程 式 設 計 初 探 3 — 生 日 派 對
第 章
3-2 角色移動──上街買蛋糕
63
3-1
3-2
3-3
3-4
答 (1)「上街買蛋糕」的正確流程:
A
開始H
定位到 A 點(-188, -80)C
在 A 點等待 1 秒K
定位到 B 點(-188, 130)G
在 B 點等待 1 秒I
定位到 C 點(-55, 130)E
在 C 點等待 1 秒B
定位到 D 點(-55, 15)F
在 D 點等待 1 秒J
定位到 E 點(85, 15)D
在 E 點等待 1 秒L
說「我買到蛋糕了!」(2 秒)(2) 附件拼完後,將排好的紙卡翻面,可以 看到對應的程式積木,請利用Scratch 執行看看是否正確。
(1) 請使用課本【附件 2】的紙卡,比照「任務說明」指示的流程,依順序重新 排列組合。
(2) 請依據 (1) 排列完成的流程步驟,改以 Scratch 完成程式。
利用Scratch 完成程式
逐步解析 3
附件2
3-2 上街買蛋糕—逐步解析 3(配合課本66頁)開始 在 B 點等待 1 秒
定位到 D 點(- 55, 15) 定位到 A 點(- 188, - 80)
在 A 點等待 1 秒 定位到 C 點(- 55, 130)
在 E 點等待 1 秒 定位到 E 點(85, 15)
在 C 點等待 1 秒 定位到 B 點(- 188, 130)
在 D 點等待 1 秒 說「我買到蛋糕了!」(2 秒)
附件1
3-1 Scratch 歡迎式—逐步解析 3(配合課本61頁)說「哈囉!」(2 秒) 移到舞臺上就位(20, - 15)
在左側就位(- 140, - 55) 說「大家好」(2 秒)
說「歡迎一起來學 Scratch !」 在左側等待 1 秒
開始 在舞臺上等待 1 秒
1
小試身手 小青蛙要上岸
小青蛙在池塘中,要沿著石頭跳上岸。請利
用 S cratch 協助小青蛙順利到達岸上吧!
1. 請 新建專案 撰寫程式。
2. 本程式所需的角色與背景,均可在範例庫中取得。
3. 匯入背景後,請利用 S cratch 的繪圖功能畫出「起點、 3 顆石頭、終點」。(無須寫字)
4. 程式流程:(1) 小青蛙站在 起點(S tart ),說:「我要上岸了」。
(2) 小青蛙依序經過 3 顆石頭再抵達 終點(G oal )。
(3) 抵達終點後,小青蛙說:「再見囉!」。
繪製背景的石頭
❶
點選背景。❺
在適當位置畫石頭。❷
點選背景頁籤。❻
可用 選取工具 調整石頭的位置與大小。❸
點選 畫圓工具 。❼
可 複製 已畫好的石頭,來完成其他石頭。❹
選擇顏色。❷
❹
❻
❸
❺
❼
❶
程 式 設 計 初 探 3 — 生 日 派 對
第 章
3-2 角色移動──上街買蛋糕
65
3-1
3-2
3-3
3-4
3-3 畫筆與造型 —生日布置
小潔就要過 12 歲生日了,爸爸準備布 置 一 個 繽 紛 的 慶 生 會 場。 請 播 放 範 例 影 片 生日布置 .mp4 ,觀察程式的執行情形,一起 用 Scratch 來完成任務吧!
【程式摘要】
1. 用 鉛筆 以「一筆畫」的方式,讓數字「 」 呈現出動態書寫的效果。
2. 寫完數字後, Happy Birthday 像煙火一樣 綻放出美麗的光芒,然後播放掌聲歡呼的 音效。
搭配【逐步解析】說明
題目解析流程
任務說明
檔案
3-3
下載方式請見 P.3開始
刪除貓咪
畫筆顏色/
畫筆粗細
新增鉛筆、
煙火 新增背景
畫數字「 」 畫數字「 」
「歡呼」音效 切換角色造型
角色及背景
煙火 一筆畫數字
結束
3 2
1
4
角色造型繪製在這一節中,我們將用 畫筆類 積木來模擬鉛筆「一 筆畫」寫字的效果,並利用 外觀類 積木來控制角色造 型變換,呈現煙火的動畫效果(表 1-3-2)。
學習目標 1. 模擬動態書寫效果。
2. 切換角色造型。
3. 匯入與播放音效。
表1-3-2 本程式所需積木
積木類型 外觀 功能
事件類 當綠旗被點擊後,開始執行下方的指令積木。
控制類 等待指定時間之後,繼續執行下一個指令積木。
動作類
將角色移動到指定位置。
*
朝角色面對的方向移動指定點數。外觀類
以對話框顯示指定文字,並在指定的秒數後消失,
接著才執行下一個指令積木。
*
將角色切換成指定的造型。*
將角色切換成下一個造型。音效類
*
讓角色播放指定的音效。註 角色必須先新增音效,才能播放音效。
畫筆類
*
當角色移動時會描繪出移動軌跡。*
停止描繪角色移動軌跡。*
清除舞臺上所有的筆跡。*
設定畫筆顏色。註 紅色(0 或 100)、綠色(30)、藍色(65)
*
設定畫筆的粗細。(* 代表首次使用的積木)
程 式 設 計 初 探 3 — 生 日 派 對
第 章
3-3 畫筆與造型──生日布置
67
3-1
3-2
3-3
3-4
答角色及任務:
角色/背景 來源 任務
慶生會場.jpg 下載取得。
鉛筆 由範例庫中取得。
煙火 自行繪製,繪製方法將於
【逐步解析3】中說明。
在本程式中,需要用到 慶生會場 .jpg 、 鉛筆 、煙火 這三個素材,他們分 別有什麼任務?請觀察影片 生日布置 .mp4 ,將觀察結果填寫在下表中,並完 成舞臺與角色的安排。
舞臺安排 新建專案
逐步解析 1
「畫線」功能
角色移動時,搭配 畫筆類 的 和 ,就可以描繪出角色移動的軌跡。
1. 「畫線」的基本模式:下筆 → 移動 → 停筆
移動 移動 移動
下筆 停筆
移動
下筆 停筆
2. 設定筆畫:可依需求,設定畫筆的粗細、顏色。
3. 清除筆跡:舞臺上的筆跡不會自動清除,所以每
次程式開始時,都要先執行 ,
清除上一次程式執行留下的筆跡,確保畫面上出 現的是本次執行的結果。
就像每次上課前,
老師都要先將黑板擦 乾淨,確保黑板上出 現的都是新內容。
在生日布置的程式中,我們要用 鉛筆
(角色)搭配畫筆功能,
用寬度為 2 的紅色線條,每次以 為單位畫線,呈 現一筆畫寫出「 」和「 」的動態書寫效果,過程如右圖所示。
註
右圖中,每個箭頭代表畫出一段長度為 50 點的線條。
利用畫筆功能繪製移動路徑
逐步解析 2
❶
❷
❸
❺ ❹
❻
❼
1
設定畫筆
2
寫出「 」
因為所有線條均相同,所以在程式一開始,
就先進行畫筆的設定:
(1) 清除上次執行程式時產生的筆跡。
(2) 設定畫筆顏色:0(紅色)。
(3) 設定畫筆寬度:2。
(1) 每一個筆畫的基本處理方式:
調整面對方向 / 移動50 點 / 等待 1 秒 。
(2) 書寫「」和「 」前, 鉛筆(角色)均要先進行定位:
①
定位的方法與 3-2 節相同。
②
利用
動作類的 進行定位。
註 起始坐標請自訂,或使用參考坐標:
「」(-180, 50)、「 」(- 150, 50)。
問題思考
2
寫出「 」
1
設定畫筆
解題分析
小叮嚀
預 設 積 木 中 沒 有「 畫 筆 類」積木,請利用「添加擴 展」新增到列表中。
程 式 設 計 初 探 3 — 生 日 派 對
第 章
3-3 畫筆與造型──生日布置
69
3-1
3-2
3-3
3-4
設定「造型中心」
•問題 筆跡不是從筆尖繪出。
Scratch 的畫筆 功能,筆跡會由角色的「預設造型中心」繪出,因此,鉛筆畫線 的效果較不自然(如右圖)。
•調整方法
將鉛筆的造型中心移到筆尖:
❶
點選造型頁籤❷
利用 選取工具 框起整枝鉛筆❸
將筆尖對齊造型中心的標記❸
❷
❶
•修正結果
將鉛筆的造型中心調整到筆尖之後,筆跡就會從筆尖繪出了。
❶
❷
❸
❺ ❹
❻
❼
(3) 寫「 」的完整步驟:(筆畫❶+筆畫❷) 起點(自訂)
→ 下筆
→①面向下/移動/等待1 秒
→②面向下/移動/等待1 秒
→ 停筆
續
01 02 03 04 05 06 07 08 09 10 11 12 13 14
基本設定
筆畫❶筆畫❷
「1」點的起點
數字 「1」
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
「2」點的起點
數字 「2」
筆畫❸筆畫❹筆畫❺筆畫❻筆畫❼續
【參考程式】
❶
❷
❸
❺ ❹
❻
❼
執 行 結 果
註 為了能清楚看到筆畫❶從無到有的繪製過程,
因此在06 行增加 等待 1 秒 。
程 式 設 計 初 探 3 — 生 日 派 對
第 章
3-3 畫筆與造型──生日布置
71
3-1
3-2
3-3
3-4
繪製煙火 連續造型
(1) 每個造型之間,都有共同的元素,因此以複製的方式較有效率:
完成前一個造型 → 複製 → 修改成後一個造型。
(2) 繪製 造型 1 :
❶
點擊 繪畫❸
輸入文字❺
設定文字色彩❷
點擊 文字工具❹
設定文字字型❶
❷
❸
❺ ❹
問題思考
解題分析
繪製煙火 連續造型
接著要登場的是具有 4 個連續造型的 Happy Birthday 煙火效果。請自行繪 製出這個 煙火 角色。
註
煙火 具有 4 個連續造型,每個造型都比前一個造型多一些彩帶裝飾。
繪製連續造型的角色
逐步解析 3
❶
❷
❸
❹
(3) 複製出造型 2:在 造型1 上按「滑鼠右鍵 /複製」,產生 造型 2 。
按右鍵
(4) 修改 造型 2 :
❶
點選 畫筆❷
設定畫筆粗細❸
設定畫筆顏色❹
繪製煙火效果程 式 設 計 初 探 3 — 生 日 派 對
第 章
3-3 畫筆與造型──生日布置
73
3-1
3-2
3-3
3-4
接續【逐步解析 3】,在完成「數字 一筆畫」之後,我們要用程式控制煙 火的造型切換,以達到動態效果的展示,並在展示結束後播放掌聲歡呼的音效。
造型 1 → 造型 2 → 造型 3 → 造型 4 → 播放音效
造型切換、播放音效逐步解析 4
1
展示 煙火效果
2
播放音效
(1) 煙火角色起始設定:
① 定位:用 動作類 的 將角色定位。
② 起始造型:用 外觀類 的 設定角色的起始造型。
(2) 展示動態效果:
① 展示時機:
按綠旗 數字一筆畫 開始展示煙火
9 秒
問題思考
解題分析
1
展示 煙火效果
/ 等待 9 秒 +
/ 等待 0.5 秒
+
/ 等待 0.5 秒
+
/ 等待 0.5 秒 +
程式開始
/ +
+ + +
/
/
/
② 煙火動態效果:
利用「造型切換+等待0.5 秒」呈現。
小叮嚀
在設定完煙火的起始造型後,因為角色的造型是順序切換的,我們可以將
改以 來呈現。
程 式 設 計 初 探 3 — 生 日 派 對
第 章
3-3 畫筆與造型──生日布置
75
3-1
3-2
3-3
3-4
01 -- 當綠旗被點一下開始
02 -- 移到起始坐標定位
03 -- 以 造型 1 為起始等待狀態 04 -- 等待數字 一筆畫程式執行完畢9 秒
05 -- 切換到 造型 2
06 -- 等待 0.5 秒
07 -- 切換到 造型 3
08 -- 等待 0.5 秒
09 -- 切換到 造型 4
10 -- 等待 0.5 秒
11 -- 播放音效掌聲歡呼
1
2
【參考程式】
2
播放音效
(1) 新增掌聲歡呼音效:角色要發出音效,必須先新增音效。
❶ 點選煙火角色 ❸ 在範例庫中挑選音效
❷ 點擊音效頁籤 ❹ 選用範例庫中的 Clapping 音效。
❶
❷
❸
❹
(2) 播放音效:
用 音效類 的 來播放音效。
小試身手 數字一筆畫
在路口等待紅燈時,常可看到紅 綠燈上有倒數計時的數字。
今天,計時器的數字「 」和「 」 壞掉了,小潔想用「一筆畫」的方式,
把 和 描繪出來。
1. 請使用下載的 3-3 小試身手. jpg 作為背景。
2. 自行選擇線條顏色、粗細。
3. 寫字的筆畫順序如右圖,先寫「 」,再寫「 」。
4. 要能清楚呈現寫字的過程。
檔案 3-3 小試身手 下載方式請見 P.3
程 式 設 計 初 探 3 — 生 日 派 對
第 章
3-3 畫筆與造型──生日布置
77
3-1
3-2
3-3
3-4
在生日派對的最後,我們要製作一個「鍵 盤鋼琴」;請播放 鍵盤鋼琴 .mp4 ,觀察程 式的執行情形,讓我們用 Scratch 來完成任 務,然後一起彈琴,合唱生日快樂歌!
【程式摘要】
1. 可以利用電腦鍵盤的 Q ∼ P 鍵,分別彈奏 出「4
4( 低 音 Fa)」 ∼「6( 中 音 La)」
的聲音。
2. 按下鍵盤時,畫面中對應的白鍵要有「先 變小、再復原」的視覺效果。
搭配【逐步解析】說明
題目解析流程
任務說明
檔案
3-4
下載方式請見 P.32
開始當綠旗按下/
設定坐標位置 複製角色
按鍵 變小/復原 按下琴鍵
繪製白鍵、黑鍵
結束
1
新增角色/
畫新角色
設定彈奏音符
3-4 演奏音階 —鍵盤鋼琴
慶生會的最後,小潔一家人要一起彈琴、合唱生日 快樂歌。本程式中,我們將運用 音樂類 積木來製作「鍵 盤鋼琴」(表 1-3-3),一起來唱生日快樂歌吧!
學習目標
1. 利用鍵盤來觸發程式 事件。
2. 彈奏音符。
3. 改變角色外觀效果。
表1-3-3 本程式所需積木
積木類型 外觀 功能
事件類
當綠旗被點擊後,開始執行下方的指令積木。
*
當按下指定的鍵盤按鍵時,開始執行下方的指令積木。
動作類 將角色移動到指定位置。
音樂類
*
演奏出指定的音階、指定的拍數。外觀類
*
改變角色外觀大小。(正數代表放大、負數代表縮小)
控制類 等待指定時間之後,繼續執行下一個指令積木。
(* 代表首次使用的積木)
程 式 設 計 初 探 3 — 生 日 派 對
第 章
3-4 演奏音階──鍵盤鋼琴
79
3-1
3-2
3-3
3-4
我們要在舞臺上製作一個含有白鍵與黑鍵的鍵盤鋼琴,想想看,應該如何 完成這個任務?
1. 白鍵:
(1) 為了方便彈奏時識別,每個白鍵 上都要標示「簡譜記號」和「對 應鍵盤的英文字母」。
(2) 當按下電腦鍵盤上的 Q ∼ P 鍵 時,可以分別彈奏出「 4
4(低音 Fa)」∼「6(中音 La)」的聲音。
2. 黑鍵:裝飾用(無作用)
繪製角色、演奏音階、以鍵盤觸發程式 使 用 檔 案
3-4-1.sb3
逐步解析 1
對應鍵盤的英文字母 簡譜記號 黑鍵
白鍵
1
可彈奏的 白鍵
2
裝飾用的 黑鍵
(1) 共要製作
個白鍵(繪製+程式),依序排列定位。
問題思考
解題分析
1
可彈奏的 白鍵
小叮嚀
要完成多個具有相似外觀、程式的物件,其製作流程為:(以白鍵為例)
繪製 一個白鍵
(包括文字標示)
撰寫 白鍵程式
(定位、播放音效)
複製成 其他白鍵
逐一修改 各白鍵程式
(2) 繪製白鍵外形:
❶
點擊 繪畫 。❷ 選擇 方形工具 。
❸ 選擇白色。
❹ 設定外框。
❺ 拖曳滑鼠,畫出長方形。
(3) 標示文字:(以白鍵 Q 為例)
① 以繪圖工具中的 T (文字工具),
在白鍵上輸入「4」、「.」代表簡譜。
② 輸入「Q」代表對應鍵盤 Q 位置。
(4) 利用程式定位:(以白鍵 Q 為例)
使用 動作類 積木 。
❶
❷
❸
❺
❹
程 式 設 計 初 探 3 — 生 日 派 對
第 章
3-4 演奏音階──鍵盤鋼琴
81
3-1
3-2
3-3
3-4
2
裝飾用的
黑鍵 小叮嚀
我們可以利用複製的功能,複製出具有相同造型、相同程式的角色。在本程式 中,複製出來的角色須逐一修改的項目有:
1. 白鍵:
(1) 外觀文字:對應按鍵、簡譜符號。
(2) 程式:觸發按鍵、演奏音階、定位坐標。
2. 黑鍵:定位。
(5) 利用電腦鍵盤觸發程式:使用 事件類 積木。
❶點擊 ❹完成
❸點選
❷下拉
(6) 演奏音階:使用 音樂類 積木。
例參照下表,Q 鍵應發出「4 33 (低音Fa)」,
音符為「53」。
電腦鍵盤 Q W E R T Y U I O P
對 應 音 符
簡譜
4
335
336
337
33 1 2 3 4 5 6 唱名 低音Fa
低音 Sol
低音 La
低音 Si
中音 DO
中音 Re
中音 Mi
中音 Fa
中音 Sol
中音 La 音名 低音
F
低音 G
低音 A
低音 B
中音 C
中音 D
中音 E
中音 F
中音 G
中音 A 彈奏音符 53 55 57 59 60 62 64 65 67 69
(1) 共要製作 個黑鍵,依序排列定位。
(2) 參考白鍵的作法,繪製並定位即可。
小叮嚀
預 設 積 木 中 沒 有「 音 樂 類」積木,請利用「添加擴 展」新增到列表中。
• 複製角色
1. 特性:複製出來的角色,與原角色具有相同造型、相同程式。
2. 方法:在角色 1 上按「滑鼠右鍵/複製」,即會產生角色 2。
按右鍵
• 更改角色名稱
1. 在具有眾多角色的程式中,賦予角色有意義的名稱,可以更方便管理、撰寫程式。
2. 方法:點擊角色/更改角色名稱。
• 角色對齊
讓多個白鍵整齊排列的定位方法:
(1) X 坐標:設定成等距間隔。
(2) Y 坐標:設成相同的數值(排列高度相同)。
造型 中心
y 坐標相同
間隔相同
程 式 設 計 初 探 3 — 生 日 派 對
第 章
3-4 演奏音階──鍵盤鋼琴
83
3-1
3-2
3-3
3-4
【參考程式】
●白鍵
白鍵 Q W E R T Y U I O P
x 值 -210 -163 -116 -69 -22 25 72 119 166 213
按下鍵盤 q w e r t y u i o p
彈奏音符 53 55 57 59 60 62 64 65 67 69 音名 低音F 低音 G 低音 A 低音 B 中音 C 中音 D 中音 E 中音 F 中音 G 中音 A 註 每個人繪製的按鍵尺寸不同,定位坐標(x 值)僅供參考。
●黑鍵
黑鍵 1 2 3 4 5 6 7 x 值 -173 -126 -79 15 62 156 203
1
2
參考 下表
參考 右表
參考 下表
手腦並用
試試看,你能用自製的鋼琴,彈奏出生日快樂歌嗎?
生日快樂歌
祝你 生 日 快 樂 祝你 生 日 快 樂 祝 你
生 日 快 樂 祝 你 生 日 快 樂
註 Scratch 預設的樂器為鋼琴,可利用 修改成自己喜歡的樂器。
現在,我們要為每個白鍵都加上動態變化效果。試試看,要如何修改程式呢?
按下鍵盤 Q 鍵 鋼琴上的 白鍵 Q :
先變小再復原 發出演奏的音階
控制角色尺寸大小逐步解析 2
例
1
白鍵變小
2
白鍵復原
(1) 用 外觀類 的 來控制。
(2) 將尺寸縮小:(以縮小 10% 為例)
-- 將尺寸縮小 10%(負值)
(1) 將尺寸復原:(以縮小 10%、再復原為例)
-- 將尺寸放大 10%(正值)
(2) 複製程式:
① 在要複製的程式區塊上 按「滑鼠右鍵/複製」。
② 點擊角色區中的其他白鍵。
問題思考
解題分析
1
白鍵變小
2
白鍵復原
按右鍵
【參考程式】
(* 代表本次新增的積木)(以白鍵Q 為例)-- 當「綠旗」
被點一下開始
-- 角色定位 01
02
1
2
01
*02
*03
*04
05-- 當按下鍵盤 Q 開始執行 -- 將所按的白鍵縮小
-- 等待時間 -- 讓白鍵復原
-- 發出低音 Fa 的音
程 式 設 計 初 探 3 — 生 日 派 對
第 章
3-4 演奏音階──鍵盤鋼琴
85
3-1
3-2
3-3
3-4
彈奏「小星星」
3-4 小試身手
小貓咪想要用吉他彈奏世界名曲「小星星」給大家聽,請利用 S cratch 來協助 他吧!
1. 請 新建專案 撰寫程式。
2. 當小貓咪被滑鼠點擊時,會以吉他的聲音自動彈奏兒歌小星星。
3. 小星星的樂譜如下圖,樂譜中,「 」代表 1 拍,「 」代表 2 拍。
小星星
一 閃 一 閃 亮 晶 晶 滿 天 都 是 小 星 星
掛 在 天 上 放 光 明 好 像 許 多 小 眼 睛
一 閃 一 閃 亮 晶 晶 滿 天 都 是 小 星 星
第 3章 學習重點
3-1 程式語言簡介
1. 低階語言:可攜性差,無法在不同硬體設備的電腦間通用。
(1) 機器語言:最早的程式語言,由 0 與 1 組成,執行速度最快,但可讀性低、不易維護。
(2) 組合語言:以接近人類語言的簡短字串作為指令,但須先轉譯成機器語言才能執行,
執行速度比機器語言慢。
2. 高階語言:語法較接近人類的語言,程式可在不同的電腦系統上執行。
3. 視覺化程式設計工具,例如:Scratch、Blockly、App Inventor 等,可用來學習程式的 邏輯,作為未來進入文字式程式設計的基礎。
3-2 角色移動—上街買蛋糕 任務要求
1. 新建專案。
2. 媽媽必須從 A 點出發,沿著街道移動到 E 點(蛋糕店), 最後說:「我買到蛋糕了!」。
問題思考
Q 1.
本程式需要哪些角色、背景?該如何匯入Scratch 中?
Q 2. 這些角色該如何定位?
Q 3. 媽媽的任務為何?
解題分析
Q 1. (1) 刪除角色:點擊角色上的
(刪除)。(2) 匯入背景:舞臺背景區/ (上傳)。
(3) 匯入角色:角色區/ (上傳)。
Q 2.
角色定位: 動作類 的 。Q 3. (1) 媽媽移動:
① 動作類 的 + 控制類 的 。
② 也可改用 動作類 的 來呈現。
(2) 用對話框說話: 外觀類 的 。
程 式 設 計 初 探 3 — 生 日 派 對
第 章
3-4 演奏音階──鍵盤鋼琴
87
3-3 畫筆與造型—生日布置 任務要求
1. 新建專案。
2. 用 鉛筆 以一筆畫的方式,讓數字 呈現出動態書寫的 效果。
3. 寫完數字後, Happy Birthday 像煙火一樣綻放出美麗 的光芒,然後播放掌聲歡呼的音效。
問題思考
Q 1. 會使用到哪些素材?如何取得?
Q 2. 「 」是如何畫出來的?
Q 3. 煙火的動態呈現效果是如何產生的?
Q 4. 如何播放音效?
解題分析
Q 1. (1) 慶生會場:匯入背景圖。
(2) 鉛筆:從範例庫中選取角色。
(3) Happy Birthday:自行繪製。
Q 2.
畫出「 」:(1) 控制筆跡:
、
、 、
、
。 (2) 完成每一個小筆畫的基本方法:
Q 3.
煙火的動態呈現:(1) 煙火的動態效果是「多張圖片連 續播放」所產生的。
(2) 畫出多張煙火圖片的方式,具有 相同的模式。
(3) 切換造型。(如下圖)
Q 4. 播放掌聲歡呼音效:
(1) 為角色新增音效。
(2) 播放音效:
用 音效類 的 。
3-4 演奏音階—鋼琴鍵盤 任務要求
1. 使用檔案 3-4-1.sb3 。
2. 可以利用電腦鍵盤的 Q ~ P 鍵,分別彈奏出「4
4
(低音Fa)」~「6(中音 La)」的聲音。
3. 按下鍵盤時,畫面中對應的白鍵要有「先變小、
再復原」的視覺效果。
問題思考
Q 1.「鋼琴鍵盤」由哪些角色組成?
Q 2. 各角色分別有什麼任務?
解題分析
Q 1. 利用繪圖功能繪製白鍵與黑鍵。
Q 2. (1) 白鍵與白鍵間、黑鍵與黑鍵間,具有相似的造型、功能。
(2) 完成一個白鍵(或黑鍵)之後,再複製成多個並進行修改,可有效率完成程式。
(3) 利用電腦鍵盤觸發程式:
(4) 演奏音階:
(5) 改變尺寸:
程 式 設 計 初 探 3 — 生 日 派 對
第 章
3-4 演奏音階──鍵盤鋼琴
89
3-1
3-2
3-3
3-4
科技廣角
Scratch
結合軟、硬體的程式設計工具
科技發展日新月異,近年來「學習程式設計」已成為全球 熱門議題。美國前總統歐巴馬( Barack Obama,西元 1961 ~)
在任期內大力推動電腦科學教育,他強調:「電腦科學不再是選修科 目,而是基礎能力,就像讀、寫、算數一樣重要。」每個人都應該學習程 式設計,以培養邏輯思維與問題解決能力,為未來的數位化生活奠定基礎。
為了擺脫傳統程式語言學習不易、讓人望而生畏的困境,市面上出現多種「視 覺化程式設計工具」,讓我們可以依需求選擇、學習與利用。
拖拖拉拉,就能成為程式設計師
S cratch 是 美 國 麻 省 理 工 學 院
( MIT)「媒體實驗室終身幼兒園團 隊」所開發的程式設計工具,讓各種 年齡層的人都能輕鬆學習程式設計。
S cratch 不但能創作遊戲與故事,
還可以連結不同的感應器、輸出裝置,
對外在環境進行偵測並作出反應,實 現軟、硬體的互動控制,為程式設計 與實際應用創造無限的可能性。
跨向 程式世界 的橋梁
B lockly 是另一套由 G oogle 公司 所開發的視覺化程式設計工具,但不
同的是, B lockly 能將「積木程式」翻
譯 成 J ava S cript 、 P ython 、 XML 等 不 同的語言,可以作為學習文字式程式 的橋梁。
B lockly 的功能非常強大,諸如前
述的 A pp I nventor 、著名的玩遊戲學 程式網站 C ode . org 與 B lockly G ame , 都是利用 B lockly 設計而成的。
輕鬆開發手機 app 的利器
Blockly
連接文字式程式的橋梁
目 前 智 慧 型 手 機 主 要 有 A ndroid 、 i OS 兩 大 系 統, 而 A pp I nventor 則是 A ndroid 應 用 程 式 的 開 發 工
具,可以用來開發手機 app 與遊戲。
A pp I nventor 早 期 由 G oogle 公 司 設 計 與 開 發,現在則由美國麻省理工學院「行動學習中心」
負責維護及營運,強調就算不是專業的程式設計 師,也能享受開發手機 app 的樂趣與成就。
執行結果
轉換成 文字式程式語言
第3章 科技廣角