Issuu on Google+


本文中の製品名は、一般に各社の登録商標、商標、 または商品名です

c 2008 Etext Laboratory Japan Limited


i

本書 本

、 「

言語

解説

言語 優

Smalltalk, Lisp, Logo 設計 特徴

、IT

本質

、初心者 言語

。教育用

分 学

当初

特徴

設計

教育用言

50 年以上 歴史 持

、2000 年

、現在主流

筑波大学

指向

久野靖教授

筆者

基礎

。 特徴

手早

実行

。 、1 行

本書

、Activity 5

使

、1 行

作成可能 制御」

入力 試

動作 確認

通信」 「

宝物拾

、 (

5 種類

)」「 解説

。 特徴

」「音楽演奏」「

。興味

作品

、必要

参照

• Part I「

使

• Part II「絵 描

• Part III「

付録

、 「絵 」

• Part V「 動 解説

• 付録 A「授業 • 付録 B「

応用

転送

、小学校

。 作品

演奏

大学

授業例

制御 。必要

通信

掲載

、複数

一覧

利用」

音楽 」

命令

最初

通信

、言語

。必

• Part IV「音楽 演奏 • Part VI「

、共通

参照

紹介 書

。 基本的

解説

文法

、多

• 付録 C「

言語 共通

使

• 付録 E「

基礎知識」 付録 D「標準 標準

解説

命令一覧」

。 使

命令

。授業等

連絡

解説

。 詳

Web

情報

、Web

: http://dolittle.eplang.jp

• 筆者(兼宗) 連絡先: kanemune@acm.org

筆者


ii 本書

作成

、多

共著者

筑波大学

録 B「

久野靖先生

書 設計時

大学

方々

竹内郁雄先生

付録 C「

、静岡大学 鎌田敏之先生

、東京農工大学

西

江見圭司研究室

御手洗理英先生、東京

(中村州男

、東京農工大学

協力

。言語

、高橋修司

井戸坂幸男

足利裕人先生、神奈川県立松陽高校 小原格先生、長野高専

正田良先生、金城学院大学

西田知博先生、静岡大学

堀内泰輔先

長谷川元洋先生、

宮崎佳典先生、京都

、村上智史

大学

。 多言語機能

Yoo SeungWook 先生

担当

佐藤和浩先生、松阪市立飯南中学校

野部緑先生、東京都立町田高校

、改良

韓国語 先生

山澤昭彦氏

協力

間辺広樹先生、国士舘大学

中野由章先生、大阪学院大学

協力

井上修次氏、高麗大学

谷浩史先生、鳥取県立鳥取工業高校

先生、大阪府立桃谷高校

方々

執筆

。音楽機能 研究所

並木美太郎先生

生、神奈川障害者職業能力開発校 院大学

基礎知識」

紅林秀治先生、

、千葉市立千城台東小学校

先生、静岡大学附属島田中学校

千里金蘭大学

、本書

福井眞吾氏、明海大学

協力

酒徳峰章氏、

授業実践 保福

一貫

飛行机

言語

中谷多哉子先生、NEC

制御機能

検討

設計当初

助言

青木浩幸氏、愛知教育大学 己丈夫先生、

、筑波大学

協力

)、長野大学

、高麗大学 李元揆研究室 和田勉先生、一橋大学

(Yeum YongCheul

長慎也先生

方々

協力

。 教育利用

情報教育全般

、情報処理学会

教育研究会(CE

研) 、情報処理学会情報処理教育委員会/初等中等教育委員会(SIGPS) 、教育 研究会) 、 卵RUN

、旧 NIFTY-SERVE FCAI

、「

使

TEX

研究所 励

組版

示唆

、三重大学 、出版

多大

活動

)、一橋大学情報教育研究

(dolittle-edu) 」

方々

原久太郎氏

示唆

教育研究

情報教育

Tim Bell 博士 本

情報学会関西支部若手研究者

