• 沒有找到結果。

程式應用專題

N/A
N/A
Protected

Academic year: 2022

Share "程式應用專題"

Copied!
32
0
0

加載中.... (立即查看全文)

全文

(1)

本章概念

程式應用專題

—幸運彩球

4

4-1 選號與開獎 P.68

重複執行程式,直到條件成立 判斷資料是否重複

4-2 彩球號碼 P.85

利用造型編號呈現彩球、

角色分身的使用時機與方法

66

p66-97_ch4.indd 66

p66-97_ch4.indd 66 2020/6/3 上午 11:35:312020/6/3 上午 11:35:31

(2)

  讓我們來小試身手,模仿樂透彩的玩法,自己設計一個「幸運彩 球」的遊戲,和家人、朋友同樂,一起來試試自己的運氣吧!

67

p66-97_ch4.indd 67

p66-97_ch4.indd 67 2020/6/3 上午 11:35:322020/6/3 上午 11:35:32

(3)

選號與開獎

4-1 4-1

我們要透過自製的幸運彩球遊戲,讓親 朋好友們都來試試手氣。本小節程式主要分 為「使用者選號」與「電腦開獎」兩部分。

請播放範例影片 選號與開獎.mp4,觀察 程式的執行情形,一起用 Scratch 來完成任務 吧!

【程式摘要】

1. 按下 選號鈕 :

(1) 利用提問讓玩家進行選號。

(2) 共要選出 4 個介於 1 ∼ 20 之間、不重複的數字。

2. 按下 開獎鈕 :

(1) 讓程式自動選出 4 個介於 1 ∼ 20 之間、不重複的開獎號碼。

(2) 判斷玩家中了幾個號碼。

搭配【逐步解析】說明

題目解析流程

任務說明

檔案

4-1

下載方式請見 P.3

中了2個號碼

結束 選號

開獎 開始

手動選出 4個號碼

隨機取出 4個號碼

確認號碼 不重複

確認號碼 不重複

說出 是否中獎

2

4 5

1

3

68

資訊科技篇

p66-97_ch4.indd 68

p66-97_ch4.indd 68 2020/6/3 上午 11:35:322020/6/3 上午 11:35:32

(4)

學習目標

1. 重複執行程式,直到條件成立。

2. 判斷資料是否重複。

在這一節中,我們將學習利用「重複結構」

中的 重複直到 來重複執行程式,並判斷資料是 否重複(表 1-4-1)。

1-4-1 首次使用的積木

積木類型 外觀 功能

變數類 偵測清單中是否包含特定資料。

控制類

條件式

程式區塊1 不斷的執行程式區塊立才會停止。 1,直到條件式成

運算類 從指定的範圍中,任意選取一個數字。

我們已學過 重複無限次 、 重複指定次數 ,而在某些情況下,我們不知道程式應該重複 幾次,但有明確的中止條件,就需要使用 重複直到 的結構。例如:登入帳號密碼時,如果 輸入錯誤就必須重新輸入,不確定會重複幾次,但必須執行到正確為止。

●功能說明

重複結構中的 重複直到 會不斷地執行程式區塊 1,直到條 件成立才停止。

●應用介紹

以 密 碼 123 為 例,

如果輸入錯誤,就必須重 新輸入,直到正確為止。

條件式 程式區塊1

重複直到

Scratch 積木 流程圖

輸入密碼

密碼=123

不成立 成立

程 式 應 用 專 題 4 — 幸 運 彩 球

4-1 4-2

4-1 選號與開獎

69

p66-97_ch4.indd 69

p66-97_ch4.indd 69 2020/6/3 上午 11:35:332020/6/3 上午 11:35:33

(5)

現在,請以 選號鈕 為角色撰寫程式:

1. 當角色被點擊時,請使用者輸入號碼。

2. 輸入的號碼必須介於 1 ∼ 20 之間:

(1) 符合:將號碼存入清單 自選號碼 中。

(2) 不符合:說出「號碼錯誤」。

3. 共要選出 4 個號碼。

狀況 1:輸入的號碼介於 1 ∼ 20 之間

請輸入1~20間的號碼

請使用者 輸入號碼

使用者輸入「9」 號碼「9」介於 1 ~ 20 之間,放入清單中。

請輸入1~20間的號碼

清單中未滿4 個號 碼,繼續選號。

狀況 2:輸入的號碼不在 1 ∼ 20 之間

請輸入1~20間的號碼 號碼錯誤 請輸入1~20間的號碼