(岡田俊一先生

会、Constructionism(旧 EuroLogo) 、ISSEP、 学

研究会(旧教育

・情報教育研究会(PUKAI) 、教育

原著者

。 奥村晴彦先生

全面的

尽力

協力

。高麗大学

。 李元揆先生

、多

。 、多

仲間、友人、家族

感謝

2008 年 8 月 兼宗 進


iii

本書

執筆時

、次

環境

動作

確認

JRE(Java Runtime Environment) 動 環境

Java

実行

可能

動作

以外

• OS:Windows(XP、Vista)、Mac OS X(10.4、10.5) • Java:1.4、1.5、1.6 、Web

版 動

2 種類 方法 実行 版

2 種類

。 版

方法 、

特徴

特徴

、理解

使用

版 (Java 付

○不要 保存

/音楽 通信 制御

○可能 ○可能

×不可

○可能

○可能

×不可

○可能

30MB。 2MB。

。一方、

器制御機能(Part VI)」 版 通信、 。

必要 対応

必要

制限 、「

、作成

音楽

機能 必要

制限

、Java 付

使 場合

便

通信機能(Part V)」

、 制御

、手軽

、 保存

保存

&

△可能

80MB 空 必要 5MB 空 必要

保存可能

、 場合

△必要(※1) △必要(※2) ○可能

&

(Java

○可能

(※2) Java

△不可(※3) ○可能

(※1) Java 付

。試

。表 1

配布

機能

必要

。 表1

(※3)

完全 、

外部機

使

。 保存

Java


iv

版 版

Web

表示

Internet Explorer、Safari、Firefox、Opera 、

(http://dolittle.

Web

eplang.jp)

Web

、 「オンライン版」 。

、右

画面

表示

。 画面 切

上部

画面下

、 「実行」 「編集」

編集画面

「実行!」

実行

、実行画面

実行

入力

押 結果

表示

保存 版

保存

終了

、作成

、忘

注意

/貼 付 )

。続

、Windows

画面

場合

範囲

選択

領域

操作 次回

、手軽 実行

、Ctrl-A*1

。残 )

必要

全体 選択 、 、手軽

Ctrl-V

&

A

押 移動

作成中

。Ctrl-C, Ctrl-V

改良

&

Ctrl

保存

上 上

*1

Web

Macintosh

切 (

範囲 選択

作成中

&

必要

方法

行 場合

&

&

Ctrl-C

電源

、 方法

同様。Macintosh

他 貼

場合

Ctrl

使

使


v

版 Windows

手順

(http://dolittle.eplang.jp)

最新

Windows 版(Java 付

Java

展開 種

使

。zip

展開

• 作成

「C:¥Program Files」

Macintosh

公開

起動

(dolittle.bat)

起動

手順

(http://dolittle.eplang.jp)

、開 ン」

最新

Macintosh 版

。 「アプリケーショ

dolittle.jar

Dock

登録

起動

実行 画面

表示

、次

可能性

表示

可能性

、URL(http://dolittle.eplang.jp) 入力 正

。 版

表示

版 可能性

Web

画面

。Sun

版」 開

画面 、使

(http://www.java.com/ja/)

Java 、最新

Java


vi

目次 使

Part I

1

Activity 1

2

1.1

1.2

名前

1.3

命令

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 付

2

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3

1.4

命令

実行

(1)

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4

1.5

命令

実行

(2)

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4

1.6

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5

1.7

命令

定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8

Part II 絵 描 Activity 2

9

10

2.1

図形

生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

2.2

図形

複製 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11

2.3

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12

Activity 3 3.1

作成

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

14

動作

定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

14

3.2 3.3

13

操作

3.4 3.5

3.6

図形

3.7

図形

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

図形

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

15 16

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

複数

Part III 宝物拾

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17

動 終了

4.4

Activity 5

16 17

4.2 4.3

15

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Activity 4 4.1

13

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

19

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

19

21 22


vii 5.1

作成

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 操作

5.2

前進

5.3 5.4

宝物

画面

5.5

宝物

1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

22

2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

23

3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

23

4) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

23

22

Activity 6

25

6.1

作成

6.2

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

25

1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

25

2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

26

6.3

6.4

6.5

勝敗

判定

3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

26

4) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

27

Activity 7

29

7.1

作成

7.2

主役

7.3

7.4

7.5

7.6

衝突

7.7

終了判定(

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 作

1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

29

2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

30

3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

31

発射 作

移動(

4) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

31

5) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

32

6) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

32

定義(

Part IV 音楽 演奏

35

演奏

36

8.1

演奏 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

36

8.2

記述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

36

Activity 8

音楽

29

8.3

楽器

指定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

37

8.4

音楽

構造

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

38

合奏 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

39

8.5 8.6

楽器

8.7

楽譜

8.8 Activity 9 9.1

演奏

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

40

入力 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

40

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

43

音楽

44

自動作曲 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

44

琉球音階

9.2

音階

自動作曲 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

45

9.3

利用

自動作曲 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

46

9.4

自動作曲

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

通信

Part V Activity 10 10.1 10.2

IP

通信

46

49 50

起動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

50

確認 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

50


viii 接続 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10.3

51

10.4

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

51

10.5

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

51

Activity 11

52

11.1

送信

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

52

11.2

受信

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

52

11.3

発言

名前

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

53

11.4

受信

自動化(1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

54

11.5

受信

自動化(2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

54

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

55

11.6 Activity 12

音楽

交換

56

12.1

音楽

演奏

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

56

12.2

音楽

送信

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

56

12.3

音楽

受信

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

56

12.4

). . . . . . . . . . . . . . . . . . . . . . . . . .

58

交換( 作

Activity 13 13.1

1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

13.2

13.3

定義

13.4

通信

13.5

通信

準備

動 判定

60

2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

61

3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

61

4) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

61

勝敗

13.6

60

( (

62 63

7) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

65

13.7

実行

Part VI

67

教材

68

Activity 14

使用

14.1

5) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 接続

14.2 14.3

確認 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

68

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

69

操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

70

通信

68

14.4 14.5

68

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

対話的

Activity 15

71

記述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

71

15.2

実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

71

15.3

性質 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

72

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

73

15.1

15.4

Activity 16

返 迷路

16.1

想定

16.2

移動距離

抜 迷路

74 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

74

74

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .


ix 16.3

入力

検出 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

75

16.4

定義命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

77

Activity 17 17.1

想定

17.2

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

78

拡張 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

78

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

79

17.3 17.4

78

命令

定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

79

化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

80

17.5

Part VII 付録 付録 A

81

授業

利用

82

A.1

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

82

A.2

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

83

A.3

制御 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

84

付録 B

85

B.1 作

B.2 付録 C

言語

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

85

方 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

85

基礎知識

C.1

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

88

、変数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

89

C.2

88

C.3

送信 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

90

C.4

中置記法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

91

C.5

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

92

C.6

制御構造 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

93

C.7

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

96

C.8

配列

複数

利用

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

99

親子関係 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

C.9 C.10

変数

束縛 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

C.11

字句

約束 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

付録 D

標準

107

D.1

数値

D.2

文字列

D.3

真偽値 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

D.4

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

D.5

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

D.6

図形

D.7

GUI 部品 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

D.8 D.9

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 保存

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114


x 付録 E

E.1

命令一覧 基本

115

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

E.2

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

E.3

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 関係

E.4 E.5

GUI

索引

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 一覧 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

E.6 E.7

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126

音楽

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 145


Part I

使


2

Activity 1

作 行!」

実行

。 押

編集画面

実行

入力

、「実

1.1 、最初

何種類

動作

使 標準 動

命令

。文

命令

形 用意

扱 、歩

軌跡

姿

、画面上

。 、

最後

名前 「。」

タートル!作る。

実行

、画面 複製

表示

形 呼

生成

例 新

役割

用意

画面上 親

。 。

表示

重要

、生成 。

「タートル」 生成

「作る」


名前

1.2

名前

1.2

指定

、生成 示

名前

命令 名前

命令

。先

、画面

名前 = オブジェクト。

、=

左辺

名前

、右辺

指定

カメ太=タートル!作る。

、先

実行 見

画面

表示

「カメ太」

。 名前

名前

変数

。名前

日本語文字 。 注意

使

英字

、仮名

、空白 記号

必要

数字

使

文字

名前

漢字

使

命令

1.3 、 送

指定

命令

実行

右側

命令

。命令 、

カメ太!100 歩く。

、 「カメ太」 対 命令

「100  歩く」

。「100」

命令

命令

間 空白

理解

命令

命令 送 送

区切

必要

一部 。

、後

。表 1.1 呼 章

表 1.1 命令

種類

。命令 方法

「歩く」

、 。

種類 命令 付録 E 命令

理解

。自分

命令

。 命令(一部)

用途

使用例

太=

! 作

前進

太! 100  歩

右回

太! 90  右回

左回

太! 90  左回

追加

3


4 Activity 1

1.4 命令 順 実行 上

実行

1行

、上 、1 行書

(1) 。

実行

、複数 。実際

。画面

命令

表示

実行

。 。

カメ太=タートル!作る。

1 行追加

実行

。画面

カメ太=タートル!作る。 カメ太!100 歩く。

1 行追加

実行

カメ太=タートル!作る。 カメ太!100 歩く。 カメ太!90 左回り。

1 行追加

実行

カメ太=タートル!作る。 カメ太!100 歩く。 カメ太!90 左回り。 カメ太!100 歩く。

1.5 命令 順 実行

(2)

命令 実行

、結果

返 。

カメ太=タートル!作る。

、 「タートル!作る」 返 文

「カメ太」

、新

、返

結果

結果、新

、生成

命令 実行

生成

名前

画面

数式

名前

計算

表示

場合

活用

。 一方、

動 多

命令

、元

カメ太!100 歩く 90 右回り。

命令 送 続

、実行

命令 送

太! 100  歩く」

続 、命令 。

実行

複数

命令

結果

、 「90  右回り」 、 「カメ 送


1.6 繰 返 、 タートル!作る 100 歩く。

、 「タートル!作る」 。

、新

「100  歩く」

100 歩歩

、1 行 行数

1 命令

無駄

書 多

。内容

。全体

2行

カメ太=タートル!作る。 カメ太!100 歩く。 カメ太!90 左回り。 カメ太!100 歩く。 カメ太!90 左回り。 カメ太!100 歩く。 カメ太!90 左回り。 カメ太!100 歩く。 カメ太!90 左回り。

、横

、分

カメ太=タートル!作る。 カメ太!100 歩く 90 左回り 100 歩く 90 左回り 100 歩く 90  左回り 100 歩く 90 左回り。

、動作

動作

1行

実行

、大量

命令

カメ太=タートル!作る。 カメ太!100 歩く 90 左回り。 カメ太!100 歩く 90 左回り。 カメ太!100 歩く 90 左回り。 カメ太!100 歩く 90 左回り。

1.6 繰 返 命令 疲

高速

飽 使

実行

処理

。先

何度

、同

記述

何度

。 、

一部

「「...」」

「カメ太!100 歩く 90 左回り」

。 。最後

、末尾 「。」

中 省略

複数 。

返 返

5


6 Activity 1 対

自分自身

回数 繰 返 字

何度

実行

「「...」! 3 回 繰り返す。」

数字以外

文字

無視

、繰

記述

、「3 回」 使

実現

「3」

。一定 。

、数

意味

カメ太=タートル!作る。 「カメ太!100 歩く 90 左回り」!4 繰り返す。

、繰 返

使

、四角 描

。 返

使

処理

4行

何度

1行

、繰

簡潔

結果

記述 太

、同 、最後

可能

実行

実行

、三角形

、次

200 歩歩 。

カメ太=タートル!作る。 「カメ太!100 歩く 120 左回り」!3回 繰り返す 200 歩く。

1.7 命令 定義 、最初 、

正方形

90 度左 回 動作

追加

4 回繰 返

「歩く」 、 「右回り」

命令(

命令 使

使

正方形 描

「100 歩歩 」 分

、慣

カメ太=タートル!作る。 「カメ太!100 歩く 90 左回り」!4 繰り返す。

「正方形」 新

命令 命令 追加

理解

*1 。次

定義

。定義

命令

定義

、追加 、

命令

同様

、普通

命令 「「...」」 囲 正方形

名前

使

命令

定義

カメ太=タートル!作る。 カメ太:正方形=「 「カメ太!100 歩く 90 左回り」!4 繰り返す」。 カメ太!正方形。

命令

、正方形 「 短

3 回描 正方形

*1

何度

。命令 定義 描

付録 C

使

説明 参照。

。次 使 一目瞭然

見 、


1.7 命令 定義 7 カメ太=タートル!作る。 カメ太:正方形=「 「カメ太!100 歩く 90 左回り」!4 繰り返す」。 カメ太!正方形。 カメ太!120 左回り。 カメ太!正方形。 カメ太!120 左回り。 カメ太!正方形。

追加

命令

、 「100 歩く」 同

受 取 間

記述

。複数

、変数

先頭 受

取 受

空白 区切 取

、1 辺

「|...|」 長

記号

。次 正方形

。 カメ太=タートル!作る。 カメ太:正方形=「|x|「カメ太!(x)歩く 90 左回り」!4 繰り返す」 。 カメ太!100 正方形。 カメ太!120 左回り。 カメ太!150 正方形。 カメ太!120 左回り。 カメ太!200 正方形。


実行時

。文法的 正 直

文法

、文法

。実行

、実行

表示

前 位置

名前

。 発生

、 「作る」 前 「!」 書 忘 検出

け」

表示 確認

場合

、表示

表示

、編集画面

位置

[行:列]

学 、命令

、編集画面

命令

、実行時 「歩け」

場合

、正 実行時 「歩

場合

「。」 入 忘

命令

発生

。 最

理解

上部

表示

空白

間違

。次 例 、 「カメ太」 作

場所

カメ太! 100  歩く。

カメ太=タートル 作る。

文法

必要 命令

命令名

表示 探

箇所

命令

次 例

名 行

命令

、実行中 、

解釈 原因

解釈

「命令

。実行時

部分

」「

実行中

場合

。次 例

間違

、 「歩く」

命令

理解

カメ太=タートル!作る。

、文末

カメ太! 100  歩け。

。次 例 、命令

前 空白 入 忘

、 「100 歩く」

部分

。 カメ太! 100 歩く。

、色

同様 指定

場合

、図形

場合

、 次 例 、1 行目 末尾 「。」 書 忘 。 「。」

場合

、 表示

矛盾 。

場所

、次

、必

複数 。次

場所 必要

画面

表示

名前

参照 名前

複数

カメ太=タートル!作る カメ太! 100  歩く。

」 (付録 B)

「 参照

表示

「塗る」

発生 複数

名前

「。」 注意

場合

発見

括弧

言語


Part II


10

Activity 2

Activity 1 形 描

命令 定義 操作

方法

、画面 図形 描 、描

Activity

、図

図形

2.1 図形 生成 移動

状態

一部

カメ太=タートル!作る。 「カメ太!100 歩く 90 左回り」!4 繰り返す。

図形

命令 作

使

。自分

、 描

動 次

、描

、新

図形

活用

図形

、 「四角」

名前

カメ太=タートル!作る。 「カメ太!100 歩く 90 左回り」!4 繰り返す。 四角=カメ太!図形を作る。

「図形を作る」 作

。次

(100,100)) 変数

指定

図形

移動

括弧(. . . ) 囲

。色

記述

図形

後、位置 画面上

特定

2.3 節 説明

座標

。数式

カメ太=タートル!作る。 「カメ太!100 歩く 90 左回り」!4 繰り返す。 四角=カメ太!(青)図形を作る。 四角!100 100 位置。

画面上

x 軸、上

y軸 伸

図形

位置

xy 座標 指定 。数学

、図形

座標

同様

図形

画像 中心 、Activity 3 座標 表 2.1

図形

命令

画面

中央

、右

。 座標

y軸 。

x軸

GUI 部品 左上 (0,0)

。 一部

。原点


2.2 図形 複製 11 表 2.1

図形

命令(一部)

命令

用途

使用例

右回

四角! 30  右回り。

左回

四角! 30  左回り。

移動

移動

位置

特定

四角! 100   0  移動する。

位置

四角! 100   100  位置。

複製

四角 2 =四角!作る。

四角!(青)塗る。

2.2 図形 複製 複製 同

使

複製

る」

命令

。通常

、新 、画面上

「カメ太=タートル!作

作 太

複製

複製

使

、 「カメ太!作る」

。 カメ太=タートル!作る。 カメ吉=カメ太!作る。

画面 元 、見 、 吉

表示 同

複製

片方

100 歩動

、複製 位置

。次

、新

カメ太=タートル!作る。 カメ吉=カメ太!作る 100 歩く。

図形

同様

複製

。次

。自分

好 、三角形

複製

、複製 横

画面

カメ太=タートル!作る。 三角=「カメ太!100 歩く 120 左回り」!3 繰り返す 図形を作る。 三角!作る 100 0 移動する。


12 Activity 2 描

2.3 色 図形 塗

。基本的 色

緑、青、紫、水色、黄色、白) 次

、8 色(黒、赤、

用意

、三角形 図形

「緑」 塗

カメ太=タートル!作る。 「カメ太!100 歩く 120 右回り」!3 繰り返す。 三角=カメ太!(緑)図形を作る。

用意 暗

使

。暗

。次

状態

。必要

、 「暗くする」 「濃い緑」 作 、色 塗

カメ太=タートル!���る。 「カメ太!100 歩く 120 右回り」!3 繰り返す。 濃い緑=緑!暗くする。 三角=カメ太!(濃い緑)図形を作る。

。次

使 、 「緑」 「黄色」 混

、「光」

「きみどり」

色 作

*1 。

カメ太=タートル!作る。 「カメ太!100 歩く 120 右回り」!3 繰り返す。 きみどり=光!(緑) (黄色)混ぜる。 三角=カメ太!(きみどり)図形を作る。

黄色

、次

、同

2 回以上加

きみどり=光!(緑)(黄色)(黄色)混ぜる。

、3 個以上

きみどり=光!(緑)(黄色)(青)混ぜる。

特殊 色 作 色 暗

場合 、 「赤」 、 「緑」 、 「青」 三原色 数値 指定 作

状態、255

。色 明

0∼255 状態

表現

。0

*2 。

カメ太=タートル!作る。 「カメ太!100 歩く 120 右回り」!3 繰り返す。 茶色=色!166 42 42 作る。 三角=カメ太!(茶色)図形を作る。

*1

*2

色 光 混 合 、明 白 加法混色 。絵具 混 合 黒 近付 。 。詳 付録 E 参照。 強 16 進数 指定 。詳 付録 E 参照。

近付 混

。 合

混 合 減法混色


13

Activity 3

作 、

Activity

動 使

。 画面

、描 、

Activity

図形 学

3.1 作成 次

製作例

。画面

押 操作。

図形

• 図形 描画。

、次 例

「線あり」、 「線なし」

• 描

表示

操作

、左側 行

、 「あるく」、 「もどる」、 「左回転」、 「右回転」、

用意

「図形を作る」

用意

、 「星」、 「四角」、 「三角」、「六角」

。 用意

• 色。

例 自体

、基本的

8 色 用意

色 、少

。 。

文字


14 Activity 3

生成

3.2 今

実行

、描

途中

、一瞬

結果

状態

実行

、 高速

表示

。 画面

GUI 部品( 使

画面 置

便利

制御

対話的 使

部品)

、 方法

表示

使

同様

、画面

文字

、作

生成 与

、「カメ太」

。次

、「前進ボタン」

画面

カメ太=タートル!作る。 前進ボタン=ボタン!"前進" 作る。

実行

、無事 。

画面

表示

、押

、押

動作

起 指示

3.3 動作 定義 動作 押 「動作」 前進

動作

定義

名前 定義

。実行

命令(

。次 、

定義

、「前進ボタン」 押

100 歩

カメ太=タートル!作る。 前進ボタン=ボタン!"前進" 作る。 前進ボタン:動作=「カメ太!100 歩く」。

以上

基本的

使

。表 3.1

命令

一部

。 表 3.1 命令

用途

移動

移動

位置

特定

使用例 前進ボタン! 100   0  移動する。

位置 大

大 文字色

文字

命令(一部)

前進ボタン! 100   100  位置。

指定 指定 指定

前進ボタン! 150   100  大きさ。 前進ボタン!(緑)塗る。 前進ボタン!(青)文字色。


3.4

操作

3.4 、

「カメ太」

。 作

。 「あるく」

太 人

。最初

名前

。次

後退

。先頭

前進

、主役

、画面

左上

2

。「もどる」

。「//」

最後

解釈

// タートルオブジェクトを操作する。 カメ太=タートル!作る。 歩くボタン=ボタン!"あるく" 作る -380 230 位置。 歩くボタン:動作=「カメ太!20 歩く」。 戻るボタン=ボタン!"もどる" 作る -230 230 位置。 戻るボタン:動作=「カメ太!20 戻る」。

続 太

、 左

回転

回転

。 「右回転」

。「左回転」 、

押 右

回転

左回転ボタン=ボタン!"左回転" 作る -380 185 位置(水)塗る。 左回転ボタン:動作=「カメ太!30 左回り」。 右回転ボタン=ボタン!"右回転" 作る -230 185 位置(水)塗る。 右回転ボタン:動作=「カメ太!30 右回り」。

「線あり」 し」

押 押

指定

。「線な

線ありボタン=ボタン!"線あり" 作る -380 140 位置。 線ありボタン:動作=「カメ太!ペンあり」 。 線なしボタン=ボタン!"線なし" 作る -230 140 位置。 線なしボタン:動作=「カメ太!ペンなし」。

3.5 描 続

を作る」

図形 描

太 。作

名前 付

図形

図形

図形 前 「

付録 D

参照

、 「:直前の図形」 :」

「:」 付

、 。詳

。「図形 、色 、

// 描いた線を図形オブジェクトにする 図形ボタン=ボタン!"図形を作る" 作る 300 45 大きさ -380 95  位置(黄)塗る。 図形ボタン:動作=「:直前の図形=カメ太!図形を作る」。

操作

15


16 Activity 3

3.6 図形 描 続

、図形

。「星」

太 星 描 、図形 「六角」

用意

、三角形、四角形、六角形 図形 作

、 「:直前の図形」 入

。同様 、 「四角」 、 「三角」 、 作

図形

、他

// 図形を描き図形オブジェクトにする 星ボタン=ボタン!"星" 作る -380 50 位置(水)塗る。 星ボタン:動作=「:直前の図形=「カメ太!100 歩く 144 右回り」!5 繰り返す 図形を作る」。 四角ボタン=ボタン!"四角" 作る -230 50 位置(水)塗る。 四角ボタン:動作=「:直前の図形=「カメ太!100 歩く 90 左回り」!4 繰り返す 図形を作る」。 三角ボタン=ボタン!"三角" 作る -380 5 位置(水)塗る。 三角ボタン:動作=「:直前の図形=「カメ太!100 歩く 120 左回り」!3 繰り返す 図形を作る」。 六角ボタン=ボタン!"六角" 作る -230 5 位置(水)塗る。 六角ボタン:動作=「:直前の図形=「カメ太!100 歩く 60 左回り」!6 繰り返す 図形を作る」。

3.7 図形 色 塗 、図形 色 塗

白、緑、赤、黒、水色」 。

色 色

色 押

押 。

塗 前

作 。

2列 並

、 「直前の図形」 、直前

。線 「図形を作る」

「青、黄色、紫、

8 色分 作 、4 個

描 図形

図形 、 必要

// 図形オブジェクトに色を塗る 青ボタン=ボタン!作る -380 -40 位置 75 45 大きさ(青)塗る。 青ボタン:動作=「:直前の図形!(青)塗る」。 黄ボタン=ボタン!作る -305 -40 位置 75 45 大きさ(黄)塗る。 黄ボタン:動作=「:直前の図形!(黄)塗る」。 紫ボタン=ボタン!作る -230 -40 位置 75 45 大きさ(紫)塗る。 紫ボタン:動作=「:直前の図形!(紫)塗る」。 白ボタン=ボタン!作る -155 -40 位置 75 45 大きさ(白)塗る。 白ボタン:動作=「:直前の図形!(白)塗る」。 緑ボタン=ボタン!作る -380 -85 位置 75 45 大きさ(緑)塗る。 緑ボタン:動作=「:直前の図形!(緑)塗る」。 赤ボタン=ボタン!作る -305 -85 位置 75 45 大きさ(赤)塗る。 赤ボタン:動作=「:直前の図形!(赤)塗る」。 黒ボタン=ボタン!作る -230 -85 位置 75 45 大きさ(黒)塗る。 黒ボタン:動作=「:直前の図形!(黒)塗る」。 水ボタン=ボタン!作る -155 -85 位置 75 45 大きさ(水)塗る。 水ボタン:動作=「:直前の図形!(水)塗る」。


17

Activity 4

4.1 今

動作 繰 返 実行 繰

使

返 返

、一瞬 動作

得意

一部

実行

、画面

。Activity 1

複数回実行

。次

。繰

、10 回繰

10 回繰 返

結果

表示

カメ太=タートル!作る。 「カメ太!20 歩く」!10 繰り返す。

Activity 3 学 、繰

使 。次

、特定

、画面

実行

動作

手動

何度

実行

カメ太=タートル!作る。 前進ボタン=ボタン!"前進" 作る。 前進ボタン:動作=「カメ太!20 歩く」。

4.2 使 画面

表示

一定

渡 間隔

名前

実行

。 命令

実行 前進

作 。

実行

カメ太=タートル!作る。 時計=タイマー!作る。 時計!「カメ太!20 歩く」実行。

作成

。 、時計

内容

繰 、他

使

次 太

、一定間隔

1行 書

可能

カメ太=タートル!作る。 タイマー!作る「カメ太!20 歩く」実行。

、実行 、


18 Activity 4 、繰

、「時計」

間隔 回数

名前

指定 間隔

。次 回数

*1 。

指定

カメ太=タートル!作る。 時計=タイマー!作る。 時計!1秒 間隔 5回 回数。 時計!「カメ太!20 歩く」実行。

実際 回数

、 指定

生成

同時 間隔

カメ太=タートル!作る。 時計=タイマー!作る 1秒 間隔 5回 回数。 時計!「カメ太!20 歩く」実行。

回数

時間

指定

。次

5 秒間 実行 行 。実行

回数

、1 秒間隔

「5 秒間÷ 1 秒= 5 回」

カメ太=タートル!作る。 時計=タイマー!作る 1秒 間隔 5秒 時間。 時計!「カメ太!20 歩く」実行。

カメ太=タートル!作る。 時計=タイマー!作る 0.1秒 間隔 36秒 時間。 時計!「カメ太!1 歩く 1 右回り」実行。

、図形

回転

カメ太=タートル!作る。 四角=「カメ太!30 歩く 90 左回り」!4 繰り返す(赤)図形を作る。 時計=タイマー!作る。 時計!「四角!30 右回り 2 2 移動する」実行。

表 4.1

命令

一部

表 4.1

*1

命令

用途

間隔

実行間隔

指定

回数

実行回数

指定

時間

実行時間

指定

命令(一部) 使用例

実行

実行

終了

。単位

。単位

時計! 0.5  間隔。 時計! 10  回数。 時計! 5  時間。 時計!「カメ太! 10  歩く」実行。

標準 0.1 秒間隔 、100 回 繰 返 、実行 要 時間 10 秒間 。 中 間隔 回数 明示的 指定

時計!待つ。

。「0.1 秒× 100 回= 10 秒」 値 将来変更 可能性 望 。


4.3 複数

4.3 複数

中 複数

、複数

文 書

、複数

動作

、 「カメ太」 「カメ吉」 中

同時

実行

同時

、実行

。次

2

カメ太=タートル!作る。 カメ吉=タートル!作る。 時計=タイマー!作る 0.1秒 間隔 36秒 時間。 時計!「カメ太!1 歩く 1 右回り。カメ吉!1 歩く 1 左回り」実行。

同様

、違

種類

同時

、 時

可能

太)

。次

図形

(四角)

カメ太=タートル!作る。 四角=「カメ太!30 歩く 90 左回り」!4 繰り返す(赤)図形を作る。 時計=タイマー!作る 0.1秒 間隔 36秒 時間。 時計!「カメ太!1 歩く 1 右回り。四角!1 左回り」実行。

終了

4.4

通常、 待

実行

1行

動作

時間動作

並行

実行

。 、「

。次 次

、他

、 終了

終了

回転

、結果

実行

回転

同時

複数

表示

、前進

。 待

得点

数分間」

動作

中 呼

実行 進

仕組

、他 通常「数秒間

終了

実行

、直前 行 実行

。 処理

実行

。一方、

並行 長

前 歩

カメ太=タートル!作る。 時計=タイマー!作る。 時計!「カメ太!10 右回り」実行。 カメ太!100 歩く。

実行中

命令待

停止 期 呼

、他 実行

終了

実行

実行

次 行

実行

、 回転

実行 歩

終了 正

待 動作

次 。

19


20 Activity 4 カメ太=タートル!作る。 時計=タイマー!作る。 時計!「カメ太!10 右回り」実行。 時計!待つ。 カメ太!100 歩く。


Part III


22

Activity 5

宝物拾 、

Activity

移動

対話的 繰 返 実行

使

、簡単

操作

、 、

Activity 作

5.1 作成 作成 拾

宝物拾 集

姿 並

表示

自動的

、実行

画面

左右 変

操作

5.2

。 「左」

。「右」

RIGHT

指定

*1

付録 E

。 効率

後 押

場 表

名前 、

操作 、

参照。

1)

操作

「カメ太」

、表示

指定

表示

作成時

位置

2個 前進

、画面

2

2 拾

30 度回転

、上

乱数

*1 )

、宝物

画面

画面

操作

動作

太 右

。次 場

30 度回転

左 。

文字列( 。 左右

LEFT、 矢印


前進

5.3

// タートルを操作する(ステップ1) カメ太=タートル!作る。 左ボタン=ボタン!"左" "LEFT" 作る。 左ボタン:動作=「カメ太!30 左回り」。 右ボタン=ボタン!"右" "RIGHT" 作る。 右ボタン:動作=「カメ太!30 右回り」。

前進

5.3 次

前進

2)

。次

。繰 返 間隔 、標準

、 「時計」

10 歩

0.1 秒

前進

名前

動作

200 回繰 返

、20 秒間動作

(0.1 秒× 200 回) 。

// タートルを前進させる(ステップ2) 時計=タイマー!作る 200 回数。 時計!「カメ太!10 歩く」実行。

5.4 宝物 画面 置 ( 次

姿

、 、画面 姿

形式

画面

変身

、特

必要

位置

、縦

位置

600

乱数

1∼300

JPEG, GIF, PNG

画像

、乱数

指定

−149∼150 乱数

生成

数式

。横 高 、

300

−299∼300

位置

範囲

、括弧(. . . ) 囲

幅 600

300

150 記述

1∼ 利用

// 宝物を画面に置く(ステップ3) 宝=タートル!作る "tonbo.gif" 変身する ペンなし。 宝!(乱数(600)-300)(乱数(300)-150)位置。 宝!作る(乱数(600)-300)(乱数(300)-150)位置。 宝!作る(乱数(600)-300)(乱数(300)-150)位置。

5.5 宝物 拾 ( 前

、 通

*2

使

*2 。

範囲

可能

名前

。姿

指定

用意

。乱数

操作

変更

画像

画面

3)

太 。

版 、 可能

4) 重 、

画像 。

衝突

太 、

、独自

画像

2) 23


24 Activity 5 宝物拾 姿

拾 定義

、衝突

表現 相手

。次 消

、 命令

衝突

// 宝物を拾う(ステップ4) カメ太:衝突=「|相手| 相手!消える」。

最後

1

4

全体

// タートルを操作する(ステップ1) カメ太=タートル!作る。 左ボタン=ボタン!"左" "LEFT" 作る。 左ボタン:動作=「カメ太!30 左回り」。 右ボタン=ボタン!"右" "RIGHT" 作る。 右ボタン:動作=「カメ太!30 右回り」。

// タートルを前進させる(ステップ2) 時計=タイマー!作る 200 回数。 時計!「カメ太!10 歩く」実行。 // 宝���を画面に置く(ステップ3) 宝=タートル!作る "tonbo.gif" 変身する ペンなし。 宝!(乱数(600)-300)(乱数(300)-150)位置。 宝!作る(乱数(600)-300)(乱数(300)-150)位置。 宝!作る(乱数(600)-300)(乱数(300)-150)位置。 // 宝物を拾う(ステップ4) カメ太:衝突=「|相手| 相手!消える」。

掲載


25

Activity 6

Activity

打 返

6.1 作成 画面

四角

長方形

操作

左側

2個

上下

制限時間

間、

、 跳

。大

。 。一回 。

登場

。左

2 人

。上下 長方形

長方形

存在

、 打 壁

。小

上下

画面

長方形

。 知

1)

登場 、5 個

6.2 壁 作 ( 最初

役割

返 、

。 、5 個

次 、線 形 壁

20

、 「壁」 作

長方形 線

名前 。

作成

描 図形

。 長方形

。続

簡単 。続 上

、 向

字 後、左


26 Activity 6 、座標 、終了

指定

図形

方眼紙

便利

画面

、位置

場合

確認

// 壁を作る(ステップ1) カメ太=タートル! 作る。 カメ太!(緑)線の色 20 線の太さ。 カメ太!500 歩く 90 右回り 420 歩く 90 右回り 500 歩く。 壁=カメ太!図形を作る -200 200 位置。 カメ太!90 右回り。 左壁=カメ太!(黄)線の色 440 歩く 図形を作る -210 -230 位置。 パドル=カメ太!(青)線の色 120 歩く 図形を作る -190 -210 位置。

6.3 画面

表示 、画面

左側

表示

2 DOWN

上下

。次

「下ボタン」

名前

。今回

指定

「上ボタン」

移動

50

2)

上下

2 個目

、上下 矢印

UP

操作

// パドルを動かす(ステップ2) 上ボタン=ボタン! "上" "UP" 作る -380 50 位置。 下ボタン=ボタン! "下" "DOWN" 作る -380 0 位置。 上ボタン:動作=「パドル! 0 50 移動する」。 下ボタン:動作=「パドル! 0 -50 移動する」。

6.4 「カメ太」

、壁

。次

実行

初期位置 。横

位置(x 座標)

使

衝突

生成

実行 動

−149

役割 線

向 位置

1

200

、 。

150

引 動

始 、縦

、跳

位置(y 座 初期角度

動作

、自然 角度

、 「カメ太! 20 歩く」

。実行 回

移動

衝突 向

最後

太 、少

壁 、

「乱数(200)」

標) 「乱数(300)- 150」

描 、最初

、乱数

45 度 固定

3)

。 。

0.1 秒間隔 囲

設定

空間

60 秒間繰 返 跳


勝敗

6.5 // ボールを動かす(ステップ3) カメ太! ペンなし。 カメ太!(乱数(200))(乱数(300)-150)位置。 カメ太!45 向き。 カメ太:衝突=タートル:跳ね返る。 時計=タイマー! 作る 60秒 時間「カメ太!20 歩く」実行。

勝敗

6.5

判定

、 負

) 左壁

次 入

1回

衝突

衝突

実行 「時計!待つ」

、「ゲームクリア」

場合 、無事 ア」

表示

60 秒間経 。値

、赤

代入

中断 待

。初期値

代入 、前

。 「:」

判定

。値

終了

偽(

変数 導

使

「いいえ」 扱

、 終了

、 「ゲームクリア」

、「ゲームクリア」 。

真偽値 左壁

衝突 動

変数 、

左壁

、 勝

、勝敗 判定

「はい」

4)

打 返

時間内

真(

、青 字 「ゲームクリ )

場合

「ゲームオーバー」

、左壁

衝突

表示

中 。

// ゲームの勝敗を判定する(ステップ4) ゲームクリア=はい。 左壁:衝突=「:ゲームクリア=いいえ。時計! 中断」。 時計! 待つ。 「ゲームクリア==はい」! なら「   ラベル! "ゲームクリア! "作る (青)文字色。 」そうでなければ「   ラベル! "ゲームオーバー! "作る (赤)文字色。 」実行。

以上

完成

「ゲームオーバー!」 表示 、 「ゲームクリア!」

。実行 。時間内

表示

、左壁

衝突 打 返

判定

4) 27


28 Activity 6 最後

1

4

全体

掲載

// 壁を作る(ステップ1) カメ太=タートル! 作る。 カメ太!(緑)線の色 20 線の太さ。 カメ太!500 歩く 90 右回り 420 歩く 90 右回り 500 歩く。 壁=カメ太!図形を作る -200 200 位置。 カメ太!90 右回り。 左壁=カメ太!(黄)線の色 440 歩く 図形を作る -210 -230 位置。 パドル=カメ太!(青)線の色 120 歩く 図形を作る -190 -210 位置。

// パドルを動かす(ステップ2) 上ボタン=ボタン! "上" "UP" 作る -380 50 位置。 下ボタン=ボタン! "下" "DOWN" 作る -380 0 位置。 上ボタン:動作=「パドル! 0 50 移動する」。 下ボタン:動作=「パドル! 0 -50 移動する」。 // ボールを動かす(ステップ3) カメ太! ペンなし。 カメ太!(乱数(200))(乱数(300)-150)位置。 カメ太!45 向き。 カメ太:衝突=タートル:跳ね返る。 時計=タイマー! 作る 60秒 時間「カメ太!20 歩く」実行。

// ゲームの勝敗を判定する(ステップ4) ゲームクリア=はい。 左壁:衝突=「:ゲームクリア=いいえ。時計! 中断」。 時計! 待つ。 「ゲームクリア==はい」! なら「   ラベル! "ゲームクリア! "作る (青)文字色。 」そうでなければ「   ラベル! "ゲームオーバー! "作る (赤)文字色。 」実行。

今後 打

、難易度

改良 回数

、実行時間、 。

、得点

表示

速 、 。


29

Activity 7

応用

発展

理解

、 比

Activity

難易度 理解

。解説

1

動作 確認

6

。順 入力

。全体

6

節 見

7.1 作成 画面 敵

下部

主役

。主役

発射

、画面下

得点欄

制限時間内

得点 敵

加算

、主役 「カメ太」 、上 左右

操作

。画面

攻撃 行

上部

。敵

命中

破壊

7.2 主役 作 ( 最初

左右

1) 画面 降

。 敵 攻撃 。

、画面 、

太 作 、


30 Activity 7 次

、「カメ太」

「90 左回り」

上向

名前

、「ペンなし」

生成

150 位置」 画面 下 中央付近 置 名前

太 位置

x 方向

20

「LEFT」、 「RIGHT」 「→」 )

設定

。続

−20

定義

、「左」

後、「0

「右」

後、押 設定

操作

左右

矢印

(「←」、

。 実行

、画面

左右

表示

// 主役と左右の動き(ステップ1) カメ太=タートル!作る 90 左回り ペンなし 0 -150 位置。 左=ボタン!"左" "LEFT" 作る -200 -180 位置。 左:動作=「カメ太!-20 0 移動する」。 右=ボタン!"右" "RIGHT" 作る 50 -180 位置。 右:動作=「カメ太!20 0 移動する」。

7.3 弾 発射 弾

発射

メ太」

2)

、 位置

、「カメ太」

必要

分身

。弾 、敵

、弾

、自分

る」

複製

間 置

、50 歩前進

、先

「カメ太」 変身前

衝突

姿

半径

名前 「カメ太」 「作

理由 互

矢印

50 歩前進

、 「発射」 後、押

実行

上向

、最初

後、 「"rocket.gif" 変身する」

「発射」

前進 。続

作 、左右

。 。次

定義 、

20 歩

実行間隔 標準(0.1 秒間隔)

前進

、 「カメ太」 「発射」 作

、「カ

「UP」、

「↑」 、後

定義

操作

「衝突」 定義 事故

20 程度

姿

、 。

、50 歩離

衝突

発生

。 太 与 、

「発射」

実行 簡潔

。 記述

後、続 使

// 発射ボタン(ステップ2) カメ太:発射=「タイマー!作る「自分!20 歩く」実行」。 発射=ボタン!"発射" "UP" 作る -50 -180 位置 100 45 大きさ。 発射:動作=「カメ太!作る 55 歩く "rocket.gif" 変身する 発射」。


7.4 敵

7.4 敵 画面

上部

、敵

配置

。敵

、敵 残

3)

、最初

、 「敵」 する」

「敵たち」

格納

画面

4行

。続

配置 簡潔

配置、配列 、次

格納 、2 行

。続

、 「"ayumiAka.gif" 変身 線

4行

配列「敵たち」

次 行 、 (−300, 200) 位置 移動

後、配列「敵たち」

配列

後、 「ペンなし」

「90 右回り」 下 向

画面

名前 作

変身

後、

。後

、敵 配列 管理

名前

最後

横一列 並

数 管理

、敵

「作る」

格納

、 「敵」

1行

記述

記述

複製 複製

分 。

// 1行で書いた例 敵たち!(敵!作る -200 200 位置)書く。

// 2行で書いた例 敵2=敵!作る -200 200 位置。 敵たち!(敵2)書く。

// 敵たちの生成(ステップ3) 敵たち=配列!作る。 敵=タートル!作る "ayumiAka.gif" 変身する ペンなし 90 右回り。 敵たち!(敵!-300 200 位置)書く。 敵たち!(敵!作る -200 200 位置)書く。 敵たち!(敵!作る -100 200 位置)書く。 敵たち!(敵!作る 0 200 位置)書く。 敵たち!(敵!作る 100 200 位置)書く。

7.5 敵 敵

、1 列

移動( 横

4) 、少

、先

、最初

1 秒 設定

。続

右 向

「時計」

3行

1 実行 最後

3行

各 次

実行」 、 実行

、2 行 実行

記述

、画面

移動 名前

作 使

「実行」

、実行間隔

敵 移動 送

逐次実行

簡潔 書

1 行 記述

。「時計」 、「

実現

実行

。 配列内

分 。

「右移動」

、全体 括弧( 「...」 ) 囲 必要

3) 31


32 Activity 7 // 1行で書いた例 時計!6 回数「敵たち!「|敵|敵!30 0 移動する」それぞれ実行」実行。 // 2行で書いた例 右移動=「敵たち!「|敵|敵!30 0 移動する」それぞれ実行」。 時計!6 回数(右移動)実行。

// 敵たちの移動(ステップ4) 時計=タイマー!作る 1秒 間隔 。 時計!6 回数「敵たち!「|敵|敵!30 0 移動する」それぞれ実行」実行。 時計!1 回数「敵たち!「|敵|敵!0 -30 移動する」それぞれ実行」実行。 時計!6 回数「敵たち!「|敵|敵!-30 0 移動する」それぞれ実行」実行。

7.6 衝突 定義( 弾

、敵

5) 弾

配列「敵たち」

。敵

削除

、最初 「カメ太」 「衝突」 定義

場合

自分

。実際

メ太」 定義

、何

衝突

、 「カメ太」 複製

、敵

実行

、「カ

自動的 定

3行

、配列「敵たち」 。敵

自分

削除

場合

、自分

衝突

、配列「敵たち」

// 衝突定義(ステップ5) カメ太:衝突=「自分!消える」 。 敵:衝突=「自分!消える。敵たち!(自分)消す」。

7.7 終了判定(

6) 、最後

条件

、時間内

判定 消

判定

。 次

、制限時間

代入

15

ン」

。続

名前

、「制限時間」 時間

作 作

15 秒 、残

。続

、1 秒間隔

。何回目

「カウントダウン」 。続

実行

「おめでとう!!!」 止

名前

、先頭

「n」

要素数

式 調

表示 。

、 「終了時計」

、1 秒間隔 「制限時間」 秒数

、 「制限時間 - n」

、配列「敵たち」

変数

、「カウントダウ

「制限時間」

6 行 、「終了時計」 実行内容

実行

表示

、残

、値 。

入 時間

。 表示 、

、終了時計 中断


7.7 終了判定( 、制限時間内 。 計

表示 別

終了

「待つ」

表示 「敵たち」

要素数

// 終了判定(ステップ6) 制限時間=15。 カウントダウン=フィールド!作る 150 0 移動する。 終了時計=タイマー!作る 1秒 間隔(制限時間)時間。 終了時計!「|n|カウントダウン!(制限時間-n)書く。  「 (敵たち!要素数?) == 0」!なら「   ラベル!"おめでとう!!!"作る -100 200 位置。   終了時計!中断  」実行 」実行。

以上

完成

場合 調

、終了時 。

6) 33


34 Activity 7 最後

1

6

全体

掲載

// 主役と左右の動き(ステップ1) カメ太=タートル!作る 90 左回り ペンなし 0 -150 位置。 左=ボタン!"左" "LEFT" 作る -200 -180 位置。 左:動作=「カメ太!-20 0 移動する」。 右=ボタン!"右" "RIGHT" 作る 50 -180 位置。 右:動作=「カメ太!20 0 移動する」。 // 発射ボタン(ステップ2) カメ太:発射=「タイマー!作る「自分!20 歩く」実行」。 発射=ボタン!"発射" "UP" 作る -50 -180 位置 100 45 大きさ。 発射:動作=「カメ太!作る 55 歩く "rocket.gif" 変身する 発射」。

// 敵たちの生成(ステップ3) 敵たち=配列!作る。 敵=タートル!作る "ayumiAka.gif" 変身する ペンなし 90 右回り。 敵たち!(敵!-300 200 位置)書く。 敵たち!(敵!作る -200 200 位置)書く。 敵たち!(敵!作る -100 200 位置)書く。 敵たち!(敵!作る 0 200 位置)書く。 敵たち!(敵!作る 100 200 位置)書く。

// 敵たちの移動(ステップ4) 時計=タイマー!作る 1秒 間隔 。 時計!6 回数「敵たち!「|敵|敵!30 0 移動する」それぞれ実行」実行。 時計!1 回数「敵たち!「|敵|敵!0 -30 移動する」それぞれ実行」実行。 時計!6 回数「敵たち!「|敵|敵!-30 0 移動する」それぞれ実行」実行。 // 衝突定義(ステップ5) カメ太:衝突=「自分!消える」。 敵:衝突=「自分!消える。敵たち!(自分)消す」。

// 終了判定(ステップ6) 制限時間=15。 カウントダウン=フィールド!作る 150 0 移動する。 終了時計=タイマー!作る 1秒 間隔(制限時間)時間。 終了時計!「|n|カウントダウン!(制限時間-n)書く。  「 (敵たち!要素数?) == 0」!なら「   ラベル!"おめでとう!!!"作る -100 200 位置。   終了時計!中断  」実行 」実行。


Part IV

音楽

演奏


36

Activity 8

音楽

演奏 MIDI 音源*1

使

打楽器演奏

楽器演奏 形

記述

。演奏

、 伴奏

合奏

可能

演奏

8.1 演奏 込 、

、譜面

演奏

相当

旋律

。次

、 「きらきらぼし」

生成 、 「"..."」 形 旋律 追加 演奏 記号 使

演奏

。音符

。楽譜 行

記述

演奏

名前 、

「"..."」

指示

部分

、標準

、「『...』」

楽器