請使用者 輸入號碼

清單中未滿4 個號 碼,繼續選號。

使用者輸入「29」 號碼「29」超出範圍,

不 存 入 清 單, 並 說 出

「號碼錯誤」。

選出4 個號碼存入清單中 使用檔案

4-1-1.sb3

逐步解析 1 1

請輸入1~20間的號碼

70

資訊科技篇

p66-97_ch4.indd 70

p66-97_ch4.indd 70 2020/6/3 上午 11:35:332020/6/3 上午 11:35:33

(6)

1

點擊角色 觸發程式

2

設定詢問 輸入號碼

3

對號碼進行 條件判斷

4

共要選出 4 個號碼

1

點擊角色 觸發程式

點擊角色開始執行程式:

2

設定詢問 輸入號碼

設定詢問:

利用 提問,並等待輸入號碼。

3

對號碼進行 條件判斷

(1) 條件判斷:

① 使用 進行條件判斷。

② 判斷「輸入的答案是否介於 1 ~ 20 之間」:

條件式的寫法有很多種,但要留意應使用「且」還是「或」,

以及執行的動作是放在「成立」還是「不成立」。

情況 條件式( 填寫 : 且 或 ) 若成立( 勾選 ) 若不成立( 勾選 )

a 答案≧1 答案≦20 儲存號碼 提示錯誤

儲存號碼 提示錯誤

b 答案>0 答案<21 儲存號碼 提示錯誤

儲存號碼 提示錯誤

c 答案<1 答案>20 儲存號碼 提示錯誤

儲存號碼 提示錯誤 (2) 若號碼不在 1 ~ 20 之間:說出「號碼錯誤」。

問題思考

想一想,如何判斷 已選出4 個號碼?

解題分析

程 式 應 用 專 題 4 — 幸 運 彩 球

4-1 4-2

4-1 選號與開獎

71

p66-97_ch4.indd 71

p66-97_ch4.indd 71 2020/6/3 上午 11:35:342020/6/3 上午 11:35:34

(7)

若使用下圖的程式,有時無法順利選出4 個號碼,為什麼?

手腦並用

*

(3) 若號碼在 1 ~ 20 之間:將答案儲存起來。

① 共要儲存 4 筆資料 → 建立清單來存放。

② 將答案存入清單中:

請將清單安排於舞臺左側,方便檢視清單內容。

4

共要選出 4 個號碼

不停重複執行程式,直到選出4 個號碼:

(1) 重複結構:

(2) 條件式:清單中有 4 筆資料。

72

資訊科技篇

p66-97_ch4.indd 72

p66-97_ch4.indd 72 2020/6/3 上午 11:35:342020/6/3 上午 11:35:34

(8)

【參考程式】

01 02 03 04 05 06

07

1

2

4

3

-- 初始設定

試試看,如果使用者輸入的號碼是介於 1 ~ 20 之間的小數,例如:3.14、5.5、9.8 等,會發 生什麼事呢?想一想,可以如何修正程式?

手腦並用

請輸入1~20間的號碼

程 式 應 用 專 題 4 — 幸 運 彩 球

4-1 4-2

4-1 選號與開獎

73

p66-97_ch4.indd 73

p66-97_ch4.indd 73 2020/6/3 上午 11:35:342020/6/3 上午 11:35:34

(9)

在【逐步解析 1】的選號程式中,玩家可能會選出重複的號碼,例如:9、

12、9、17。現在我們要修改程式,增加「所選的號碼不能和已選出的號碼重複」

這個條件:

1. 號碼不重複:存入清單中。

2. 號碼重複:說「號碼重複」,並重新選號。

狀況 1:號碼不重複

請輸入1~20間的號碼 請輸入1~20間的號碼

若清單中只有

「9」

使用者輸入「12」 號碼「12」未重複,放 入清單中;清單中未滿 4 個號碼,繼續選號。

狀況 2:號碼重複

請輸入1~20間的號碼 請輸入1~20間的號碼

若清單中有

「9、12」

使用者輸入「9」 號 碼「9」 重 複,

不存入清單,並說 出「號碼重複」。

清 單 中 未 滿4 個 號碼,繼續選號。

號碼重複

避免自選號碼重複

逐步解析 2 2

74

資訊科技篇

p66-97_ch4.indd 74

p66-97_ch4.indd 74 2020/6/3 上午 11:35:352020/6/3 上午 11:35:35

(10)

【參考程式】

*

代表本次新增或修改的程式)