きらきらぼし=メロディ!作る。 きらきらぼし!"ドドソソララソ∼ファファミミレレド∼" 追加。 きらきらぼし!"ソソファファミミレ∼ソソファファミミレ∼" 追加。 きらきらぼし!"ドドソソララソ∼ファファミミレレド∼" 追加。 きらきらぼし!演奏。

記述

8.2

、「ドレミ」 行

音階 「^」

���

、数字 下

記号

以降

指定 「_」

上(

下)

。 音

伸 数字

六分音符 次

MIDI

「ー」

指定

。音

1, 2, 4, 8, 16

全音符、二分音符、四分音符、八分音符、十

指定

。 、

一時的

*1

「∼」

使

。(実行

音楽 演奏

規格。

「//」


8.3 楽器 指定 37 きらきらぼし=メロディ!作る。 きらきらぼし!"ド・ドソ^ソララソ∼_ファファ1ミ2ミ4レレ8ド∼" 追加。 // きらきらぼし!"ソソファファミミレ∼ソソファファミミレ∼" 追加。 // きらきらぼし!"ドドソソララソ∼ファファミミレレド∼" 追加。 きらきらぼし!演奏。

8.3 楽器 指定 標準

以外

楽器

楽器 用意 設定

指定

演奏

(E.7 節) 。次

演奏

、楽器

きらきらぼし=メロディ!作る。 きらきらぼし!"ドドソソララソ∼ファファミミレレド∼" 追加。 きらきらぼし!"ソソファファミミレ∼ソソファファミミレ∼" 追加。 きらきらぼし!"ドドソソララソ∼ファファミミレレド∼" 追加。 きらきらぼし!(楽器!"オルガン" 作る)設定。 きらきらぼし!演奏。

次 作

、「メロディ欄」 、

初期値 。

「楽器名」 、

旋律

「楽器名」

実行中

∼」 作 、

設定

指定

、 楽器

旋律

修正

名前 選択 作

名前

。最後 押 演奏

。続 、

「実行ボタン」

名前

「メロディ欄」

メロディ欄=フィールド!作る 600 45 大きさ -300 100 位置。 メロディ欄!"ドドソソララソ∼ファファミミレレド∼" 書く。 楽器名=選択メニュー!作る 180 45 大きさ -300 50 位置。 楽器名!"ピアノ" 書く "オルガン" 書く "ギター" 書く "トランペット" 書く "ベル" 書く。 実行ボタン=ボタン!"実行" 作る -100 50 位置。 バンド1=バンド!作る。 実行ボタン:動作=「  バンド1!クリア。  主旋律=メロディ!作る(メロディ欄!読む)追加。  ピアノ1=楽器!(楽器名!(楽器名!何番目?)読む)作る(主旋律)設定。  バンド1!(ピアノ1)追加 演奏。 。 」


38 Activity 8 音楽 演奏

8.4 音楽 構造 「きらきらぼし」

一度見

きらきらぼし=メロディ!作る。 きらきらぼし!"ドドソソララソ∼ファファミミレレド∼" 追加。 きらきらぼし!"ソソファファミミレ∼ソソファファミミレ∼" 追加。 きらきらぼし!"ドドソソララソ∼ファファミミレレド∼" 追加。 きらきらぼし!演奏。

部分

、次

構造

•「ドドソソララソ∼ファファミミレレド∼」 出

。 (A

同 旋律 、最初 最後

•「ソソファファミミレ∼ソソファファミミレ∼」 ソファファミミレ∼」

2 回繰 返

2 番目 旋律 、 「ソ 。(B

) 整理 分

、 「きらきらぼし」

、次

構造

Aメロディ Bメロディが2回 Aメロディ 分

、 変数

定義

最初

、次

「A メロディ」

「B メロディ」

// 変数の定義 Aメロディ="ドドソソララソ∼ファファミミレレド∼"。 Bメロディ="ソソファファミミレ∼"。 // 演奏 きらきらぼし=メロディ!作る。 きらきらぼし!(Aメロディ)追加。 きらきらぼし!(Bメロディ)追加(Bメロディ)追加。 きらきらぼし!(Aメロディ)追加。 きらきらぼし!演奏。

2個

「B メロディ」

、次


8.5 // 変数の定義 Aメロディ="ドドソソララソ∼ファファミミレレド∼"。 Bメロディ="ソソファファミミレ∼"。 // 繰り返しを使った演奏 きらきらぼし=メロディ!作る。 きらきらぼし!(Aメロディ)追加。 「きらきらぼし!(Bメロディ)追加」!2回 繰り返す。 きらきらぼし!(Aメロディ)追加。 きらきらぼし!演奏。

、 「A

2 回繰 返 中 、1 回目

2 個追加

B 。A

条件式

方針 書 換

、繰 返

1」

、次

(「...」) 先頭

回数 受 取

、1 回目

A

「A メロ回数」

、 「A メロ回数==

判断

// 変数の定義 Aメロディ="ドドソソララソ∼ファファミミレレド∼"。 Bメロディ="ソソファファミミレ∼"。 きらきらぼし=メロディ!作る。

// 繰り返しと条件分岐を使った演奏 「|Aメロ回数|   きらきらぼし!(Aメロディ)追加。   「Aメロ回数==1」!なら「     「きらきらぼし!(Bメロディ)追加」!2回 繰り返す。   」実行。 」!2回 繰り返す。 きらきらぼし!演奏。 例

断片

、多 含

入力

演奏

構造

、単

楽譜

表現

合奏

何拍

演奏

、輪唱

、 「かえる 2」

先頭

える 1」

演奏

演奏

。次

8 拍 無音 入 、続 、 「かえる 1」

「か

「かえる 2」

。 使

、複数

演奏

、 「輪唱」 、 「かえる 1」 る 1」

8.5

同時

。音楽 、曲

大切

「かえる 2」

「かえる 2」 同時

演奏

追加 。

。次 、

。輪唱 演奏

、 「かえ

合奏

39


40 Activity 8 音楽 演奏 かえる1=メロディ!作る。 かえる1!"ドレミファミレド∼ミファソラソファミ∼" 追加。 かえる1!"ド・ド・ド・ド・ド8ド8レ8レ8ミ8ミ8ファ8ファ8ミレド∼" 追加。 かえる2=メロディ!作る 8 無音 (かえる1)追加。 輪唱=バンド!作る (かえる1)追加 (かえる2)追加。 輪唱!演奏。

8.6 楽器 変 標準

演奏

楽器

以外

楽器

2台 変

名前

楽器

。先 区別

2

1 台 楽器 ガン 1」

用意

演奏

。次 作

、 「かえる 2」

輪唱 、「オル

設定

演奏

。 かえる1=メロディ!作る。 かえる1!"ドレミファミレド∼ミファソラソファミ∼" 追加。 かえる1!"ド・ド・ド・ド・ド8ド8レ8レ8ミ8ミ8ファ8ファ8ミレド∼" 追加。 かえる2=メロディ!作る 8 無音 (かえる1)追加。 オルガン1=楽器!"オルガン" 作る。 かえる2!(オルガン1)設定。 輪唱=バンド!作る (かえる1)追加 (かえる2)追加。 輪唱!演奏。

楽器

1∼128

、乱数 奏

。乱数

MIDI

楽器番号*2

楽器

指定

数式

、括弧(. . . ) 囲

指定

。実行

。次 、異

記述

かえる=メロディ!作る。 かえる!"ドレミファミレド∼ミファソラソファミ∼" 追加。 私の楽器=楽器!(乱数(128))作る。 かえる!(私の楽器)設定。 かえる!演奏。

8.7 楽譜 音楽

*2

楽譜

付録 E

入力 見

参照。

、曲

入力

楽器


8.7 楽譜

入力

41


42 Activity 8 音楽 演奏


8.8

8.8 打楽器

演奏

、 同様

記述 次 、続

付録 E

らきらぼし」

方 」

楽器

参照

名前

名前

表記 、 「ド」 使

。詳

。使

、「

「きらきらぼし」

「きらりずむ」

。「ドツタツ」

。 、最初

使用 。音階

、 「ツ」

、音

。最後

「きらりずむ」

追加

、 長

半拍 作

演奏

、「き

きらきらぼし=メロディ!"ドドソソララソ∼ファファミミレレド∼" 作る。 きらりずむ=ドラム!"ドツタツドツタツドツタツドタタツドツタツドツタツドツタツクチパン" 作る。 バンド!作る(きらきらぼし)追加(きらりずむ)追加(60)テンポ 演奏。

、 ンド」

名前

名前

付 作

。次 演奏

「マイバ

きらきらぼし=メロディ!"ドドソソララソ∼ファファミミレレド∼" 作る。 きらりずむ=ドラム!"ドツタツドツタツドツタツドタタツドツタツドツタツドツタツクチパン" 作る。 マイバンド=バンド!作る。 マイバンド!(きらきらぼし)追加(きらりずむ)追加。 マイバンド!(60)テンポ 演奏。

43


44

Activity 9

音楽

9.1 琉球音階 自動作曲 沖縄

音階(琉球音階)

琉球音階 。次 後

使

作曲

、「ドレミファソラシ」

「レ」

、「琉球音階」

「ラ」

存在

音階

配列

、基本

音階

演奏

琉球音階=配列!"ド" "ミ" "ファ" "ソ" "シ" 作る。 僕の楽譜=メロディ!作る。 僕の楽譜!(琉球音階!1 読む)追加。 僕の楽譜!(琉球音階!2 読む)追加。 僕の楽譜!(琉球音階!3 読む)追加。 僕の楽譜!(琉球音階!4 読む)追加。 僕の楽譜!(琉球音階!5 読む)追加。 僕の楽譜!演奏。

繰 返 音

使

(「...」) 出

「n」

追加

、何回目 取

番号

琉球音階=配列!"ド" "ミ" "ファ" "ソ" "シ" 作る。 僕の楽譜=メロディ!作る。 「|n| 僕の楽譜!(琉球音階!(n)読む)追加」!5回 繰り返す。 僕の楽譜!演奏。

琉球音階

配列

1∼5

、5 種類

発生

1 音

数字

5 演奏

出 可能

。乱数 。

琉球音階=配列!"ド" "ミ" "ファ" "ソ" "シ" 作る。 僕の楽譜=メロディ!作る。 「僕の楽譜!(琉球音階!(乱数(5))読む)追加」!5回 繰り返す。 僕の楽譜!演奏。

、乱数 組

A

B 。A

短 旋律 作 、

6 個 音 、B


音階

9.2 8個 音 、 「ド∼」

乱数 加

演奏 「ギター」

。曲 後、最後

設定

構成

、A

最後

、A

2 回演奏 、B 演奏

A

。楽器

琉球音階=配列!"ド" "ミ" "ファ" "ソ" "シ" 作る。

Aメロディ=メロディ!作る。 )読む)追加」!6回 繰り返す。 「Aメロディ!(琉球音階!(乱数(5) Aメロディ! "ド∼" 追加。 Bメロディ=メロディ!作る。 「Bメロディ!(琉球音階!(乱数(5))読む)追加」!8回 繰り返す。 僕の楽譜=メロディ!作る。 「僕の楽譜!(Aメロディ)追加」!2回 繰り返す。 僕の楽譜!(Bメロディ)追加。 僕の楽譜!(Aメロディ)追加。 僕の楽器=楽器!"ギター" 作る。 僕の楽譜!(僕の楽器)設定。 僕の楽譜!演奏。

音階

9.2 今度

、一定範囲

音階

、最初 「ド」

、2

乱数

音程 書

。続

、基準 音

指定 上

基準

音階

半音 表現

音程

作 、 「楽譜」 分 音

2

。「乱数(24)」 数

、2

50 回追加

「 音上げる 」

演奏

名前

、楽譜

自動作曲

音程

1∼24 上

。最大 24 個 。最後

、作

半音 楽譜

音程=メロディ!作る "ド"追加。 楽譜=メロディ!作る。 「楽譜! (音程! (乱数(24)) 音上げる)追加」!50回 繰り返す。 楽譜! 演奏。

自動作曲 45


46 Activity 9 音楽 楽

利用

9.3 配列

複数

作 場合

応用

自動作曲

演奏

、最初

、演奏

作 。続

最後

、複数

配列

。 同

、楽器

格納

。次

楽器番号

指定

作 集

演奏

フレーズ=配列!"ドレミファミレド∼" "ミファソラソファミ∼" "ド・ド・ド・ド・" "ド8ド8レ8レ8ミ8ミ 8ファ8ファ8ミレド∼" 作る。 パート1=メロディ!作る (楽器!10 作る) 設定。 パート2=メロディ!作る (楽器!11 作る) 設定。 パート3=メロディ!作る (楽器!12 作る) 設定。 「パート1!(フレーズ!(乱数(4)) 読む) 追加」! 8 繰り返す。 「パート2!(フレーズ!(乱数(4)) 読む) 追加」! 8 繰り返す。 「パート3!(フレーズ!(乱数(4)) 読む) 追加」! 8 繰り返す。 合奏=バンド!作る (パート1)追加 (パート2)追加 (パート3)追加(68)テンポ 演奏。

9.4 最後

自動作曲 組

自動作曲 作曲

部分

定義 重奏

。作成

、最初 。

作曲

楽器番号

、調整 便利

。続

値 、笛

変数

選 、 、「↑↑↑」

2 、3 個

打楽器 細

太鼓

倍 。

設定

。最後

太鼓

。 、音符

繰 返 上

。太鼓

半分(8 分音符) 作

、指定

。「↑

。太鼓

決 笛

定義 変更

用意

1

長 長

変数

。笛

、音符

、後

3 選

、音符 配列

。 「↑」 「^」 同 意味 、続 音階

演奏

、笛

定義

太鼓用 音階

定義

7 個 音階

音符

↑」

設定 速


9.4

自動作曲 47

笛楽器=072。曲の速さ=120。音符の数=50。 笛の音=配列!"↑↑レ" "↑↑ミ" "↑↑ファ" "↑↑ラ" "↑↑シ" "↑↑↑レ" "↑↑↑ミ" 作る。 太鼓の音=配列!"ど" "た" "つ" 作る。 笛=メロディ!作る(楽器!(笛楽器)作る)設定。 太鼓=ドラム!作る。 笛:作曲=「|n| 「  音符=笛の音! (乱数(7)) 読む。  「乱数(2)>1」!なら「自分!(音符 + "4") 追加」そうでなければ「自分!(音符 + "2") 追加」実行。 」! (n) 繰り返す」。 太鼓:作曲=「|n| 「  音符=太鼓の音! (乱数(3)) 読む。  「乱数(2)>1」!なら「自分!(音符 + "8") 追加」そうでなければ「自分!(音符 + "4") 追加」実行。 」! (n) 繰り返す」。 笛パート=笛! (音符の数) 作曲。 太鼓パート=太鼓!(音符の数 * 2) 作曲。 バンド!作る(笛パート)追加 (太鼓パート)追加 (曲の速さ) テンポ 演奏。


Part V

通信


50

Activity 10

通信 、

同士 通信 方法

説明

通信

説明

起動 上

通信

起動 。

編集画面 選択

「server」

表示

場合

実行画面

2

確認

10.2 IP 通信 必要

起動

動作

通信

指定

localhost 異

名 、

IP

場合

通信 通信 指定

、次

ラベル!(システム:ipaddress)作る。

命令

場合

名 指定

IP

動作

動作 場合

表示

画面

、画面下

。警告

「ブロックを解除する」 起動

接続

可能

起動

動作

起動

10.1

指定

、通信 仲立

Activity

後、文字

調

、 分

。 。


10.3

接続

10.3 通信

、最初

接続

動作 動作

。異

場合

動作

名前

。次 接続

、 「localhost」 指定

IP

サーバー!"localhost" 接続。

10.4 上

登録

各種

、他

書 上

名前

名前

命令 登録

、指定

複製

。次

、「カメ太」 「kameta」

名前

登録

。 サーバー!"localhost" 接続。 カメ太=タートル!作る。 サーバー!"kameta" (カメ太)書く。

10.5 書

出 、読

。次

用 前 登録 名前

、 、使用中

サーバー!"localhost" 接続。 カメ吉=サーバー!"kameta" 読む。 カメ吉!100 歩く。

命令 上

、読 「kameta」

利 名

上 複製 ���カメ吉」

接続

51


52

Activity 11

作 機能

使

、教室

(画面

送信

11.1 最初 力欄

、 作

。画面

入力

入力

(Enter

,

、 「送信フィールド」

次 、

「msg」 中身

、送信

名前 書 込 。送 「クリア」

入 押

文字列

、最後

サーバー!"localhost" 接続。 送信フィールド=フィールド!作る。 フィールド:動作=「   サーバー!"msg" (送信フィールド!読む)書く。   送信フィールド!クリア。 。 」

接続

実行

「サーバー」 、 列):はろー」

表示

書 込 文字列

msg

編集画面 押 。「msg(文字 名前

受信

11.2 次

。 確認

、 「はろー」 分

、 「msg」

受信 文字列

サーバー!"localhost" 接続。 ラベル!(サーバー!"msg" 読む)作る。

。実行 読 出 、

表示

、 。


11.3 発言 名前 入 送信 受信

1台

実行

場合

、次

• 1台

起動

2

画面

送信

受信

一方

入力

起動

• 送信側

実行

接続

受信

後、受信側

複数台

動作

確認

場合

• 複数台 構

起動

。2 台以上

何台

送信

受信

1台

入力

起動

「終了」

記述

10.2 節 手順 調 実行

IP

後、受信側

。 。新 上書

、「書

実行

場合

場合

送信

実行

記述

複数 書

実行

受信

• 送信側

。他

「localhost」 部分 名

、複数人 合

送信

受信

11.3 発言 名前 入 複数 便利 前

発言

。 入

場合

、誰

、 「はろー」

、 「カメ太:

次 。 込

変数

名前

、実際 名前

。「連結」

発言

":"

、文字列

考 入

発言

文字列

文字列

。 。

自分 他

、前 自分 名

、 「名前」

発言

はろー」

「カメ太」 書

名前

連結 連結

命令

。 名前="カメ太"。 サーバー!"localhost" 接続。 送信フィールド=フィールド!作る。 フィールド:動作=「  サーバー!"msg"(名前!": "(送信フィールド!読む)連結)書く。  送信フィールド!クリア。 」。

53


54 Activity 11

11.4 受信 自動化(1) 他

実行

発言 新

通信

発言 、新

発言

信表示」

表示

実行

、受信

大変

、 出力

何度

、定期的 。

1 秒間隔 。

動作

読 、 「受

600 回(10 分間)繰 返 。

サーバー!"localhost" 接続。 受信表示=ラベル!作る 300 45 大きさ。 タイマー!作る 1秒 間隔 600 回数「   受信表示!(サーバー!"msg" 読む)書く。 」実行。

11.5 受信 自動化(2) 、受信

前 、 、

1秒

画面

自動的 書 換 考

。 。

1行 複数個

表示

表示

サーバー!"localhost" 接続。 受信表示=リスト!作る 300 400 大きさ。 タイマー!作る 1秒 間隔 600 回数「   受信メッセージ=サーバー!"msg" 読む。   受信表示!(受信メッセージ)書く。 」実行。

実行

、1 秒

実行結果 。 比較

通信 分

、新

、異

何度

、 (「受信メッセージ」) 場合

追記

発言 場合

次 異

、受信

読 直前

表示

代入

、受信

、直前

発言

修正

、受信

(「直前メッセージ」) 比較

比較

直前

サーバー!"localhost" 接続。 受信表示=リスト!作る 200 400 大きさ 0 200 位置。 直前メッセージ=""。 タイマー!作る 1 間隔 600 回数「   受信メッセージ=サーバー!"msg" 読む。   「受信メッセージ!=直前メッセージ」!なら「受信表示!(受信メッセージ)書く」実行。   直前メッセージ=受信メッセージ。 」実行。


11.6 実行

、1 秒

、画面

表示

通信

、新

11.6 作 、送信

送信 受信

両方

受信

。 次

、11.3 節

結合

11.5 節 作

2

。送信

「メッセージ」

入力

、受信

メッセージ」

表示 位置

調整

「受信 。

サーバー!"localhost" 接続。 サーバー!"msg" "" 書く。 名前="カメ太"。 メッセージ=フィールド!作る 200 45 大きさ −250 200 位置。 フィールド:動作=「   サーバー!"msg" (名前!": " (メッセージ!読む)連結)書く。   メッセージ!クリア。 」。 受信表示=リスト!作る 200 400 大きさ 0 200 位置。 直前メッセージ=""。 タイマー!作る 1 間隔 600 回数「   受信メッセージ=サーバー!"msg" 読む。   「受信メッセージ!=直前メッセージ」!なら「受信表示!(受信メッセージ)書く」実行。   直前メッセージ=受信メッセージ。 」実行。

実行 画面 。

、送信 表示

入力欄 「カメ吉」

受信

表示欄 送

画面

55


56

Activity 12

音楽

交換 機能

使

、教室

音楽

交換

12.1 音楽 演奏 扱

Activity 8

音楽演奏 書

入力

音楽

演奏

、「ドレミー」

。次

「曲」

(Enter

) 押

, 追加

演奏

旋律

曲=フィールド!作る 600 45 大きさ −250 100 位置。 。 曲:動作=「メロディ!作る(自分!読む)追加 演奏」

12.2 音楽 送信 入力

音楽

、 「送信」 込

。次 、曲名

サーバー!"localhost" 接続。 曲=フィールド!作る 600 45 大きさ −250 100 位置。 曲:動作=「メロディ!作る (自分!読む)追加 演奏」 。 曲名=フィールド!作る 130 45 大きさ −380 100 位置。 送信ボタン=ボタン!"送信" 作る −350 50 位置。 送信ボタン:動作=「サーバー!(曲名!読む)(曲!読む)書く」。

実行

文字列 書

12.3 音楽 受信 音楽 名

受信

「受信」

入力

演奏 、

「曲」 (Enter 、

,

。次

押 表示

。曲

押 送信

受信

、曲 曲

曲 共通

使

演奏

。 。


12.3 音楽 受信 サーバー!"localhost" 接続。 曲=フィールド!作る 600 45 大きさ −250 100 位置。 曲:動作=「メロディ!作る (自分!読む)追加 演奏」 。 曲名=フィールド!作る 130 45 大きさ −380 100 位置。 送信ボタン=ボタン!"送信" 作る −380 50 位置。 送信ボタン:動作=「サーバー!(曲名!読む)(曲!読む)書く」。 受信ボタン=ボタン!"受信" 作る −230 50 位置。 受信ボタン:動作=「曲!(サーバー!(曲名!読む)読む)書く」。

接続 次

複数台

動作

確認

場合

• 複数台 構

起動

。2 台以上

何台

入力

1台

起動

「終了」

。 。他

「localhost」 部分 名

記述

10.2 節 手順 調 • 曲 入力 、分 •

編集画面 覧

• 受信

相当

、表示

IP

押 曲

、他

上 閉

曲名

入力

演奏

「 受信 」 (Enter

曲 込

音楽 人

,

映像

視聴

、受信時 い」

、他

場合 。

「了解」

実行画面 押

「 サーバー 」

。自分

。確認

実行

記述

名前

確認

意味

未定義

欄 「[undef]」

「値が存在しな 表示

57


58 Activity 12 音楽 交換

12.4 長 曲 交換( 携帯電話

、 。

音楽

音楽

実行

、他 生徒 受信

2 種類 方法 聴 、先生

聴 作成

1 人 送信

。授業

学習

場合 実行

送信 次

、音楽

、小節 押

6個 分

、最初 曲

曲 一定間隔 合

1行

送信 「曲」

。送信

配列

格納

。「送信」

行数(6 行) 送信間隔(4 秒) 送信

。実行 次 節 受信

サーバー!"localhost" 接続。 曲=配列!作る。 曲!"どどそそららそー" 書く。 曲!"ふぁふぁみみれれどー" 書く。 曲!"そそふぁふぁみみれー" 書く。 曲!"そそふぁふぁみみれー" 書く。 曲!"どどそそららそー" 書く。 曲!"ふぁふぁみみれれどー" 書く。 送信間隔=4。 送信中=ラベル!作る 300 45 大きさ。 送信ボタン=ボタン!"送信" 作る。 送信ボタン:動作=「   行数=曲!要素数?。   送信中!(行数)書く。   サーバー!"配信行数"(行数)書く。   サーバー!"配信間隔"(送信間隔)書く。   タイマー!作る(送信間隔)間隔(行数)回数「|番号|     メッセージ=曲!(番号)読む。     送信中!(メッセージ)書く。     サーバー!"配信"(メッセージ)書く。   」実行。 。 」

送信

後、


12.4 長 曲 交換(

) 59

受信 次

、音楽

ロード」

信間隔 受信 押

後、曲 一定間隔 、曲全体

、曲 実行

際 。

受信

「ストリーミング」

一部

受信

受信

2 、送信

「ダウンロード」

。「ダウン 押

1行

受信

演奏

随時演奏

、最初

「送信」

行数

。 押

画面 、送信 「ストリーミング」

受信 押

直後 押

実 受信

サーバー!"localhost" 接続。 ダウンロード=ボタン!"ダウンロード" 作る 230 45 大きさ −300 50 位置。 ストリーミング=ボタン!"ストリーミング" 作る 230 45 大きさ −300 0 位置。 曲リスト=リスト!作る 200 400 大きさ 0 200 位置。 ダウンロード:動作=「   曲=""。   曲リスト!クリア。   行数=サーバー!"配信行数" 読む。   受信間隔=サーバー!"配信間隔" 読む。   ラベル!(行数)作る −50 200 位置。   時計=タイマー!作る(受信間隔)間隔(行数)回数「|番号|     メッセージ=サーバー!"配信" 読む。     曲リスト!(メッセージ)書く。     曲=曲!(メッセージ)連結。   」実行。   時計!待つ。   メロディ!作る(曲)追加 演奏。 」 。 ストリーミング:動作=「   曲リスト!クリア。   行数=サーバー!"配信行数" 読む。   受信間隔=サーバー!"配信間隔" 読む。   ラベル!(行数)作る −50 200 位置。   時計=タイマー!作る(受信間隔)間隔(行数)回数「|番号|     メッセージ=サーバー!"配信" 読む。     曲リスト!(メッセージ)書く。     メロディ!作る(メッセージ)追加 演奏。   」実行。 」。


60

Activity 13

作 機能 作

。題材

使

、教室

、Activity 6

対戦型

拡張

。 作成

画面

。画面

部分

、 壁

。大 壁

複製

太 下壁

。 。

20

、続

。上下

長方形 打

長方形 線

長方形

壁 、4 個

、線 作

画面 。左

長方形

説明

参照

、内

1)

登場 返

、Activity 6

13.1 壁 作 ( 跳

右側

、左側

最初

左側

作成

。 。

長方形 左壁

簡単 。続

、上壁 。

// 壁を作る(ステップ1) カメ太=タートル! 作る。 カメ太!(緑)線の色 20 線の太さ。 壁=カメ太!550 歩く 図形を作る -200 200 位置。 壁!作る -200 -220 位置。 カメ太!90 左回り。 左壁=カメ太!(黄)線の色 440 歩く 図形を作る -210 -230 位置。 パドル=カメ太!(青)線の色 120 歩く 図形を作る -190 -210 位置。


13.2

13.2 画面

表示

2)

上下

。次

、画面 左側 「上ボタン」 「下ボタン」 示

上下

移動

矢印

名前

2

上下

50

// パドルを動かす(ステップ2) 上ボタン=ボタン! "上" "UP" 作る -380 50 位置。 下ボタン=ボタン! "下" "DOWN" 作る -380 0 位置。 上ボタン:動作=「パドル! 0 50 移動する」。 下ボタン:動作=「パドル! 0 -50 移動する」。

13.3 「カメ太」

定義

役割

3)

。毎回少

位置

、横 位置 左右 中央 、縦 位置 乱数 使 、−150∼150 。壁

、自然

角度

範囲

// ボールの動きを定義する(ステップ3) カメ太!ペンなし 45 向き。 カメ太!0(乱数(300)-150)位置。 カメ太:衝突=タートル:跳ね返る。

13.4 通信 準備 画面 間

2 報

交換

衝突

4)

状態

必要

画面

同様

画面

必要

。 、自分

状態

、相手

状態

定義

、 「書き込み」 中 情報

存 「t」

込 出

「書き込み」 「読み出し」

次 向

。 「読み出し」 取

4 。詳

、現在

( 「カメ太」 )

「x」、 「y」、 「t」 中

位置

( 「カメ太」 ) 説明

情報「x」、「y」、

実行

6 7

名前 向

位置

相手 画面 必要

2) 61


62 Activity 13 // 通信を準備する(ステップ4)

カメ太:書き込み=「  サーバー!"x" (カメ太!横の位置?) 書く。  サーバー!"y" (カメ太!縦の位置?) 書く。  サーバー!"t" (カメ太!向き?) 書く 」。 カメ太:読み出し=「  x=サーバー!"x" 読む。  y=サーバー!"y" 読む。  t=サーバー!"t" 読む。  カメ太!(x) (y)位置 (t)向き 」。

13.5 通信

5 上

5)

中心的 部分

両方 通信

。行

画面

処理 画面

表示

状態

必要 互

。 次

、最初 、

「書き込み」 作成

実行

接続

、 、

処理

。続

位置

、 書

開始

。本質的

「カメ太」

動作

前進

4 込

動作

1 行 記述

動作

時計!「カメ太!10 歩く」実行。

、他

画面

相手 移動

、移動後

状態

状態

取得

状態

、最初 、 「書き込み」

// 通信しながらボールを動かす(ステップ5) サーバー!"localhost" 接続。 カメ太!書き込み。 時計=タイマー! 作る 60秒 時間 0.2秒 間隔。 時計!「  カメ太!読み出し。  カメ太!10 歩く。  カメ太!書き込み。 」実行。

「 読み出し 」 位置

。続


勝敗

13.6

勝敗

13.6 最後 、

判定

終了

ムクリア」

表示

、詳

。 参照

Activity 6

6) 場合

「ゲー

部分 。

// ゲームの勝敗を判定する(ステップ6) ゲームクリア=はい。 左壁:衝突=「:ゲームクリア=いいえ。時計! 中断」。 時計! 待つ。 「ゲームクリア==はい」! なら「   ラベル! "ゲームクリア! "作る (青)文字色。 」そうでなければ「   ラベル! "ゲームオーバー! "���る (赤)文字色。 」実行。

1 左側

画面

6 実行

全体 。

掲載

判定

6) 63