01 02 03 04 05 06

*

07

*

08

09

判斷號碼 是否重複

判斷號碼 是否重複

判斷「新輸入的號碼是否重複」:

(1) 將「輸入的答案」和「清單中現存的項目」進行比對。

(2) 號碼重複:

(3) 號碼不重複:

問題思考

解題分析

程 式 應 用 專 題 4 — 幸 運 彩 球

4-1 4-2

4-1 選號與開獎

75

p66-97_ch4.indd 75

p66-97_ch4.indd 75 2020/6/3 上午 11:35:352020/6/3 上午 11:35:35

(11)

1

點擊角色 觸發程式

2

判斷是否 選號完畢

3

選出4 個 隨機號碼

4

每秒開出 一個號碼

本程式與【逐步解析 1】程式雷同,可以參考【逐步解析 1】的程式加以修改。

1

點擊角色 觸發程式

點擊角色開始執行程式:

2

判斷是否 選號完畢

條件判斷:

(1) 條件式: 自選號碼 未滿 4 個。

(2) 若未選完自選號碼:說「選號未完成」。

(3) 若已選完自選號碼:隨機選出開獎號碼。

問題思考

解題分析

在【逐步解析 2】中完成了選號程式,

現在到了開獎的時刻啦!請以 開獎鈕 為角 色撰寫程式:

1. 當 開獎鈕 被點擊時開始程式。

2. 如果玩家還沒選出 4 個自選號碼,說「選 號未完成」,並結束程式。

3. 若自選號碼已完成,程式隨機選出 4 個介 於 1 ∼ 20 之間的數字。

4. 為了增加開獎的樂趣,程式每秒開出一個號碼,讓號碼逐一出現。

隨機挑選開獎號碼

逐步解析 3 3

選號未完成

76

資訊科技篇

p66-97_ch4.indd 76

p66-97_ch4.indd 76 2020/6/3 上午 11:35:362020/6/3 上午 11:35:36

(12)

3

選出4 個 隨機號碼

(1) 隨機取出 1 ~ 20 之間的號碼:利用 運算類 的 隨機取數 。

(2) 儲存中獎號碼:

① 建立清單: 開獎號碼 。

請將清單安排於畫面右側,方便檢視清單內容。

② 將取出的數字存入清單中:

(3) 共需選出 4 個號碼:

4

每秒開出 一個號碼

開出一個號碼之後,等待1 秒鐘。

【參考程式】

01 02 03 04

05 06 07

3 2

4 1

-- 初始設定

程 式 應 用 專 題 4 — 幸 運 彩 球

4-1 4-2

4-1 選號與開獎

77

p66-97_ch4.indd 77

p66-97_ch4.indd 77 2020/6/3 上午 11:35:362020/6/3 上午 11:35:36

(13)

1

暫存 隨機取數

2

存入不重 複的號碼

想一想,為什麼要暫存隨機取數?

問題思考

接續【逐步解析 3】,現在我們要增加 條件「隨機開出的號碼不能重複,才可以存 入清單 開獎號碼 中」。

避免開獎號碼重複

逐步解析 4 4

在【逐步解析 3】中,雖然開出的號碼都介於 1 ~ 20 之間,但可能會開出重複的數字,

例如:5、7、7、11。為了避免號碼重複,我們使用與【逐步解析 2】一樣的判斷方法撰寫 程式,如下圖第06、07 行。程式執行後,還是可能會有重複的號碼被存入清單 開獎號碼 中,

想一想,為什麼呢?

手腦並用

01 02 03 04

05

*

06

*

07 08

78

資訊科技篇

p66-97_ch4.indd 78

p66-97_ch4.indd 78 2020/6/3 上午 11:35:372020/6/3 上午 11:35:37

(14)

1

暫存 隨機取數

(1) 概念說明:

問題 在手腦並用中,第一次隨機取數(06 行)的號碼,與第二次(07 行)

的取號可能不同。

方法 可利用變數暫存資料,確保存入的資料與判斷的資料一致。

(2) 程式說明:設定變數 。

2

存入不重 複的號碼

判斷新取出的號碼是否重複:

(1) 選擇結構:

(2) 條件式:① 判斷號碼重複:

② 判斷號碼不重複:增加邏輯運算積木

(3) 若號碼不重複:將隨機取出的號碼存入清單 開獎號碼 中。

解題分析

只有號碼不重複時才執行「存入清單」

的指令,因此使用單向選擇結構。

【參考程式】

*

代表本次新增或修改的程式)

01 02

*

03 04 05

06

*

07

*

08

*

09 10

1

1

2

程 式 應 用 專 題 4 — 幸 運 彩 球

4-1 4-2

4-1 選號與開獎

79

p66-97_ch4.indd 79

p66-97_ch4.indd 79 2020/6/3 上午 11:35:372020/6/3 上午 11:35:37

(15)

1

判斷是否 對中號碼

2

說出 對獎結果

1

判斷是否 對中號碼

每次隨機取出開獎號碼後,判斷「自選號碼」是否中獎。

2

說出 對獎結果

(1) 統計對中幾個號碼:

① 設定變數 中獎次數 ,用來統計對中的次數。

② 每對中一個號碼,變數的值就「+1」。

(2) 若對中的次數為 0,說「下次再加油!」。

(3) 若有對中號碼,說「中了 個號碼」。

問題思考

解題分析

接續【逐步解析 4】的程式,選出開獎 號碼之後,要說出對獎的結果:

1. 統計對獎結果,說「中了 個號碼」。

2. 若完全沒中,則說「下次再加油!」。

統計對獎結果

逐步解析 5 5

中了1 個號碼

80

資訊科技篇

p66-97_ch4.indd 80

p66-97_ch4.indd 80 2020/6/3 上午 11:35:372020/6/3 上午 11:35:37

(16)

【參考程式】

*

代表本次新增或修改的程式)

01 02 03

*

04 05 06

07 08 09 10

*

11

*

12

13

*

14

*

15

*

16

2 1

程 式 應 用 專 題 4 — 幸 運 彩 球

4-1 4-2

4-1 選號與開獎

81

p66-97_ch4.indd 81

p66-97_ch4.indd 81 2020/6/3 上午 11:35:372020/6/3 上午 11:35:37

(17)

延伸學習 程式通則化

●問題

在不同的情境下,要選的 號碼範圍與數量可能不同,例 如大樂透是在1 ~ 49 號中選 出6 個 號 碼, 而 今 彩 539 則 是在1 ~ 39 號中選出 5 個號 碼。此時若需要更改範圍,就 必須逐行檢查程式、一筆一筆 地更正。

●解決方案

我們可以利用函式將程式通則化,日後要更改選號數或範圍時,只要修改函式的參數即可。

01 02 03 04 05 06

07 08

09

1

4 2 3

5

※ 定義函式

01

02 -- 參數 4、1、20,

依序代表選號數、

最小值、最大值。

※ 呼叫函式

01 02 03 04 05 06

07 08

09

04 行程式中,詢問的內容也 包含選號範圍,因此改用字串 組合的方式,修改詢問內容,

以符合選號範圍。

82

資訊科技篇

p66-97_ch4.indd 82

p66-97_ch4.indd 82 2020/6/3 上午 11:35:382020/6/3 上午 11:35:38

(18)

●設定方法

參數可以將數字或文字從主程式傳遞到函式中,在自定函式時,可依需求增減所需的參數:

點擊 添加輸入方塊數字或文字 。

修改參數名稱。

重複步驟

,直到新增完畢。

點擊 確定 。

2

1

4

也可在函式中「添加說明文字」,作為呼叫函式時的輔助說明。

開獎的程式目前固定開出 4 個介於 1 ~ 20 之間的號碼,試試看,將開獎的程式也設 定為函式,方便日後進行修改。

手腦並用

程 式 應 用 專 題 4 — 幸 運 彩 球

4-1 4-2

4-1 選號與開獎

83

p66-97_ch4.indd 83

p66-97_ch4.indd 83 2020/6/3 上午 11:35:382020/6/3 上午 11:35:38

(19)

4-1 小試身手 

  為了公平起見,老師上課時常會 以抽籤的方式,請同學回答問題或是 進行分組。現在,讓我們試著協助老 師,完成一個抽籤程式吧!

   請 以 檔 案 4-1 小試身手. sb 3 來撰 寫程式。

在角色 老師 的身上,已含有建立 學生名單的程式,你也可以自己改 成班上同學的名單。

1. 建立 抽 1 人 、 抽 2 人 、 抽 3 人 及 抽 n 4 個按鈕,其中 抽 n 人 可以讓使用 者自行輸入人數。

2. 依指定的人數,抽出不重複的姓名並存入清單中,每抽出一個人,老師說出「幸運 兒:    」。

3. 按下 抽 n 人 後:

(1) 請使用者輸入要抽取的人數。