64 Activity 13

// 壁を作る(ステップ1) カメ太=タートル! 作る。 カメ太!(緑)線の色 20 線の太さ。 壁=カメ太!550 歩く 図形を作る -200 200 位置。 壁!作る -200 -220 位置。 カメ太!90 左回り。 左壁=カメ太!(黄)線の色 440 歩く 図形を作る -210 -230 位置。 パドル=カメ太!(青)線の色 120 歩く 図形を作る -190 -210 位置。

// パドルを動かす(ステップ2) 上ボタン=ボタン! "上" "UP" 作る -380 50 位置。 下ボタン=ボタン! "下" "DOWN" 作る -380 0 位置。 上ボタン:動作=「パドル! 0 50 移動する」。 下ボタン:動作=「パドル! 0 -50 移動する」。 // ボールの動きを定義する(ステップ3) カメ太!ペンなし 45 向き。 カメ太!0(乱数(300)-150)位置。 カメ太:衝突=タートル:跳ね返る。

// 通信を準備する(ステップ4) カメ太:書き込み=「  サーバー!"x" (カメ太!横の位置?) 書く。  サーバー!"y" (カメ太!縦の位置?) 書く。  サーバー!"t" (カメ太!向き?) 書く 」。 カメ太:読み出し=「  x=サーバー!"x" 読む。  y=サーバー!"y" 読む。  t=サーバー!"t" 読む。  カメ太!(x) (y) 位置(t)向き 」。

// 通信しながらボールを動かす(ステップ5) サーバー!"localhost" 接続。 カメ太!書き込み。 時計=タイマー! 作る 60秒 時間 0.2秒 間隔。 時計!「  カメ太!読み出し。  カメ太!10 歩く。  カメ太!書き込み。 」実行。

// ゲームの勝敗を判定する(ステップ6) ゲームクリア=はい。 左壁:衝突=「:ゲームクリア=いいえ。時計! 中断」。 時計! 待つ。 「ゲームクリア==はい」! なら「   ラベル! "ゲームクリア! "作る (青)文字色。 」そうでなければ「   ラベル! "ゲームオーバー! "作る (赤)文字色。 」実行。


実行

13.7

実行

13.7 節

作成

7)

動作

、単体

相手

。実行

画面

協調

手順

説明

。 、

起動 、

左側

、右側

使

画面

実行

込 画面

実行 調 。

画面

配置

、 両方 位置

100

、別

画面

。左側

、 、

左側 必要

画面 示

設定

、 左右逆

表示

実行

初期位置

必要

server

、開

面 自然 位置 表示

IP

編集画面 画面

、画面上

変更

画面) 開 、右側

。右側 画面

実行

画面自体 次

画面 起動

入力 。

起動

起動

役割

実行 実行

場合

場合 、左側 名

中 「localhost」 部分 書 換

7) 65


66 Activity 13

// 壁を作る(ステップ1) カメ太=タートル! 作る。 カメ太!(緑)線の色 20 線の太さ 180 右回り。 壁=カメ太!550 歩く 図形を作る 200 200 位置。 壁!作る 200 -220 位置。 カメ太!90 右回り。 左壁=カメ太!(黄)線の色 440 歩く 図形を作る 210 -230 位置。 パドル=カメ太!(青)線の色 120 歩く 図形を作る 190 -210 位置。

// パドルを動かす(ステップ2) 上ボタン=ボタン! "上" "UP" 作る 230 50 位置。 下ボタン=ボタン! "下" "DOWN" 作る 230 0 位置。 上ボタン:動作=「パドル! 0 50 移動する」。 下ボタン:動作=「パドル! 0 -50 移動する」。 // ボールの動きを定義する(ステップ3) カメ太! ペンなし。 カメ太!0(乱数(300)-150)位置。 カメ太!45 向き。 カメ太:衝突=タートル:跳ね返る。