(2) 如果要抽出的人數大於學生名單的長度,代表學生人數不足無法抽籤,說出「人 數不足」。

檔案 4-1 小試身手 下載方式請見 P.3

抽抽樂

84

資訊科技篇

p66-97_ch4.indd 84

p66-97_ch4.indd 84 2020/6/3 上午 11:35:392020/6/3 上午 11:35:39

(20)

4-2 彩球號碼

4-2

在 4-1 節中,我們利用清單來儲存 號碼,完成了選號與開獎程式。本節中,

我們要利用彩球來表現選號的結果,讓 程式的呈現更加生動有趣。

請播放範例影片 彩球號碼.mp4 , 觀察程式的執行情形,一起用 Scratch 來完成任務吧!

【程式摘要】

1. 利用角色 自選球 呈現開獎過程。

2. 隨著選號的過程,逐一顯示選出的自選球。

搭配【逐步解析】說明

題目解析流程

任務說明

結束 自選球

開始

建立分身 呈現數字 輸入

自選號碼

1 2

檔案

4-2

下載方式請見 P.3

中了2個號碼

程 式 應 用 專 題 4 — 幸 運 彩 球

4-1 4-2

4-2 彩球號碼

85

p66-97_ch4.indd 85

p66-97_ch4.indd 85 2020/6/3 上午 11:35:392020/6/3 上午 11:35:39

(21)

學習目標

1. 利用造型編號呈現彩球。

2. 角色分身的使用時機與方法。

在這一節中,我們將學習利用「切換造型」的 方式來顯示選號的號碼;再進一步利用「角色分身」

的功能,以彩球呈現選號的號碼(表 1-4-2)。

1-4-2 首次使用的積木

積木類型 外觀 功能

控制類

建立分身後,開始執行下方的指令積木。

建立角色的分身。

刪除角色的分身。

在 正 式 修 改 程 式 前, 我 們 先 以 檔 案 4-2-1.sb3 來試試看,如何讓彩球隨著選號 而呈現出編號。

在角色 彩球 中含有 21 種造型,分別 標示「數字 1 ∼ 20」及「?」。請撰寫程式:

1. 當 彩球 被點擊時,請使用者輸入 1 ∼ 20 間的號碼。

2. 使用者輸入號碼後, 彩球 呈現出該號碼。

造型

名稱 1 2 3 19 20 21

造型

外觀

「?」為彩球的初始造型。

利用彩球造型呈現號碼 使用檔案

4-2-1.sb3

逐步解析 1 1

請輸入1∼20間的號碼

86

資訊科技篇

p66-97_ch4.indd 86

p66-97_ch4.indd 86 2020/6/3 上午 11:35:402020/6/3 上午 11:35:40

(22)

1

被點擊時請使 用者輸入號碼

2

依據號碼 顯示造型

1

被點擊時 請使用者 輸入號碼

(1) 點擊角色開始執行程式:

(2) 請使用者輸入號碼:

2

依據號碼 顯示造型

(1) 要呈現的號碼:來自 (2) 選擇呈現的造型:

由於本程式中,角色的造型編號和呈現的彩球號碼是對應的,所以可以直接 利用號碼來切換造型。

問題思考

解題分析

【參考程式】

01 02

03

2

1

本程式利用輸入的答案來切換造型,若資料存在清 單中,也可以利用讀取清單的方法來切換造型。

以彩球呈現清單中的第一個數字為例:

程 式 應 用 專 題 4 — 幸 運 彩 球

4-1 4-2

4-2 彩球號碼

87

p66-97_ch4.indd 87

p66-97_ch4.indd 87 2020/6/3 上午 11:35:402020/6/3 上午 11:35:40

(23)

有些電玩遊戲中會重複出現許多相同的角色,像是「打 磚塊遊戲」中有許多磚塊,而「飛機射擊遊戲」中有可以連 續發射的子彈。

以打磚塊遊戲為例,每一個磚塊的程式都相同,但排放 的位置不同。雖然我們可以先撰寫好一個磚塊的程式,再複 製產生其他磚塊,但每一個磚塊都要逐一修改定位,將是一 件非常麻煩和耗時的工作。

在 Scratch 中,我們可以利用「分身」的功能來複製出 其他分身。分身會繼承原角色的所有程式、屬性,而且角色 與分身是各自獨立的,彼此的任何改變不會互相影響。例如 打磚塊遊戲中,我們利用一個磚塊產生許多磚塊的分身,當 其中一個分身被球擊中而消失(隱藏),不影響原角色或其 他分身的顯示狀態。

●分身程式積木的使用

在Scratch 的 控制類 積木中,有三個角色分身程式積木:

1. :可以建立自己的分身,也可以建立其他角色的 分身(如右圖)。

若在 小貓咪 的程式中建立 蘋果 的分身,此時 小貓咪 的程式無 法控制 蘋果 分身的行為,只能在 蘋果 角色的程式裡控制及刪除。

2. :撰寫在角色中,當分身產生之後,分身會執行下面的程式。

3. :可以將畫面上的分身刪除,而原角色不受影響。

角色分身

88

資訊科技篇

p66-97_ch4.indd 88

p66-97_ch4.indd 88 2020/6/3 上午 11:35:412020/6/3 上午 11:35:41

(24)

●應用範例

以檔案 飛貓子彈. sb3 為例,點擊 綠旗 開始執行程式 後, 貓咪 會隨著滑鼠游標移動;當我們點擊滑鼠(相當於 點 擊 貓咪 ) 就 可 以 發 射 子彈 , 連 續 點 擊 可 連 續 發 射,

子彈 會不斷向右移動,在碰到舞臺邊緣時才消失。其程式 說明如下:

貓咪

01 02

在 貓咪 的角色中,建立 子彈 的分身 01

02 03

利用滑鼠游標操控 貓咪 移動

子彈

01 02

把 子彈 的本尊隱藏起來

01 02 03 04 05

06

控制 子彈 的分身

子彈 的分身要從 貓咪 的位置發射

子彈 不停向右移動

-- 碰到邊緣後,刪除這個 子彈 的分身,其他分身不受影響

程 式 應 用 專 題 4 — 幸 運 彩 球

4-1 4-2

4-2 彩球號碼

89

p66-97_ch4.indd 89

p66-97_ch4.indd 89 2020/6/3 上午 11:35:422020/6/3 上午 11:35:42

(25)

1

設定彩球 初始狀態

2

產生分身

1

設定彩球 初始狀態

(1) 回復初始狀態的時機:

① 程式開始時、選號開始時: 、

② 角色 選號鈕 被點擊時:

→ 選號鈕 要發出通知:

(2) 自選球 的初始狀態:

① 定位到正確的位置。

② 隱藏。

③ 刪除已經建立的分身。

2

產生分身

(1) 產生分身的時機:

① 自選號碼正確且不重複,放入清單時。

→程式要寫在 選號鈕 身上。

② 方法:

問題思考

解題分析

現在,我們要接續 4-1 節【逐步解析 2】

的 程 式, 修 改 角 色 自選球 與 選號鈕 的 程 式,當使用者選號時,逐一利用「分身」的 功能,讓彩球出現在畫面上:

1. 點擊 綠旗 開始程式,或點擊 選號鈕 時,

清除畫面上的彩球。

2. 自選號碼存入清單的同時, 自選球 的分身出現於畫面上「自選號碼區」。

(每選一個號碼,就出現一個彩球)

利用彩球分身呈現自選號碼

逐步解析 2 2

想一想, 自選球 要怎麼知 道 選號鈕 被點擊了?

90

資訊科技篇

p66-97_ch4.indd 90

p66-97_ch4.indd 90 2020/6/3 上午 11:35:422020/6/3 上午 11:35:42

(26)

(2) 自選球 的分身產生時:

① 定位到正確位置。

a. 起始坐標:(-120, 145)

b. 隨著開出的號碼個數調整位置,每顆彩球相距 50 點。

50點

50點 50點 50點

(-70, 145)

彩球1

(-20, 145)

彩球2

(30, 145)

彩球3

(80, 145)

彩球4

(-120, 145)

隱藏的本尊

c. 分身排列位置計算:

-120+(50×第幾個彩球) 想一想,還有什麼算法?

② 呈現正確的號碼。

③ 狀態由隱藏變為顯示。

想一想,如何知道現在是

「第幾個彩球」?

【參考程式】

*

代表本次新增或修改的程式)

選號鈕

01 02 03 04 05 06

07 08

09

*

10

2

*

01

*

02

1

程 式 應 用 專 題 4 — 幸 運 彩 球

4-1 4-2

4-2 彩球號碼

91

p66-97_ch4.indd 91

p66-97_ch4.indd 91 2020/6/3 上午 11:35:422020/6/3 上午 11:35:42

(27)

自選球

*

01

*

02

*

03

*

04

1 1

*

01

*

02

*