// 通信を準備する(ステップ4) カメ太:書き込み=「  サーバー!"x" (100+(カメ太!横の位置?)) 書く。  サーバー!"y" (カメ太!縦の位置?) 書く。  サーバー!"t" (カメ太!向き?) 書く 」。 カメ太:読み出し=「  x=サーバー!"x" 読む。  y=サーバー!"y" 読む。  t=サーバー!"t" 読む。  カメ太!(x-100)(y)位置(t)向き 」。

// 通信しながらボールを動かす(ステップ5) サーバー!"localhost" 接続。 //カメ太!書き込み。 時計=タイマー! 作る 60秒 時間 0.33秒 間隔。 時計!「  カメ太!読み出し。  カメ太!10 歩く。  カメ太!書き込み。 」実行。

// ゲームの勝敗を判定する(ステップ6) ゲームクリア=はい。 左壁:衝突=「:ゲームクリア=いいえ。時計! 中断」。 時計! 待つ。 「ゲームクリア==はい」! なら「   ラベル! "ゲームクリア! "作る (青)文字色。 」そうでなければ「   ラベル! "ゲームオーバー! "作る (赤)文字色。 」実行。


Part VI


68

Activity 14

使用

教材 、

Activity

制御 行

環境設定 使用

教材 解説

14.1 制御 必要

、Java

通信

• Java 付

版(○):

外部機器 制御

版(△): Java

• Java 必要

作業

作業

必要

、Java

。通信

管理者権限

版(×):

通信

最初

必要。

外部機器

制御

接続

14.2 動

存在 利用

。必要

検索

場合

場合

、Web

、数種類

製品

変換

「USB

」 。入手

、商

確認 作成

必要

、USB

必要

14.3 通信

接続

、使用

調

WindowsXP ティ」

場合*1

、 「 マイコンピュータ 」

、 「ハードウェア」

、「ポート(COM と LPT)」 場合

*1

Macintosh 定

製品名

Linux

「 プロバ

「デバイスマネージャ」

COM 分

"COM1"

表示

部分

。USB

変換

場合

、通信 使用


14.4

14.4 本書

解説

MYU 制御 部分

命令

画面

MYU 構造化命令 記述

解釈

部分

PIC

機能

、自律的

動作

文法

存在

、CPU

。 、 限

制御 違

製品

、通常 本書

記述

注意

開発・販売 採用

搭載

製品