03

*

04

*

01

*

02

*

03

*

04

2

1. 開獎球 的程式邏輯與 自選球 大致相同,請自行完成 開獎球 的程式。

2. 在確認 自選球 、 開獎球 的呈現均正確後,可將清單 自選號碼 、 開獎號碼 設為隱藏,

讓遊戲畫面更加清爽!

手腦並用

中了2個號碼

92

資訊科技篇

p66-97_ch4.indd 92

p66-97_ch4.indd 92 2020/6/3 上午 11:35:432020/6/3 上午 11:35:43

(28)

檔案 4-2 小試身手 下載方式請見 P.3

  本節中,我們學會了如何根據清單的 資料來決定角色的造型,現在,我們就要 利用這個技巧來製作另一個經典遊戲─

幸運拉霸。

  請以 4-2小試身手. sb 3 撰寫程式,讓 大家一起來碰碰運氣。

1. 程式中已設定 5 個必要角色: 水果 1 ∼ 3 、 S tart 鈕 、 字幕 。 2. 按下 S tart 鈕 後, 水果 1 ∼ 3 開始變換造型。

3. 水果共有 5 種造型,變換一段時間後,會隨機停在某個造型。

4. 字幕 :

(1) 開獎過程中,顯示「努力開獎中∼」。

(2) 若出現 3 個相同的水果,顯示「恭喜中獎!」。

(2) 若未中獎,則顯示「下次再加油」。

4-2 幸運拉霸

小試身手  程 式 應 用 專 題 4 — 幸 運 彩 球

4-1 4-2

4-2 彩球號碼

93

p66-97_ch4.indd 93

p66-97_ch4.indd 93 2020/6/3 上午 11:35:432020/6/3 上午 11:35:43

(29)

4章 學習重點

4-1 選號與開獎 任務要求

1. 使用檔案 4-1-1.sb3 撰寫程式。

2. 按下 選號鈕 後,玩家要在 1 ~ 20 號中,選出 4 個不重複的號碼。

(1) 若超出範圍,說「號碼錯誤」,並繼續選號。

(2) 若號碼重複,說「號碼重複」,並繼續選號。

3. 按下 開獎鈕 後,程式會在 1 ~ 20 號中,隨機取 出4 個不重複的開獎號碼,並判斷玩家是否中獎。

問題思考

Q 1. 如何判斷使用者輸入的號碼「在範圍內且不重複」?

Q 2. 如何儲存合格的號碼?

Q 3. 如何重複執行程式,直到選完所有號碼?

Q 4. 如何隨機取出不重複的開獎號碼?

Q 5. 如何判斷玩家是否中獎?

解題分析

Q 1. (1) 要判斷「是否在範圍內」與「是否重複」,會使用到兩個「選擇結構」。

(2) 條件判斷:

① 號碼不在 1 ~ 20 的範圍內,表示號碼錯誤,需重選。

② 號碼與清單中的重複,需重選。

Q 2. (1) 要儲存多個號碼,因類型相同,可儲存在 1 個清單中。

(2) 將資料存入清單:

Q 3. 重複執行直到條件成立:

中了2個號碼

94

資訊科技篇

p66-97_ch4.indd 94

p66-97_ch4.indd 94 2020/6/3 上午 11:35:442020/6/3 上午 11:35:44

(30)

Q 4. 取出開獎號碼:

(1) 隨機取號: 運算類 的 (2) 設定取號範圍:1 ~ 20 (3) 設定變數暫存取號:

Q 5. 判斷是否中獎:

4-2 彩球號碼 任務要求

1. 接續 4-1 節程式。

2. 利用角色 自選球 建立分身:

隨著選號的過程,逐一顯示該號碼的彩球。

問題思考

Q 1. 如何建立角色分身?

Q 2. 如何定位分身的坐標?

Q 3. 如何讓彩球依號碼呈現不同的數字?

解題分析

Q 1. 建立分身:

(1) 建立時機:使用者輸入的號碼存入清單 自選號碼 時。

(2) 建立方法:

Q 2. 定位分身的坐標:

(1) 定位方法:

(2) 隨著選出的號碼個數調整位置,每顆彩球相距50 點。

50點

50點 50點 50點

(-70, 145)

彩球1

(-20, 145)

彩球2

(30, 145)

彩球3

(80, 145)

彩球4

(-120, 145)

隱藏的本尊

(3) 分身排列位置計算:-120 +(50× 第幾個彩球)

Q 3. 依號碼呈現數字:

彩球的造型編號與數字對應,可利用 來呈現。

中了2個號碼

程 式 應 用 專 題 4 — 幸 運 彩 球

第4章 程式應用專題──幸運彩球

95

p66-97_ch4.indd 95

p66-97_ch4.indd 95 2020/6/3 上午 11:35:442020/6/3 上午 11:35:44

(31)

科技廣角

電子試算表始祖

VisiCalc

世界上第一個試算表軟體「 V isi C alc 」誕生於 西元 1979 年,由丹.布瑞克林(D an B ricklin 西 元 1951 年 ∼) 與 包 伯. 法 蘭 克 斯 頓(B ob F rankston ,西元 1949 年∼)共同開發。

丹.布瑞克林在就讀哈佛商學院時,每週 都必須進行商業案例分析,過程中有大量的資 料要整理成表格,並依公式逐一計算。如果 當中有一個數據錯了,就必須擦掉好幾個相 關的欄位,再全部重新計算。

丹.布瑞克林在一次次的修改過程中 開始構思,如果可以利用電腦自動處理表 格中的計算,就能節省大量的時間。於是 邀請程式設計師好友包伯.法蘭克斯頓 共同開發出 V isi C alc 這個可以模擬表格 計算的試算表軟體。

在本章中,我們利用清單(陣列)來儲存號碼,並 進行資料的比對,而我們平常進行資料處理使用的「試 算表」,也是以陣列的方式呈現。 S cratch 的清單只有

「序號」這一個索引值,是一維陣列;試算表有「欄」、

「列」兩個索引值,屬於二維陣列。

VisiCalc

試算表的誕生

VisiCalc 試 算 表 畫 面。VisiCalc 為

「看得見(visible)的計算(calculate)」

之意。

在電子試算表出現之前,

必須仰賴紙筆計算。

丹.布瑞克林。

96

資訊科技篇

p66-97_ch4.indd 96

p66-97_ch4.indd 96 2020/6/3 上午 11:35:452020/6/3 上午 11:35:45

(32)

這樣的設備,就連操作上也較為困難,一般民眾根 本沒有機會使用。

V isi C alc 則是在「蘋果電腦 A pple II」上發行,

是個人電腦上的第一個試算表軟體,簡便的操作 方式讓一般人也能順利操作,有許多使用者為了 V isi C alc 而購買 A pple II,直接帶動蘋果電腦的 購買風潮,因此有了「殺手級應用」的稱號。

VisiCalc

蘋果電腦Apple II。

殺手級應用指的是「利用創新與科技帶動社會迅速改變的革命性服務」,

這 樣 的 服 務 通 常 能 創 造 龐 大 的 市 場 利 益。 西 元 2012 年,美國知名科技雜 誌《 eWeek》曾評選電腦軟體領域的殺手級應用,入選的除了本文提到的 VisiCalc,還有我們常用的文書處理軟體 Microsoft Word、電腦輔助設計軟體 AutoCAD、音樂軟體 iTunes、網路瀏覽器 Internet Explorer 等。

殺手級應用( killer application)

AutoCAD 擺脫紙筆繪製的設計流程,改 變了機械、建築、工業設計、室內設計等行 業的作業方式。

iTunes 改變違法下載音樂的亂象,建立合 法付費的線上數位音樂經營模式,也改變了唱 片市場的生態。

第4章 科技廣角

97

p66-97_ch4.indd 97

p66-97_ch4.indd 97 2020/6/3 上午 11:35:472020/6/3 上午 11:35:47

參考文獻

相關文件

 MATLAB 程式使用 pass-by-value 的方 式,進行程式與函式間的溝通聯絡,當 程式呼叫函式時, MATLAB

1.大白兔 2.小貓咪 3.蝸牛

 for…迴圈自初值開始判斷 <條件判斷> 是否為 true,若為 true 則執行 for 迴圈內的敘述,並依 <增量值>,每次增 加 (或減少) 指定的增量值,直至 <條件判斷>

[r]

 可利用 HTML 控制項 中的 Table 控制項進 行排版動作.  (最好將 Table

[r]

Excel VBA 乃是以 Visual Basic 程式語言為基礎,提供在 Excel 環境中進 行應用程式開發的能力。在 Excel 環境中「Visual Basic 編輯器」提供了一個

如圖 4-22 IBM Via Voice 語音辨識軟體與 Visual Basic 機器人程式只是一個互 助的關係,Visual Basic 無法控制 Via Voice,Via Voice