I/O(外部

CPU

、 可能

*2 。

必要

転送 。転送

上限

*3 。

127 詳

MYU

説明

解説

本書

紹介

命令

、次

「構造化

」 (

http://www.geocities.jp/shuinoue/myurobo/dolittle.html 「MYU

入門」「MYU

命令」 (

言語「

」)

http://dolittle.eplang.jp/

基本 基本

、車型

検出用 個

。写真

前輪

。両方

方式

同時

回転

回転 。写真

右側

電気部品

動作

。2 回転

、片方 使

電池

基板 行

車輪

頭脳

基本 3 個使 使

使

基板 監視

衝突

2 軸制御 呼

。左右

先頭 検出

独立

制御

制御

3軸

、左右

直進

中央

左側

障害物

、2 個

。写真

、壁

、物

移動

動作

基本

作業

3 軸制御 可能

。2 軸

、3 軸 、行

2個

1個 幅

。 、移動

作業 十分

両方 行

必要 、作業

、最初 行

移動 望

*2

制御用 構文 、井上修次氏( 秀治氏(静岡大学) 設計 *3 2 CPU 交換

)、青木浩幸氏(高麗大学校大学院)、紅林 。 、255 扱 。

69


70 Activity 14 使用

教材

14.5 対話的 操作 転送 話的 操作 太

命令

実行 可能

。次 動作

、 行

//ロボットと転送ケーブルでつないでリモコン操作 ロボ太=MYU!"com1"作る 150 200 位置。 ロボ太!ひらけごま。 前進ボタン=ボタン!"前進" 作る -220 150 位置。 前進ボタン:動作=「ロボ太!前進」。 後進ボタン=ボタン!"後進" 作る 0 150 位置。 後進ボタン:動作=「ロボ太!後退」。 左前ボタン=ボタン!"左回り" 作る -220 100 位置。 左前ボタン:動作=「ロボ太!左回り」。 右前ボタン=ボタン!"右回り" 作る 0 100 位置。 右前ボタン:動作=「ロボ太!右回り」。 停止ボタン=ボタン!"停止" 作る -110 -10 位置。 停止ボタン:動作=「ロボ太!停止」。 音1ボタン=ボタン!"音1" 作る -220 -70 位置。 音1ボタン:動作=「ロボ太!15 電子音」。 音2ボタン=ボタン!"音2" 作る -110 -70 位置。 音2ボタン:動作=「ロボ太!16 電子音」。 終了ボタン=ボタン!"終了" 作る 0 -70 位置。 終了ボタン:動作=「ロボ太!とじろごま」。

対 押


71

Activity 15

動 記述

15.1 制御

MYU 2 行目 末尾

基本形

転送

名前

、定義

実行

転送

。先頭

定義

転送

。「com1」

間 番号

番号

MYU

、「com2」

。 記述

。実行 修正

実行

必要

ロボ太=MYU!"com1"作る。 ロボ太:転送命令=「!はじめロボット  //ここに制御プログラムを書く おわりロボット」。 ロボ太!転送命令。

実際 り」

単位

秒間右

0.1 秒

回転

動作

制御

。次

、「前進」 、

。表 15.1

「右回

1 秒間前進 、0.5

使用

命令

ロボ太=MYU!"com1"作る。 ロボ太:転送命令=「!はじめロボット  10 前進 5 右回り おわりロボット」 。 ロボ太!転送命令。

実行

15.2 作成

転送

実行

実行 接続

転送

。 「実行!」

場合

押 修正

、「[転送準備 OK?]」

、転送画面

表示

再度実行

表示

表示 正


72 Activity 15

表 15.1

命令

命令(一部)

用途

使用例

制御

先頭

制御

末尾

前進

両輪

前転

開始

値× 0.1 秒間

後退

両輪

後転

開始

値× 0.1 秒間

待 値× 0.1

10 前進 10 後退 10 右回

値× 0.1

10 右回

値× 0.1 秒間

10 停止

左車輪 前転、右車輪 後転 開始 、

右回

秒間

右車輪 前転、左車輪 後転 開始 、

左回

秒間

待 停止

停止

後、

待 繰

脱出

指定

回数

入力

指定

番号

「転送」

、最後

正常

入力

、正常

方法

、好

。「ピ・・」

転送

終了

音 分

方法

2 種類

入 使

電源

方法

、 「!はじめロボット」 続

、電源 状況

1 入力

。今回

方法

転送 入

行 抜

実行

実行 開始

中断

「! 5

、転送

、先頭

方法

ON

転送

転送 説明

、繰 実行

「ピピ」

転送

実行 分

記憶

再度実行

。電源

可能

性質

15.3

、「前進」 、次

関 、確実

命令

実行

1 秒間

動作

動作

継続

動作

、「10 前進 停止」

命令

場合

、明示的

動作

実行

性質

、「10 前進」 停止

記述

書 必要

。 性質 入力

監視

」 「音

、 」

動作 処理

並行 可能

「 。

脱出

2 時間」3 繰 返 「! 10 後退」実行


15.4 繰 返

15.4 繰 返 繰

、命令

使

実行

。次

10 回繰 返 。結果

して右回り」

、「前進

多角形

移動

。 ロボ太=MYU!"com1"作る。 ロボ太:転送命令=「!はじめロボット  「!10 前進 5 右回り」10 繰り返す おわりロボット」 。 ロボ太!転送命令。

回数

、 条件 使 次

繰 成

省略 返

立 多

場合 命令 繰

、無限回

実行 返

意味

、無限

。無限

使 返

場合

脱出 組

、 合

。 実行 障害物

、 検出

ロボ太=MYU!"com1"作る。 ロボ太:転送命令=「!はじめロボット  「!10 前進    1 入力あり「!繰り返し脱出」実行    5 右回り  」繰り返す  10 後退  停止 おわりロボット」 。 ロボ太!転送命令。

多角形 抜

描 。

移動

73


74

Activity 16

迷路

16.1 想定 章 大

、迷路

180cm × 90cm(

。想定

一畳分)程度

想定

16.2 移動距離 迷路 抜 最初

、壁

作成 直前

、図

前進

、左

距離

「壁

直前

、...」

制御 、前進

時間

指定

角度

回転

前進

何度

動作

消耗

微妙 到達

距離

角度

指定

。実際

距離

確認

必要

、実行 。 、次

調整

時間

返 方法

実行

移動

、最初

指定 場合

、次

操作

試行錯誤 原因

、実行

。 、摩擦 電池

、右

回転

到達

保証

調整

画面

似 回転

、進

、同 、

状態 到達


入力

16.3

入力

16.3 今回使用 壁

入力

衝突

動作

衝突検出用

接続

実現

利用

、電池 消耗

個体差

、前進

影響

確実

。 、障害物

感知

説明

検知 、「前進

検出 先頭

、1 番

検出 75

後退

動作

「!1 入力なし」の間「!前進」実行

1番 結果、

「前進」

(「...」) 実行 繰

実行

!10 後退 10 右回り

実行

。表 16.1

命令

ロボ太=MYU!"com1"作る。 ロボ太:転送命令=「!はじめロボット  10 前進  「!    「!1 入力なし」の間「!前進」実行    10 後退 10 右回り  」繰り返す 。 おわりロボット」 ロボ太!転送命令。

表 16.1

命令

命令(一部)

用途

使用例

停止

0.1 秒間) 1番 第1

電子音 繰

返 返

指定

後、

時間

、第 2

値(×

10  停止

音程

10   40  

待 入力

鳴 繰

停止

直前

。音程

数字

回数

動作

続 低

実行

脱出

繰 返

... 実行

指定

番号

指定

条件 成 立 間、

中 書 、繰 返

「! 5   中断

  2  時間」3  繰

脱出

進 入力

間... 実行

入力

実行

ON

繰 返

1  入力 実 「! 1  入力

行 実行脱出

「 間... 実行」 次

中 書 、繰 返

中断

実行脱出

 「! 10  後退」実行 」

間「! 前進」実行


76 Activity 16 迷路 抜

参考 1: 入力

実行

入力 。

。書

検出 中

、入力

実行

方法

特定

動作

動作

方法

1番

、複数

、入力

、前

(「...」) 実行

方法

結果、

「前進」

!10 後退 10 右回り

実行

ロボ太=MYU!"com1"作る。 ロボ太:転送命令=「!はじめロボット  10 前進  「!前進    1 入力あり「!10 後退 10 右回り」実行  」繰り返す 。 おわりロボット」 ロボ太!転送命令。

参考 2: 入力 繰 方

実行 返

、前

中 例

、入力 動作

間、特定

) 、

進行 維持

、前進

進行

再開

!10 後退 10 右回り

実行

方法

1 番入力 接続

押 実行

動作

方法 示

。書

「前進」

ロボ太=MYU!"com1"作る。 ロボ太:転送命令=「!はじめロボット  10 前進  「!前進    リミットスイッチ    10 後退 10 右回り  」繰り返す 。 おわりロボット」 ロボ太!転送命令。

。 続

結果、 。

( 直前 押


16.4

定義命令

16.4 、

定義命令

独自

先頭

命令

定義

。構文

記述

定義

同様

。 ロボットオブジェクト:命令=「!...」

、音楽

「Uターン」

命令

演奏

、障害物

定義

感知 。実行

動作

「演奏」

命令

1 入力あり「!演奏 Uターン」実行 記述 」

、 「1 番 、

向上

入力 素直

場合 読

ロボ太= MYU !"com1" 作る。 ロボ太:演奏=「!  2 48 電子音2 46 電子音2 44 電子音2 42 電子音  2 40 電子音2 38 電子音2 36 電子音2 34 電子音 」。 ロボ太:Uターン=「!10 後退 10 右回り」。 ロボ太:転送命令=「!はじめロボット  演奏  「!前進    1 入力あり「!停止 演奏 Uターン」実行  」繰り返す おわりロボット」 。 ロボ太!転送命令。

演奏 、

U 読

定義命令

77


78

Activity 17

運 17.1 想定 、

Activity

追加

仕事

*1 。想定

180cm × 90cm( 。

一畳分)

中央

(建築工事用

2×4材 置 、

、物 図

。大

合板)

想定

上 荷物

緩衝

拡張

17.2 3 個目 取

、荷物

回転

検知

2 個取 付 、衝突検知用 。

構造 図

角度検知用 知用

*1

2 番、後 4番

Activity

示 。

支 、本体

上部

前後 取 付 、前 衝突検知用 角度検知用

3 番、後

、 「3 軸ミュウロボ基本セット」(14.4 節)

必要

配線

1 番、前

衝突検


17.3

17.3 中央

資材置場

荷物

。 前進: 資材置場

1. 止

、前

後退

、後

。 持

2.

:

資材

。 後退:

3. 止

4. 荷物 後

落 戻

5.

:

:

、後

角度検知用

。 回

、前

角度検知用

ロボ太=MYU!"com1"作る。 ロボ太:転送命令=「!はじめロボット  パワーオンスタート  「!1 入力なし」の間「!前進」実行  5 モーター左  「!4 入力なし」の間「!後退」実行  「!3 入力なし」の間「!モーター左」実行  「!2 入力なし」の間「!モーター右」実行 。 おわりロボット」 ロボ太!転送命令。

17.4 命令 定義 複雑

、分

処理

。 処理

名前

理解 書

前進」

名前

定義 持

定義命令

付 付 読

処理

定義命令 、 可能

使

。 中

個々

最 処理

具体的

79


80 Activity 17

ロボ太=MYU!"com1"作る。 ロボ太:ぶつかるまで前進=「!「!1 入力なし」の間「!前進」実行」。 ロボ太:アームを持ち上げる=「!5 モーター左」。 ロボ太:ぶつかるまで後退=「!「!4 入力なし」の間「!後退」実行」。 ロボ太:荷物を後ろに落とす=「!「!3 入力なし」の間「!モーター左」実行」。 ロボ太:アームを戻す=「!「!2 入力なし」の間「!モーター右」実行」。 ロボ太:転送命令=「!はじめロボット  パワーオンスタート  ぶつかるまで前進  アームを持ち上げる  ぶつかるまで後退  荷物を後ろに落とす  アームを戻す おわりロボット」 。 ロボ太!転送命令。

17.5 定義命令

複数

、 大 化

有効

実行

場合

節約 入

化 。

16.4 節

「演奏」

箇所

転送

定義

改良 後

定義命令

ロボ太!"演奏" ブロック化。

化 、

。 、転送

効果

69

。 ロボ太= MYU !"com1" 作る。 ロボ太:演奏=「!  2 48 電子音2 46 電子音2 44 電子音2 42 電子音  2 40 電子音2 38 電子音2 36 電子音2 34 電子音 」。 ロボ太!"演奏" ブロック化。 ロボ太:Uターン=「!10 後退 10 右回り」。 ロボ太:転送命令=「!はじめロボット  演奏  「!前進    1 入力あり「!停止 演奏 Uターン」実行  」繰り返す おわりロボット」 。 ロボ太!転送命令。

52


Part VII

付録


82

付録 A

授業

利用 小学校

、授業

大学

幅広

利用

範囲

参考

利用可能

。企業

授業例

紹介

新人研修

使

以下 授業例 、授業回数 難易度 、中学校技術・家庭 高校普通教科「情報」 、大学 共通科目程度 想定 。小学校

45 分

、高学年以上

50 分程度 想定

、多少時間

程度

実施可能

。1 回

授業時間

A.1 体験 時間: 2 回(高校以上

1回

可能)

入力

: 授業

目的:

授業

目標:

仕組

体験 人間

版、

: 学習環境:

理解

室。教員 1 名

授業内容:

移動 (Activity 1)

1 (Activity 4)

2

仕組

時間: 3 回∼4 回 入力

: 授業

目的:

授業

目標:

:

1

版(

実習

4

不可) 、

室。教員 1 名 対話的 操作 (Activity 1, Activity 2) (Activity 4)

2 3

体験 人間

学習環境: 授業内容:

仕組

(Activity 3) (Activity 10, Activity 11)

動 版

理解


A.2

83

作 時間: 9 回 入力

: 授業

目的:

授業

目標:

体験 作品 版、

: 学習環境:

室。教員 1 名

授業内容:

(Activity 1)

定義、図形(Activity 1, Activity 2)

3 4

、衝突

使

1 2

(Activity 3, Activity 4)

衝突(Activity 5)

5, 6 分岐、

(Activity 6)

7, 8 作品制作 9

相互評価・発表

A.2 仕組 時間: 4 回 入力

: 授業

目的:

授業

目標:

存在

。 気

、通信 同士

学習環境:

生徒

授業内容:

1

IP

2

音楽

3

1行

4

複数

LAN 、

楽 通信

(Activity 11) (Activity 11)

体験的

接続

理解

室、教員 1 名 読

配信(Activity 12)

(Activity 10)


84 付録 A 授業

利用

制御

A.3

踊 時間: 4 回 入力

: 授業

目的:

授業

目標:

家電製品

機器

移動

制御

制御

理解

: 学習環境:

授業内容:

)。教員 1 名

場所(廊下

移動命令 動

1

命令

2∼4

(Activity 14)

!(Activity 15)

迷路脱出 時間: 6 回

: 「 授業

目的:

授業

目標:

踊 制御

外部

」 入力

学習環境:

授業内容:

理解

利用

利用

:

内容 壁

迷路

理解 衝突

検知

作成

。教員 1 名

入力

1∼4 迷路

5∼6

挑戦

(Activity 14, Activity 15)

挑戦

(Activity 16)

時間: 11 回

: 「

迷路脱出」

授業

目的:

授業

目標:

身近

作業

大切

競技

作成 、構造化

。教員 1 名

制御

1∼2 玉入

製作。

3∼4 玉入

動作確認

5∼7 繰 返 8∼9

理解

学習環境:

10∼11 物 運

理解

使

3軸

理解 仕組

機械

: 授業内容:

内容

製作

2軸

利用 利用

拡張

(Activity 16) 動

。繰

完成(Activity 17)

脱出(Activity 17)

部品化


85

付録 B

書 文章

)文章

理解

(悪

)文章

説明

B.1 、簡単

、「目的

(a) 決 授業

指示

課題

作 作

、目的

(b) 自由

、仕事 」

達成

場合

2

、目的

注文

要求

場合 。

相当

自由作品

課題

。 目的

」 、次

。「

授業

達成

作 達成

、自分

程度自由

目的

。自分

場合

相当

B.2 自由 作

基本的

、目的 選

確実

伝授

素早

(1)作 作 「完成

画面

具体的 様子

最初

機能 簡単

全体

思 理解

。頭 絵

必要

、 動

大切

、動

(2)

」 中

始 様子

。 生

考 、書 、何十行

長 、自分

。長 理解


86 付録 B

、大

3∼5 個 行

動作

、次

、画面

、何

全体

(「//」)

、Activity

、最終的

機能

置 作

確認

作 上 書

2)

結果

画面

、画面

、自分

前進

、画面

遊 (

操作

動 次

。 作

主役 (

参考

1)

順番

紹介

4個 先頭

最初

、Part III

。 (

簡単

。機能

「宝物拾いゲーム」

1

必要 機能 考

。最初

重要 機能

5

、作

、主役

2

前進

定義

3) 宝物 画面 置 続

、脇役 全体

登場

完成

、衝突

、脇役

3

動作

宝物

画面

4) 宝物 拾 最後

足 動作

(3)1 行

機能 作 、

定義

、長 入力 多

問題

慣 望

衝突

原因

実行

、何

調

簡単

表示

、思

基本的

、原因

調

1 行入力

実行

動作 確

、 進

実行

本来楽

作業

実行

表示

場合

、問題

効果

。「

問題

箇所

、問題

*1 。

探 直前

入力

」「

確認

。確認

完成

Activity 1

異 参照。

、次

数行 、

、「少

。 手

部分

行 先頭 「//」 書

動 考

作業

確認

上達

達成

、問題

調

(4)目標

体験

、前回実行

。必要 応

、 早

確認

実感 、

実行

*1

10 行

動 行

宝物

4

作 動

、 「

実行

完成

共通

部分 求

行 分


B.2 考

方 87

(目的

達成)

課題

達成

作 (正

確認 動

) 実行

実行 (読

、途中 )

一週間後

自分

確認

理解

整理

。機能

先生

、機能

理解

説明

重要

。 自由課題

作品

(面白

他 (独自

目的

図形

、次

自分 見

工夫

達成感

大切

使 、使

確認

工夫点 配置

重要

形 人

使

工夫点)

(画面 他

、自分

、見栄 作品

仕上

使 。

重要


88

付録 C

言語 、最初

基礎知識

基本的

概念

原理

説明

簡単

説明

後、

言語

C.1 我々

普段

使

。Web 寄

画面

表示

配置

替 実

文字

具体的

1

、画面上 「

命令

順番

実行

装置(機械)

落 着 。

2

:

実行 単

?

、次

?

命令 並 形

整形

作業

作業 答

相手

画像

答 問

打 中身

、我々

情報(HTML

印刷

、 」

命令

動作

命令

実行

装置

命令

実行 替

作業

「自分

実行

、具体的 組合 )

命令

、命令

命令

作 並

列(

代 、

表 、人間

言語

作業

説明

延長

情報

、一番根本部分 実行

命令

「0」

「1」

CPU(中央処理装置

大変繁雑 間違 書

、 。

? 表 作

、上

列(機械語)

種類

情報)

、 「0」 「1」 組 合 。

、今日 方

行 言語

。 書

実際

実行


C.2 語処理系)

使

方式(

言語処理系

言語

、次節以降

一般

機械語

直接

動作

変換

実行

方式

) 呼

情報(

。我々 日常生活 接 同様

、色、機能

、大

) 「

採用

場合

大 上

言語 上

情報

、 、 表

付随 情報

情報

総称

、形、色、機能 持

情報 付随

統一的 言語

指向言語 多 使

言語 方式

、色、機能 。

内容

、変数

言語

言語処理系

C.2

命令

。現在

言語

一般的

、変数 89

指向言語

。C++、Java

機能 。今日

付随 開発

指向言語 例

指向

。 中

直接名前 付

変数

、変数

1」 説明

名前

変数

) 。

ボタン1 = ...。

、 、

名前

付 入

不便 「

」 名前

。 格納

、 「=」

右側

指定

動作(代入) 「=」 表 。 格納

、次

(指定


90 付録 C 変数

変数 、

言語

基礎知識

」 内容

、 名前」

差 使

。 名前

変数

指定

方法

。 変数

名前

。 、決

普通、書

一連

、「

変数

最初

格納

標準

1

場合

標準的

付随

1

、 固有

内容(

名前

、次

、変数名

。変数

「:」

格納

区切

指定

。 ボタン1:動作 = ...。

変数

送信

C.3 前節

付随

「機能」

付属 指向言語

通常、機能

、 、新

付随

作 、次

付属

、 指定

「呼

(表示欄)

機能

以下

)機能

標準

1」 格納

。 機能」

、本書

、通常 名前

変数「

使 出

(動

頂 、働 「作

。 )」

ボタン1 = ボタン!作る。

、 「オブジェクト ! メソッド名」 送信

、最後

書 方

動作(文) 呼

「。」 、

送信 。

、必要

終 追加

情報

文字列

「作

。先

」 直

表示

:

ボタン1 = ボタン!"テスト" 作る。

実行

、先程

同様


C.4 中置記法 91 、実行 出

、続 行

値(

。1

、前

送信(

、 呼

後、何

(直列接続)

後、

位置 指定

。 、

「位置」

ボタン1 = ボタン!"テスト" 作る 100 50 位置。

複数個指定 分

扱 名

。 「" "」

指定

文字列

、変数名

値 自体

、変数「

「作

(C.4 節

送信式全体

「位置」 値

位置

定義内容 作

値) 変更

)。

、一番最後 。 分

、「?」

原則

説明

後、

名前

目的

同 返

」 「∼

名 。変数

値(

1」 格納

調

名前

指定

、元 目的

性質

格納

標準定義 作

C.4

名前

「 (x)」

場合、

何 、

数値

「() 」 囲

。上 返

、並

? 実 、「!」 右側 、 「100」

場合、変数 返

例外

、新

名前

中置記法 中置記法

演算

書 方

。中置記法

「x+ 1」

、 「(…)」

中置記法

上 説明

1 、

式 全体

1 送信記法

処理 指定

外側 有無

別 判断

、計算対象 間 演算 書 例

送信記法

送信記法

、「!」

送信

送信記法 。

、全体 中置記法

1

、加減乗除

「x! 1 足

中置記法 選


92 付録 C

言語

中置記法 。

基礎知識

送信記法

対 、

名前

送信記法 中

名 (囲

「x!(y)足

1

名前

変数 、中置記法

「 (y)」 丸

変数

「!」 左側

、 )。

直接変数 書

中置記法

、中置記法

、 「!」 右側

指定

場合

「(…)」 囲

「x+y」

送信記法

(「!」

)中置記法

必要

中置記法 中 使

演算子

、+(足 ) 、-(引 ) 、*(掛

使

<=(le)

名称)。

)、/(割 ) 、%(余 )

、比較演算子==(eq)、!=(ne)、>(gt)、>=(ge)、<(lt)、

、中置記法 中

関数記法 使

任意

、 「sqrt (2)」 「2 ! sqrt」 略

)」

。 中置記法 使 場合

+ 1」

全体 括弧「 (…) 」 囲 必要

可能

、代入文 右辺

括弧 省略

、 「x = x

C.5 角

(「…」 部品化

[…]) 、

仕組

、一連

表 動作

。 、

以外

30

動作

表示

「後

実行

実行 実行

、繰

取 方法

実行

動作

多数

)。次

。 」

実行

(以下

2 回実行

x = 10。 動作1=「x=x+10」。 動作1!実行。 動作1!実行。 ラベル!(x)作る。

実際

」価値

場面

使

、次

。 ボタン1 = ボタン!"テスト" 作る 10 50 位置。 ボタン1:x = 10。 ボタン1:動作 = 「x = x + 10。ボタン1!(x)50 位置」。

、前

1

例題

同様

「動作」

後、

格納

自身 実行

対応

x

結果 再

。 先頭 受

(C.10 節

、 。

。 呼

、x 等

)。

。次 、 押

「|…|」

「動作」

説明

格納

x

格納

。 、

算 、

10

格納 押

位置 位置

x

格納

X 座標 10

、渡

x

10

値、Y 座標

50

移動

計 変

。 呼

初期値

出 持

渡 変数


制御構造 93

C.6 。

、 「実行」

C.10 節 詳

説明

動作

。(

変数

カメ太=タートル!作る。 カメ太:曲がって動く = 「|角度 距離|!(角度)右回り(距離)歩く」。 x = カメ太!30 100 曲がって動く 横の位置?。 ラベル!(x)作る。

「!」

、特別 例

名前「自分」

「自分!…」

太自身 出

持 書

指定

使

全体 値

。従

1

指定

、最後 評価

利用

。上

「曲

式 値

、最後 返

評価

X 座標 調

「歩

値 返

返 「横

値、

位置?」

制御構造

C.6

自身

指定回数

使

基本

制御構造

実現

。以下

説明

使

返 繰

。繰

回数(任意

「...」!n 繰り返す。

使 数値)

動作 指定

指定回数、繰 。

実行


94 付録 C

言語

基礎知識

実行

表示

、初期値

変数 「a」

0

1

処理

10 回行 、結果

画面

10

「i」

a=0。 「a=a+1」!10 繰り返す。 ラベル!(a)作る。 現在

何回目

実行

「|i| ...」!n 繰り返す。

実行

処理

10

、初期値

10 回行 、結果

変化

画面

結果、 「a=a+i」

「0 + 1 + 2 + ...

変数 「a」

0

表示

55

。「i」

実行

+ 10」

、何回目 繰 返

「a」

合計

表示

値 、繰 返

実行

1, 2, 3, ...,

順 足

1, 2, 3, ..., 10

、結果

a=0。 「|i| a=a+i」!10 繰り返す。 ラベル!(a)作る。

条件

最初

回数

指定 間

、条件

実行

指定

使

条件

間繰

場合

「...」!の間「...」実行。

、100 以上

最初

表示

x1=1。x2=1。 「x1 < 100」!の間「z=x2+x1。x1=x2。x2=z」実行。 ラベル!(x1)作る。 「

間」

、1 番目

返 。 出

、「1 番目 実行」→「結果

実行」→「結果 真

保持

、繰

2 番目 真

続行」→…

調

準備 「実行」 呼

続行」→「2 番目 繰

実行」→「1 番目 行


制御構造 95

C.6

条件分岐 条件分岐(枝分

条件 実行

成否

一部 記述

実行

。条件分岐

「...」!なら「...」実行。 「...」!なら「...」そうでなければ「...」実行。

、1 番目

2 番目

実行

2 番目

3 番目

、最初

。結果

1

。 「

下 」

、実行

乱数 発生 、変数「数」

10

「なら」

実行

実行 返

判定 、真 実行

適宜行

実行 大

結果 場合

制御

5

実行

実行 、偽

、画面 「大きい」

。続

、 「数」

「そうでなければ」 続

「小さい」

表示

数=乱数(10)。 「数 > 5」!なら「ラベル!"大きい" 作る」 そうでなければ「ラベル!"小さい" 作る」実行。

値 れば」

実行結果 続

表示

結果

文字列

画面

。次 、

表示

実行

、「なら」 「結果」

変数

、最後

実行

「そうでなけ 。

数=乱数(10) 。 結果=「数 > 5」!なら「"大きい"」そうでなければ「"小さい"」実行。 ラベル!(結果)作る。

他 後

言語 次

調

「if-else 条件

連鎖」 書

呼 記述

、複数 。

条件

、次

調 形

「条件1」!なら「...」そうでなければ「条件2」なら「...」 そうでなければ「条件3」なら「...」そうでなければ「...」実行。

枝分


96 付録 C

言語

基礎知識

C.7 動作 用

実行

遅延

、一定時間間隔

実行

場合

実行 、 。標準

指定

、間隔

間隔

0.1 秒、回数

実行

時間間隔

回数

100 回 設定

指定 設定

、指定

実行

。最初

時間

実行

出 実行

、指定

間隔

タイマー!「...」実行。

実行 動

2」

移動

移動

、 「はろー」 命令

。 「3

意味

文字

-2

移動する」

一定間隔

表示=ラベル!"はろー" 作る。 時計=タイマー!作る。 時計!「表示!3 -2 移動する」実行。

、画面 繰

右下

、 返

。移動

現在 位置 実行

、文字

、画面

「右に 3」、 「下に 少

画面


C.7

97

動作設定 繰

間隔

、 「時計! 0.2  間隔。」

回数

、 「時計! 10  回数。」

実行

間隔

。回数

、画面

「間隔」

文字

右下

10 回 設定

指定

「回数」 移動

。間隔

、5 秒間動

終了

。単位

指定

0.5 秒 設定

距離

、直前

、標準

0.1

10 倍 大

表示=ラベル!"はろー" 作る。 時計=タイマー!作る 0.5 間隔 10 回数。 時計!「表示!30 -20 移動する」実行。

作 見 場合 負荷

、放送 標準

考慮

0.1 秒

、最小

使

場合、 映像

0.001 秒(1

秒)

動作 、間隔 回数 指定 計! 10  時間。 」

動作 間隔

実行

指定

100 回実行」 「0.1 秒間隔

実行

場合

場合

動作

処理

0.1 秒間隔

100 回実行

• 0.2 秒

処理

0.1 秒間隔

10 秒間実行

、 「必

指定

回数

現在

0.04 秒程度 間隔 短

。単位

0.1 秒

設定

可能

設定

。 。繰 返 時間 、 「時

、繰 返 間隔

0.2 秒程度

時間

動作

0.1 秒

処理

指定

、標準

10 秒間実行」 動作 同

可能性

• 0.2 秒

時間

間隔

、間隔 時間 指定

「時間」

通常、 「0.1 秒間隔

0.02 秒

0.02 秒程度 適切

間隔

実行

実行

場合

、約 20 秒

場合 回数

100 回 実行 行

、10 秒 指定

約 50 回

、「必

実行

時間内 実行

。 。 」

回数 何回目 実行

利用 実行

、繰

、繰 返

同様 移動

距離 長

、結果

。次

進 速度 速

表示=ラベル!"はろー" 作る。 時計=タイマー!作る。 時計!「|i| 表示!(i)0 移動する」実行。

合 通常、上

実行

実行

実行

。 対 行

実行

標準 動作

実行 中

1

、終

、全体

同時

設定

10 秒間

止 並行

複数 )

処理 使

並行 実行

実行

。 実行

実行 仕組

。 呼

。通常

、 、


98 付録 C

言語

基礎知識

並行 、

実行

終了

実行

「こんにちは」

動作

終了

内容

、時計

実行

表示

開始

同時

最後

実行

、画面

表示=ラベル!"はろー" 作る。 時計=タイマー!作る。 時計!「|i| 表示!3 -2 移動する」実行。 ラベル!"こんにちは"作る。

実行 時間

画面

、時計

実行

終了

「こんにちは」

表示=ラベル!"はろー" 作る。 時計=タイマー!作る。 時計!「|i| 表示!3 -2 移動する」実行。 時計!待つ。 ラベル!"こんにちは"作る。

、最後 表示

行 。

実行


C.8 配列 複数

配列

C.8

複数

配列 数

配列

生成

、1

利用

使

種類

複数 必要

、取

使

。入

指定

番号

指定 、 「並び」

画面

参照

配列

利用 99

表示

、読

「作る」

実行

。配列

要素

名前 配列 生成 、3 個 数値 入

、3 番目 要素

並び=配列!123 456 789 作る。 ラベル!(並び!3 読む)作る。

配列 入

要素

、要素数

画面

、要素数?

表示

調

。画面

。次

3

表示

、配列

3 個 数値

並び=配列!123 456 789 作る。 ラベル!(並び!要素数?)作る。

要素 書

追加・更新・削除 使

、配列

末尾

、配列

指定位置

要素

指定位置要素

削除

要素 換 。

追加 (要素数

(要素数

1多

)。位置

)。 消

、上書 使

、配列

使


100 付録 C

言語

次 目

基礎知識

、3 要素

削除

要素 格納

、要素数

画面

配列 末尾 要素 追加 、3 番目 要素 上書

表示

。画面

3

表示

後、2 番

並び=配列!123 456 789 作る。 並び!111 書く。 並び!3 234 上書き。 並び!2 位置で消す。 ラベル!(並び!要素数?)作る。

要素

実行

配列

要素

、同

命令

実行

使

、配列

配列

、画面

。3 個 少

各要素 渡

「a」, 「b」, 「c」

、特 名前 付

配列 要素 対 個

移動

要素

実行

可能

。配列 実行

対 。

。 書

。続

「自分! 10 0 移動する」 右

一括

3個

、 「実行ボタン」 実行

配列

名前 結果、

並び=配列!作る。 並び!(ラベル!"a" 作る 0 100 位置)書く。 並び!(ラベル!"b" 作る 0 50 位置)書く。 並び!(ラベル!"c" 作る 0 0 位置)書く。 実行ボタン=ボタン!"実行" 作る 0 -50 移動する。 実行ボタン:動作=「   並び!「|並び要素| 並び要素!10 0 移動する」それぞれ実行。 」。

作 、押 押

画面上

3


親子関係 101

C.9

親子関係

C.9

間 親子関係 呼 参照

書 換

関連

規則

関係

理解

名前(

、変数、

少 複雑

作成

不可

「作

親子関係 親子関係

呼 親

親、

1

、 子孫

、親

親、…

、 親 持

(根元 。

意味)

特別

以外

直接

間接

。 何

、作 合、ObjA

「作 親

ObjB

ObjB=ObjA!作る。

、親

(値 仕組

利用

参照・書 換 実際

覚 場合

、子 表示

、 作

、配列

利用

標準

親子関係 持 参照

使用

(未定義

、親 例

ObjA=ボタン!作る。 ObjB=ObjA!作る。 ObjA:身長=165。 ラベル!(ObjB:身長)作る。

自分

結果 。以下

、親

、最初

特別 参照

「165」

必要

親…

未定義

親 。

親、

定義)

ObjB

追加

)。

子 追加

直接持

、 「身長」

結果 参照

子 、


102 付録 C

言語

、上

基礎知識

説明

、親

同名

、 「180」

表示

、子

参照

名前

、次

場合

場合

使 参照

ObjB

ObjA=ボタン!作る。 ObjB=ObjA!作る。 ObjB:身長=180。 ObjA:身長=165。 ラベル!(ObjB:身長)作る。

、「作

生成

、独自

C.10 変数 変数

束縛

束縛 、

応規則

中 。

、必要

、 。

変数名

変数 中

変数

説明

変数名

変数、

変数、

意味

表 変数

使

3 種類

変数 変数

全体

位置

参照

変数

変数

。従

、次

3

変数 行

簡潔 中

変数

変数

意味

指定

、「

場合)

意味

:x」

「:x」

x=100。 ルート:x=100。 :x=100。

、配列 書

標準 、

、単 以降参照

変数 。

初期値

格納


C.10 変数

束縛

103

変数 変数 、

、個々

変数 格納

付随 呼

変数以外

変数

表示

場合、

221

保持

21 増

情報

個々

変数 意味

変数

、「|…|

次 例

、ObjB:y

ObjB=ボタン!作る。 ObjB:x=200。 ObjB:増加=「|d|x=x+d」。 ObjB!21 増加。 ラベル!(ObjB:x)作る。

注意 親

場合、

100

、上 書

ObjB:x

変数

参照

「増加」 最初 上

、 場合

変数

参照

1 行目 「ObjB:x=200」 無

実行

「x+d」

(新

参照

、前項 説明

「:」

、参照時

、参照

変数 x

変数 参照

変数

更新

121

。2 回目 変数

ObjB=ボタン!作る。 x=200。 ObjB:増加=「|d| :x= :x+d」。 ObjB!21 増加。 ラベル!(ObjB:x)作る。

変数、名前解決規則 変数

。 変数

、渡 必

「距離」

冒頭部分

先頭

関係

概念

初期値

内側 点以外

変数

「|パラメータ… ; ローカル変数…|」

定義

変数

使

定義

2 点間 距離 求

使

変数

同等

。次 。

ObjB=ボタン!作る。 ObjB:距離=「|x1 y1 x2 y2 ; dx dy| d1 = x1 - x2。d2 = y1 - y2。 sqrt(d1*d1+d2*d2)」。 d=ObjB!100 100 200 200 距離。 ラベル!(d)作る。

何重 数

、内側

外側

*1 。

参照 説明

名前

、次

*1

内側 作 未定義

変数 。

保管

、後

(外側

実行

終了

)実行

場合


104 付録 C

言語 冒頭

1.

基礎知識

|…| 定義

変数

直接

2. (

実行

、参照時

4. 一番外側

以外

名前

変数

参照

3.

囲 外側 場合(

)。

、同 規則 名前 使

場合)

方 探索

、名前

戻 。

1 変数

C.11 字句 約束 言語 。

場合 、以下

字句

約束 入

場合、名前、数値、文字列

以下 規則

説明

約束

意味

記法

意味

拡張 BNF

記法

:

X ::= α

α |β

α

β。

[α ]

α

空。

α ···

α

(α )

α

空白

約束

方α

X

1 個以上並

定義。

X

)。

改行 自由書式(

空白

改行

配置

比較的自由 何行

言語

。 。規則

。行

、 次

空白

配置

位置

• 名前 途中、数値 途中

空白

• 名前 名前、名前 数値、数値 数値 連続

、空白(

改行)

• 空白 何個 、次

1 個 同 意味 同

2

動作

(文字列

)。

ボタン1 = ボタン!作る。 ボタン1

= ボタン!作る。

、次

名前

数値

ボタン1 = ボタン!"テスト"作る100 50位置。

。(実行


C.11 字句 約束 105

名前 名前(識別子)

変数名

名前文字 ::= 漢字 |

|

指定

使

規則

|

名前 ::= 名前文字 [ 名前文字 | 数字 ] … 名前 字、

「漢字、

、数字

任意個続

直接記述

。名前

規則

、漢

: ○ ×

ボタン1 X A1 ボタン-1 1番目

数値 数値

定数(数

符号 ::= + | − 数値 ::= [ 符号 ] 数字… [ . 数字… ] [ 名前文字… ] 、数値 「先頭 + 小数点

符号

1 個以上 数字 。最後

名前文字

正 ○ ×

、 数値

無視

後 数字

1 個以上続 、

1 個以上 名前文字 、読

後 」

。数値

:

1 +55 -3.1416 15. 22時59分

3番目

文字列 文字列 直接書

、文字列 。

(文字

規則

表現

定数

文字列 ::= " [ 文字… ] " | 『 [ 文字… ] 』 文字列

○ ×

大文字

"あいう" 『ABC』 "あい 『ABC

小文字/全角

半角 、大文字

角)

区別

ABC

:

Abc

ABC

各行

小文字、16 名前

文字( 同

全角) 扱

8

文字(


106 付録 C

言語

、「+」「!」 文字、16

文字

基礎知識 記号類 文字

8

同様 違

。 中

、文字列

文字

日本語記号 英語記号 同等 扱 。小数点

使

「…」

送信 使

[…]

、次

「!」

例外 表

文 終

「、」

使

、大文字 。

「。 」 「.」 。

。 同

意味

ボタン1=ボタン!作る。 ボタン1:プロパティ = 「x = x + 10。ボタン1!(x) 50 位置」。 ボタン1:プロパティ = [x = x + 10. ボタン1、(x) 50 位置].

「//」

行末

、一時的

注釈 ( 一部

、次 例 、1 行目 一時的

) 解釈

実行 全体 注釈、2 行目

一部

// タートルのテストプログラム カメ太=タートル!作る。 // カメ太を作る // カメ吉=タートル!作る。

一部

。人 読

使

処理 注釈、3 行目 実行


107

付録 D

標準 、 作

種類

標準

共通

、配列 、本文

使

付録 C

参照

付録 E

参照

各章

用意

、 概要

説明

制御、音楽演奏

数値

D.1 数値

、数 作

数値 対

。数値

演算

演算

結果

数値定数

10.0

) 。

、関数

、四則演算「+」 、 「-」 、 「*」 、 「/」 剰余 演算「%」 使

、商 「÷」 使 。

、1

(積

「×」

、比較演算子「==」、 「!=」、 「>」、 「>=」、 「<」 、 「<=」 使

、平方根(sqrt) 、三角関数(sin, cos, tan)、四捨五入(round)、絶対値(abs)

。 数値

特別

関数

実行 数値 返

、乱数

少 指定

。次

。乱数

使

実行

、実行

整数

、実行

便利

指定

1

。乱数

、1

3

関数 使

数字

、「乱数(3)」 間

表示

数 。

ラベル!(乱数(3))作る。

負 数 大

含 乱数

発生

値 引 範囲

5

、0

、発生 中心

数字

幅 指定

乱数

正負 乱数 生成 表示

生成 、

。次

半分 実行

ラベル!(乱数(11)- 6)作る。

数値

定義

実行

数値

2 倍 数 表示

利用

。次

数値:二倍=「自分 * 2」。 ラベル!(3!二倍)作る。

括弧

数式

数値:二倍=「自分 * 2」。 ラベル!(二倍(3))作る。

使

関数

使

1 、−5


108 付録 D 標準

文字列

D.2

文字列

、0 個以上

中 文字列定数 書

文字

、"こんにちは"

生成

、GUI 部品

"abc xyz"

読 込

。 文字列

、 「+」

連結

。次

「こんにちはカメ太さん」

文字列

実行

表示

、2

文字列

連結

、画面

x="こんにちは"。 y="カメ太さん"。 ラベル!(x+y)作る。 、文字列 値

中身

演算

比較

数値定数

"123.45"

、次

結果

「14」

、「+」

m

x="3"。 y="11"。 ラベル!(x+y)作る。

部分

使

、文字列

指定

一部分

、先頭

。次

m 番目以降 文字 返

実行

文字列

表示

1 個 数字(

、 「こんにちは」

、4

文字列

指定

、4 文字目以降

4 文字目以降 切 出

文字

、画面

「ちは」

x="こんにちは"。 ラベル!(x!4 部分)作る。 2 個 数字( 返

にちは」

、2 文字列

3

m, n 指定

) 指定

、2 文字目

2 文字目

、先頭

3 文字 返 。次

3 文字 切 出

、画面

「んにち」

m 番目 文字

n 個 文字

実行 文字列

、 「こん 表示

x="こんにちは"。 ラベル!(x!2 3 部分)作る。 含

使

文字列

一部

文字列

調

x="上山田"。 「x!"山" 含む?」!なら「ラベル!"こんにちは" 作る」実行。 文字列

定義 実行

、 文字列

文字列

2 回続

文字列

利用 表示

。次

文字列:二倍=「自分 + 自分」。 ラベル!("こんにちは"!二倍)作る。

括弧

数式

使

文字列:二倍=「自分 + 自分」。 ラベル!(二倍("こんにちは"))作る。

関数

使


D.3 真偽値 109

真偽値

D.3

真偽値

、条件

真偽値

真偽値

/成 立

、真偽

区別

。比較演算子

成否

調

、真 表

意味

格納

偽 表 、

変数「真(

x

y

1 )」

「偽(

)」

z

調

真 例

x=7。y=5。z=3。 xが最大=真。 「x < y」!なら「xが最大=偽」実行。 「x < z」!なら「xが最大=偽」実行。 「xが最大」!なら「ラベル!"xが最大です" 作る」実行。 反対 偽値

、真偽値

反転

(NOT)、

(AND)

(OR) 調

偽、偽

調

、複数

本当 使

使

真偽値

1

上 例

、複数 真

以上

x=7。y=5。z=3。 「ぜんぶ!(x>=y)(x>=z)本当」!なら 「ラベル!"xが最大です" 作る」実行。 「本当」 実行

場合

。次 調

「x>=z」

、最初 「x>=y」 実行

実行

「x>=z」

実行

、値

。 場合

必要 値 真 場合

結果

時点

両方 条件 真 決

x=7。y=5。z=3。 「ぜんぶ!「x>=y」「x>=z」本当」!なら 「ラベル!"xが最大です" 作る」実行。

D.4

変数 格納 。 任意

。具体的

場合

、赤、緑、青

使

、 「黒、赤、緑、青、黄色、紫、水色、白」

名前

8 色 用意

。 強

0∼255

整数

指定

「作

、任意 画像

使

新しい色=色!200 150 255 作る。

D.5 、画面上 画面上 置 作

状態 。切

移動

動 、動

使 軌跡

制御

、現在

。作 出

状態

、動

」 「 位置

」 基準

軌跡

出 前進

、 残

「作 」 使 。 状態

。 後退

「変身」

指定

方法(


110 付録 D 標準 )

使

使

。移動量

、X 方向 位置

軌跡

画面上

(画面中心 原点) 始

、動

指定

単位、回転量

Y 方向 移動量 指定 X 座標

(軌跡

「歩

」 「戻

度数

指定

現在位置

Y 座標 指定

図形

起点

「閉

」 離

「右回

」「左回

。 分

座標位置 移動

、「図形

」、回転角度 指定

使

移動

「移動

「位置」 使

」、絶対座標

。一連 軌跡 描

独立

図形

(図形

次項) 。 現在 太

軌跡

位置

画像 指定

「変身

「縦

位置?」 「横

変更

最初

」 呼 。

任意

、画像 表示

名前

接触 衝突

動作

衝突

相手

90 度向

変 対

色」「線

」 「現

文字列 」 使 。

特定

、 動

、 」

使

動作

。「衝突」 、

定義 実行

「消

、「線

、画像

「数歩下

取得

定義

?」

変更

「衝突」

「衝突」

画像

ON/OFF

重要 作

位置?」「向

図形

一定

定義

、前進

作用

利用

衝突

。次

タートル:衝突=「自分!150 右回り」。 カメ太=タートル!作る。 カメ吉=タートル!作る 100 0 位置。 タイマー!作る「カメ太!10 歩く」実行。

図形

D.6 図形 色 動

、 塗

動 見

図形 切 離

、完結

1

、「右回

」「左回

」 「移動

」「位置」「消

」「現

使

。 、倍率

指定

倍率

「拡大

別々

指定

拡大/縮小

。色

指定

「塗

。倍率 」

2

指定

、 付

。 図形 接触

同様 検知

図形 実行

定義 、

「衝突」

定義

、他

。 図形

、 横幅

図形 広

利用 「変形」

定義

図形:変形=「自分!2 1 拡大する」。 カメ太=タートル!作る。 さんかく=「カメ太!100 歩く 120 左回り」!3 繰り返す(赤)図形を作る。 さんかく!変形。

。次 。

図形


D.7 GUI 部品 111

D.7 GUI 部品 GUI 部品

、画面上 現

。 同様

)使

設定

GUI 部品 画面 表示

長方形

、縦方向

、色

「位置」 「移動

横方向

指定

説明

図形

「塗

( 」

動作 」 「消

単位)

」 「現

指定

「大

色、「文字色」 文字

衝突

」 (

。以下

、個々

。表示

文字列

設定

GUI 部品

領域

指定 次

操作

、画面上 配置 表示 制御

上 。

、画面 変数

文字列

表示

、文字列

指定

表示

。実行

、10

、「作

指定

「書

文字

表示

生成

x=10。 ラベル!(x)作る。

定義

実行

、画面

文字列

表示

動作

。 少

名前

、次 右

移動

文字列

入力

ボタン1=ボタン!"テスト" 作る。 ボタン1:動作=「自分!10 0 移動する」。

、文字列

表示

。 「作 」 「書 」 文字列 設定 字列

取 文字

。次

実行 指定

歩数

、 前進

、加

「読 」 現在入

文 入力

カメ太=タートル!作る。 窓=フィールド!作る。 前進ボタン=ボタン!"前進" 作る。 前進ボタン:動作=「カメ太!(窓!読む) 歩く」。

、 受

(Enter

、定義

前進

,

カメ太=タートル!作る。 窓=フィールド!作る。 窓:動作=「カメ太!(自分!読む) 歩く」。

「動作」

入力

入力

。次 文字

完了 実行

指定

歩数


112 付録 D 標準

、 「縦向 」 「横向 」 呼 「文字消

目盛

表示

「値」

取得

部品

。配置

設定

(指定

縦向 ) 。

指定 、 「文字出 」

ON/OFF

位置

「値? 」

指定

向 設定

。値

範囲

0∼100

、現在

位置

「動作」

定義

実行

、 位置

表示

実行

。次

。文字列

指定

バー=スライダー!作る。 結果=ラベル!作る。 バー:動作=「結果!(自分!値?)書く」。

選択 選択 書

複数

複数回呼

現在選択

項目

候補

選択

選択

文字列