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

または商品名です

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ターン」実行
 」繰り返す
おわりロボット」

ロボ太!転送命令。

演奏


定義命令

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

、現在

位置

「動作」

定義

実行


位置

表示

実行

。次

。文字列

指定

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

選択
選択

複数

複数回呼

現在選択

項目

候補

選択

選択

文字列

何番目

候補

項目

番号

実行

何番目?


取得

表示

。次

実行

候補=選択メニュー!作る。
候補!"最初" 書く "次" 書く "最後" 書く。
実行ボタン=ボタン!"実行" 作る。
実行ボタン:動作=「結果!(候補!何番目?)書く」。
結果=ラベル!作る。

複数

文字列 表示

内容

追加

文字列
。次

。文字列

実行

、番号

、画面

指定

「読

「こんにちは!」

指定

「書

番号


文字列

取得

文字 「いいお天気ですね」

文字 表


窓=リスト!作る。
窓!"こんにちは!" 書く。
窓!"いいお天気ですね" 書く。

保存

D.8

保存
使

最高得点」

使
表示
使

可能

。保存

保存
得点

名 指定

保存

、次回

実行時

、数値、文字列、配列

「今

後 、

保存

D.8

。次


「objfile.txt」

、「得点」、
「名前」、
「友人」

「point」、
「name」、
「friends」
保存

名前

、「得点」

名前

、自由

名前

保存

名前

113

指定

数値、文字列、配列

保存

「得点」

「point」

英語

名前

保存

得点=10。
名前="カメ太"。
友人=配列!"カメ吉" "カメ子" 作る。
ファイル=オブジェクトファイル!"objfile.txt" 作る。
ファイル!"point" (得点)書く。
ファイル!"name" (名前)書く。
ファイル!"friends" (友人)書く。

「objfile.txt」
「friends」

、保存

名前

名前

名前

指定

指定

。次

。取

、「point」、「name」、

、好

名前

使


ファイル=オブジェクトファイル!"objfile.txt" 作る。
点数=ファイル!"point" 読む。
氏名=ファイル!"name" 読む。
友だち=ファイル!"friends" 読む。
リスト!作る(点数)書く(氏名)書く(友だち)書く。

削除
削除
「objfile.txt」

、保存
名前

削除

「値が存在しない」

名前


意味

指定

削除

指定

。次

表示

未定義

ファイル=オブジェクトファイル!"objfile.txt" 作る。
ファイル!"point" 消す。
点数=ファイル!"point" 読む。
氏名=ファイル!"name" 読む。
友だち=ファイル!"friends" 読む。
リスト!作る(点数)書く(氏名)書く(友だち)書く。

、「point」

、「point」

「[undef]」

表示


114 付録 D 標準

操作

D.9
1行

追加書


使

「textfile.txt」
セージ 2」

変数

指定

名前
文字列

、文字列



、読

指定



使

。次

、「メッセージ 1」

「メッ

メッセージ1="こんにちは"。
メッセージ2="カメ太です"。
ファイル=テキストファイル!"textfile.txt" 作る。
ファイル!(メッセージ1)書く。
ファイル!(メッセージ2)書く。

全体
配列

文字列

「textfile.txt」

名前


名 指定

。次

後 、
「内容」


名前 配列

内容=配列!"こんばんは" "カメ吉です" 作る。
ファイル=テキストファイル!"textfile.txt" 作る。
ファイル!(内容)全部書く。

全体


内容 、配列 読 込

名前

名 指定

使

。次
後 、

ファイル=テキストファイル!"textfile.txt" 作る。
内容=ファイル!読む。
ラベル!(内容)作る。


「textfile.txt」
内容 「内容」

名前 配列 読

115

付録 E

命令一覧

主要

• Part VI

E.1

命令、
命令

MYU

関連

機能

、Activity 14

解説

紹介

情報

基本

数値
• 代入式 右辺 、括弧 囲
• 数式 扱

部分

、数値

数式

中置記法

、数値 変換

• 角度

1周

360 度

• 計算

Java

倍精度実数(double) 行

角度

記述

文字列


、一部 関数演算 単精度実数(float) 行

• 定数

、円周率

π 、PI

用意

• 数値演算子「+, -, *, /, %」 、内部的

「add, sub, mul, div, mod」

。論理演算子「==, !=, >, >=, <, <=」 、内部的

命令

「eq, ne, gt, ge, lt, le」

変換


命令 変換

+ , - , *, ×, /, ÷ : 四則演算
(例)
「3 * 40」

計算

「120」

!(3 * 40)作

(add), 引

(sub), 掛

(例)
「3 * 40」

計算

!(3 !

表示

(mul), 割
「120」

40 掛

(div) : 四則演算。命令

表示
)作

使

文字列

場合


%: 余
(例)8

3

計算

!(8 % 3)作

(mod) : 余
(例)8

3

。命令

!(8 !

表示

表示

使

「2」

計算

「2」

3 余 )作 。

== , != , ≠, > , >= , ≦, < , <=, ≧ : 比較演算。両辺 数値
比較

(例)
「4 > 3」

計算

「[true]」

!(4 > 3)作

表示

数値

変換

、数値

116 付録 E

命令一覧
(√)

sqrt:

(例)
「1 +

4」 計算 「3」 表示

!(1 + sqrt(4)
)作

sin , cos , tan: 三角関数
(例)
「sin(30)」

計算

「0.5」

!(sin(30))作

表示

asin , acos , atan: 三角関数 逆関数
(例)
「arcsin(0.5)」

計算

「30」

!(asin(0.5)
)作

表示

round , ceil , floor: 丸 、切 上 、切 捨
(例)
「0.7」

四捨五入

「1」

表示

!(round(0.7))作

exp: 指数関数
(例)
「e0.5 」

計算

「1.6487212」

!(exp(0.5)
)作

log: 底

10

計算

「2」

表示

!(log(100))作

e

対数

(例)
「log 100」

ln: 底

表示

対数

(例)
「ln 100」

計算

「4.6051702」

表示

!(ln(100))作 。
乗。
「2

pow:

3 乗」 「pow(2,3)」

(例)
「23 」

計算

「8」

、「2 ! 3 pow」

表示

注意

!(2 ! 3 pow)作

abs: 絶対値
(例)
「| − 3|」

計算

「3」

表示

!(abs(−3)
)作
乱数, random : 正
(例)1

整数

、実行
表示

!(random(10))作

0

整数

10

(例)0

場合

、実行

整数

。0

(例)整数「5」

表示

!(random(0))作
乱数初期化 : 0 以外

以降

生成

変換

(例)
「10」

。n

2 進表現

乱数系列

2∼16

表示


整数

「1010」

表示

!(10 ! 2 進数)作

0∼1

乱数

乱数初期化(5)

進数: n 進数

実数

!(random(10))作

整数

順序

対応

1∼n

実数

1


毎回同

順序

生成

E.1 基本

117

文字列
• 数値 表 文字列(例:"123.45") 数式 中 使

== , != , ≠, > , >= , ≦, < , <=, ≧ : 比較演算。両辺 数値
比較

以外

(例)
「"b" > "a"」

文字列

計算

比較

「[true]」

!("b" > "a")作

表示

(例)文字列「"カメ太=タートル!作る
太=

! 作

+ : 文字列 連結
(例)2

文字列「"私は"」
連結

(例)3



歩く。"」

100歩

。複数

連結

太" "


「m n 部分」

? : 文字数 返

連結

「"私はカメ太です"」

表示

「"カメ太"」

"! "

!("私

「"です"」

連結

「"私はカメ太です"」

表示

" 連結)作 。
m 文字目

n 文字 取 出

3 文字目

5 文字 切 出 「"カメ太です"」 表示

"! 3 5 部分)作 。

(例)文字列「"はろー"」
!("
? : 文字列 含

計算

「3」

表示

"! 長 ?)作 。
判定

(例)

文字列 入力

場合

(Enter

「こんにちは!」

,

表示

) 押

、文字列 「山」

文字

! 作 。

f=

f:動作=「「(f ! 読 )! "山" 含 ?」!
何文字目? : 文字列

何文字目

調

「f ! "

! " 書

!("私
文字列

指定

"! "

、分割

」実行」。

(例)文字列「"カメ太"」 「"私はカメ太です"」 何文字目 含
分割: 区切

実行

")作 。

文字列

文字列「"私は"」

「"カメ太です"」

(例)文字列「"私はカメ太です"」

、数値

100歩 歩 。" ! 実行。

" + "

!("私
部分: 文字列

場合

!("私
連結: 文字列

文字列

実行

"

変換

実行: 文字列

数値

太" 何文字目?)作

文字列

配列

調 「3」 表示

(例)文字列「"I/am/kameta"」 区切 文字「"/"」 分割 、
「"I"」

「"am"」、
「"kameta"」 要素
配列「結果」

表示

結果="I/am/kameta"! "/" 分割。
!(結果)作

118 付録 E

命令一覧

真偽値

「真(



「偽(

)」

2個

• 論理積(AND) 論理和(OR) 求
「本当」

実行

」[

偽値

指定

場合

。y=

x=

両方

真(

必要

複数


表示

! "全部本当" 作

真(


」実行。

、「"どれか本当"」

表示

!(x)(y)本当」!

反対: 真偽値 反対 値 返

! "

。真偽値 「

本当" 作

」実行。

」 返 、真偽値 「

(例)
「x」

反対

真(

、「"いいえ"」

• 内部

! "

定義


場合

、最後

:

(例)

• 先頭 「|...|」
• 実行



n 回繰 返

実行

! 作

「出力! "


変数


3 回繰 返

実行 、
「こんにちは」

3 回表示

実行


「n」
! 作

「|n| 出力!(n)書



利用

" 書 」! 3回 繰 返 。

(例)実行回数
出力=


「;」

実行

「出力!"こんにちは" 書く」
出力=

何回目

" 作 」実行。

表示

x=

「x ! 反対」!

、「"全部本当"」

。y=

*1

場合

x=

論理和(OR)

!(x)(y)本当」!

(例)変数「x」、
「y」

、真偽値

、論理積(AND)

場合

(例)変数「x」、
「y」


*1 。

• 論理否定(NOT) 、真偽値 「反対」 送
本当:「

用意

」 実体 、


、実行

表示


」! 5回 繰


実行

D.3 節 参照

E.1 基本
: 条件判断 行

,

(例)乱数


場合

「乱数(10)> 5」!
(例)乱数

「乱数(10)> 5」!
間 : 条件

「大吉」

(例)変数「x」

場合

実行

省略可能

」実行。
「まあまあ」

! "大吉" 作 」

間、後

、成 立

表示

! "大吉" 作

場合

」 後

。「

「大吉」

5

実行

5

。条件 成 立

119

表示

! "小吉" 作 」実行。

10 以下 間、「s=s+x。x=x+1」 繰 返 実行

x=1。s=0。
「x <= 10」!

間「s=s+x。x=x+1」実行。

!(s)作
実行 :

(例)

実行

! "

• 一定時間
• 標準

、与

、「0.1 秒」間隔
場合

• 間隔 最小時間

1

• 実行

正確

実行

終了

目安

(例)

実行

時点

並行


実行
実行

(例)繰



「時計」
! 作


間隔

終了

名前

! 作

設定

時計! 1秒 間隔。
回数 : n 回動


時計=

回数

「10 回」
! 作

時計! 10回 回数。

設定


時間

指定

、現在

間隔

実行

場合、

長 時間

回数 実行 、
「時間」

)実行

使


、指定

時間
終了
「待

「1 秒」

10 回繰 返

非同期

時計=

(例)繰

時計=
間隔 : n 秒間隔

使

経過

• 実行 中断 止
: 自分 複製

0.1 秒間隔


「回数」 指定

実行中 、

間隔 変更

。「回数」

、何回目

)。間隔

終了

時間

• 実行

経過

正確
場合

(約 10 秒間
実行

秒(0.001 秒)

場合


回数

。大

命令 実行

実行

、指定

時間

1 秒間

指定

「100 回」繰

場合

、指定
間隔

実行

" 作 」! 実行。

• 回数 回数 指定

終了

「ラベル!"こんにちは" 作る」

実行


実行

120 付録 E

命令一覧

時間 : n 秒間

(例)繰

時間

「5 秒」

時計=

! 作

設定

時計! 5秒 時間。
実行 :

実行

(例)

、「カメ太! 3歩 歩く」

太=

! 作

時計=

! 作

時計!「
何回目

太! 3歩 歩


時計=

! 作

! 作

! 作

時計!「|n|

! 作

時計=

」実行。

「終了!」 表示

。「時計!待つ。」

場合

! 作

時計!「|n| 出力!(n)書

太! 3歩 歩

」実行。

出力! "終了! " 書
中断 : 実行中

実行

(例)中断

中断

実行

太=

! 作

:動作=「時計! 中断」

! "中断" 作

時計=

場合

、次

実行

中断

! 作

行列

中断

中断
出力=

! 作

時計!「|n| 出力!(n)書

太! 3歩 歩

」実行。

配列
• 中 複数

配列

• 長

種類

• 要素 番号

(例)配列


必要
。最初

配列

。要素

配列1 =配列! 作

要素

1 番目

初期値

!(配列1)作

1

: 自分 複製


! 作

出力=

太! 3歩 歩

表示

太=

時計! 待

実行 終
実行中

(例)

実行

!(n)書

:

表示

太=

実行

」実行。

実行

(例)何回目

指定

E.1 基本
(例)文字列「"a"」、
「"b"」

要素

配列1 =配列! "a" "b" 作
!(配列1)作

: 配列

要素

配列1 =配列! "a" "b" 作

配列

追加

、文字列「"c"」

追加

要素

最後

!(配列1)作

。配列

(例)文字列「"a"」、
「"b"」

挿入 : 配列

追加

配列1 ! "c" 書

配列

121


「n obj 挿入」

、n 番目

位置

挿入

obj

。元

n 番目以

(例)文字列「"a"」、
「"b"」

b ]」 表示

要素

配列

、2 番目

位置

文字列「"c"」

追加

。「[ a c

上書

配列1 =配列! "a" "b" 作

配列1 ! 2 "c" 挿入。
!(配列1)作
上書

: 配列

上書


「n obj 上書き」

、n 番目

要素

obj

(例)文字列「"a"」

「"b"」

「"c"」 要素 配列 作 、2 番目 要素 文字列「"d"」 上書
「[ a d c ]」

表示

配列1 =配列! "a" "b" "c" 作
配列1 ! 2 "d" 上書
!(配列1)作

: 配列 要素 返


。要素

整数

1

指定

(例)文字列「"a"」

「"b"」

「"c"」 要素 配列 作 、2 番目 要素 表示

。「b」 表示


配列1 =配列! "a" "b" "c" 作
!(配列1 ! 2 読
要素数? : 配列

要素数

)作

(例)文字列「"a"」、
「"b"」、
「"c"」

要素

配列1 =配列! "a" "b" "c" 作
!(配列1 ! 要素数?)作

: 配列 要素 消

配列

、要素数

表示

。「3」

。指定

配列

削除

配列1 ! "b" 消

: 配列 要素 消


。要素

(例)文字列「"a"」、
「"b"」、
「"c"」

!(配列1)作

。「[ a c ]」

配列1 =配列! "a" "b" "c" 作

位置

(例)文字列「"a"」

「"b"」

「"c"」 要素 配列 作 、値 「"b"」 要素 削除
表示

表示

位置

指定

要素


配列1 =配列! "a" "b" "c" 作
配列1 ! 1 位置

!(配列1)作

配列

削除

、1 番目

要素

削除

。「[ b c ]」

122 付録 E

命令一覧

: 配列 要素

(例)文字列「"a"」、
「"b"」、
「"c"」

要素

配列

実行

要素

配列

要素

削除

。「[ ]」

表示


配列1 =配列! "a" "b" "c" 作
配列1 !

!(配列1)作
実行 : 配列

要素

配列

要素

1個

(例)文字列「"abc"」、
「"d"」、
「"wxyz"」
「|x| 出力!(x !長さ?)書く」
出力=

! 作

。「3」、「1」、「4」

: 配列 各要素 対

?)書

実行

、結果

実行。
「本当」

「| x |(x !長さ?)== 2」

要素

表示

配列

要素

配列

要素

!(配列1 !「| x |(x ! 長

配列

結合

文字列

?)== 2」選


「"こんにちは、カメ太です!"」
配列1 =配列! "

、" "

!(配列1 ! 結合)作


指定

。「[ 東


要素

区切

文字

表示

太" "

! " 作

指定
結合


全体

参照

変数

、他


明示

参照

:」、

省略

「歩幅」

設定

「歩幅」

設定

:歩幅= 30。
(例)
:歩幅= 30。

未定義
• 予期

実行

• 存在

変数

参照

• 命令 正
• 値 未定義

結果

文字列

(例)

「:」

要素
表示

)作

(例)文字列「"こんにちは、"」

「"カメ太"」

「"です!"」 要素 配列 作 、

配列1 =配列! "東京" "北海道" "三重" "鹿児島" 作
各要素

(例)文字列「"東京"」、
「"北海道"」、
「"三重"」、
「"鹿児島"」

結合: 配列

表示

配列1 !「|x| 出力!(x ! 長

京 三重 ]」

要素

3 回繰 返 実行

配列1 =配列! "abc" "d" "wxyz" 作

場合


、未定義
場合


、未定義

、未定義


undef

比較


判別

E.1 基本

保存

• 保存

、再


• 数値、文字列、配列

使

対応

利用


:

(例)
「file1.txt」

使

記録=

書 込
名前

(例)


名前

読 出

「point」

記録=

指定


「記録」

! "file1.txt" 作

: 名前 付

123

名前

「30」

! "file1.txt" 作

保存

点数= 30。
記録! "point"(点数)書

: 名前 指定
(例)

名前

! "file1.txt" 作

得点=記録! "point" 読

: 名前 指定

記録! "point" 消

文字列 読

、全体

配列


、配列
内容

配列

文字列
内容




使
末尾

文字列

「"こんにちは。"」

!(記録! 読

)作


1 行追加

追加

! "text1.txt" 作
。" 書


「記録」

! "text1.txt" 作

指定


記録=
記録! "

記録=
(例)

追加

場合

(例)
「text1.txt」

: 文字列 書 込


文字列

利用

:


。配列

表示

、1 行

名前

! "file1.txt" 作

「point」

記録=

。保存

記録=

(例)

「point」

!(得点)作

124 付録 E
全部書

命令一覧

: 配列 書 込

全体

配列

中身

(例)文字列「"カメ太"」

「"カメ吉"」

「"カメ子"」 要素 配列 作 、


記録=

! "text1.txt" 作

全員=配列! "

太" "

記録!(全員)全部書

: 配列 読 出

)作

子" 作

全体

記録=

、各行

!(記録! 読

情報

)作

配列


表示

!(

利用


:versionstr)作

複数


IP

場合

任意

displayHeight
取得

用意

(例)

情報

• displayWidth

要素

表示

! "text1.txt" 作

全体

(例)

• ipaddress

吉" "

!(記録! 読

1個 返

E.4

、確認

終了

画面

• versionstr:

文字列

• version:

番号

• javavendor: Java
• javaversion: Java
• osname: OS 名
• osversion: OS
• ipaddress: IP
• hostname:

• displayWidth:

実行

• displayHeight:
• memory:

実行

名(

• lang: 言語(
:
(例)

終了
終了
! 終了

(例)

使用量

• user:

終了

終了
!(

真(

指定



。確認
) 終了

表示

E.2

125

E.2

実行時 「startup.ini」
実行

定義


記述

(例)startup.ini

角度(度)

「r2d」

定義

) 実行

。startup.ini

変換


命令

使

「d2r」

利用


角度(度)

変換

定義

// startup.ini

数値:d2r =「
(自分 * PI / 180)


数値:r2d =「
(自分 * 180 / PI)


利用

//
太=

! 作

!(d2r(

(r2d(PI / 6))左回

太! 向

?))作

(startup.ini) 、自分用 命令 揃
便利

使

、作

、教室 授業用 命令 用意

特定

環境

依存

実行

場合

E.3

起動


教室内

、特定

(標準

同一

• 扱

利用

2020) 使

、数値、文字列、論理値、配列


複製

接続 :


接続

、機能

(例)

接続

基本

制限

、一般的


起動

通信



「"localhost"」

指定

IP

自分

! "localhost" 接続。
(例)

接続

IP

! "192.168.1.10" 接続。

: 指定

名前

(例)

「kameta」

名前

「カメ太」

! "localhost" 接続。
太=

! 作

! "kameta"(

: 指定

名前


太)書

(例)


「kameta」

名前

! "kameta" 読

。読

! "localhost" 接続。
吉=


126 付録 E

命令一覧

関係

E.4

座標

画面

。画面

対応

指定

中心

原点

。起動

、画面

位置

X軸

Y軸 表

、横 700 ×縦 500 程度

。向

。座標

右方向

0 度 、左

画面

Y軸
X軸
(0,0)

• 画面 歩 回

。動

• 描

図形

「図形

•「衝突」

軌跡

利用

図形

)。

定義

使

独立

図形

、他
本体

。描

判定

使

実行
場合

。衝突

、図形

• 衝突

1 個目
、自分

、重

•「衝突」 「

:跳

図形

相手

真偽値

代入

、自然

場合、図形

。2 個目


方向

定義
衝突

。衝突


(例)壁

関係

、常

太:衝突=「自分! 150 右回
(例)壁

太:衝突=

•「動作」

定義

: 新

(例)


太=

: 前 進

「カメ太」

100 歩、歩

: 後
(例)



太=

100 歩、戻

! 作

太! 100歩 戻

名前

! 作

太! 100歩 歩

実行


! 作

太=

角度

(例)


、自然

:跳

角度

相手

関係

E.4
右回

: 右 回
(例)


90 度、右 回

太=

: 左 回
(例)

90 度、左 回

: 右

x 歩、上

! 作

太! 90度 左回
(例)


太=

移動

! 作

太! 90度 右回
左回

y 歩動

「右に 0 歩、上に 100 歩」動

太=

! 作

座標

移動


。画面

「(100, 100)」

太=

太! 0 100 移動
位置 : 指定
(例)

127

! 作

中央

座標

中心(0,0)

位置


太! 100 100 位置。

: 向

指定

(例)

。右向

0度

90 度(上方向) 向

太=

! 作

太! 90度 向

: 動

軌跡

(例)


! 作

太!



軌跡

場合 、

切 離


太=

! 作

太!

太! 100歩 歩
太!

画面

! 作

太! 中心
(例)

太! 100歩 歩

中心(「(0, 0)」

太=

: 描 始

: 画面 真 中 戻

(例)

後、線

太! 100歩 歩

軌跡 残

(例)

太! 100歩 歩

中心

左回

太=

: 動

。角度


三角形

太=
太! 100 歩

座標

位置)



2
! 作

後、描

120 右回

100 歩

軌跡 描

128 付録 E
図形

命令一覧

: 軌跡 線 自分

(例)

太=


太=
太! 100 歩
変身

姿
姿

(png, jpg, gif

! 作
拡大

(例)

画像

「縦横 2 倍」

(例)

3 倍、縦

2 倍 拡大

! 作

(例)



: 描 線 太

(例)

(例)

太! 5 線

太! 消

: 画面 現
(例)消

整数



3

設定

! 作


。消

太! 現

画面

。m, n

。描
太=

「5」

! 作

拡大

設定

太=

: 姿 消

色 100 歩

太! 100 歩

「緑」

! 作

太!(緑)線

太=

整数

太! 3 2 拡大

。n

、「横に m 倍、縦に n 倍」

色: 描

n 倍 拡大

太=

「m n 拡大する」

変更

拡大

! 作

太! 2 拡大

本体(dolittle.jar)


「n 拡大する」

太=

「"tonbo.png"」

太! "tonbo.png" 変身

:

名前

。画像

太=
拡大

「三角」

100 歩 。


図形

120 右回


(例)

太!(黄)図形

:

100 歩 。

黄色

! 作

三角=

名前

120 右回

太! 図形

指定


「三角」

! 作

三角=

図形

図形

太! 100 歩

(例)

姿
画面


表示

使

。「消える」

実行

関係

E.4
円 : 指定

半径

(例)

*2 。大

半径 100

太=

! 作

場合

右側

、負

場合

129
左側

太! 100 円。
角形 : 正 n 角形


「m n 角形」 、1 辺

。図形
(例)

右側

右側

1辺

太=

m

、辺

三角形 、左側

100

! 作

図形(正三角形、正方形、正五角形

m
1辺

100

左側
五角形


太! 100 3 角形。
太! −100 5 角形。

? :

(例)上

調

。右向

太=

!(

太! 100 歩
!(

(例)

位置?)作

太! 30 左回
!(



「50」

! 作

太! 100 歩

Y 座標 表示

太=

表示

Y 座標 調

太! 横

位置? :



「50」

! 作

太! 60 左回

表示

?)作 。

X 座標 表示

太=

。「90」

左回

X 座標 調

。角度

太! 向

位置? :
(例)

表示

! 作

太! 90 左回

0度

表示


太! 縦

位置?)作

図形

図形

独立

図形

• 図形 画面 上 移動

回転

• 他

「衝突」

実行

•「動作」

定義

: 自分 複製

(例)
「三角形」
太=
三角形=「

図形

複製

実体

36 角形

、画面上

移動

太! 100 歩

三角形2 ! 150 0 移動

実行

「三角形2」

三角形2 =三角形! 作

*2

! 作

120 左回 」!3 繰 返 (赤)図形 作 。


) 描

130 付録 E
右回

命令一覧

: 右 回

(例)三角形

10 度、右 回

太=

! 作

三角形=「

: 左 回

10 度、左 回

太=
三角形=「

太! 100 歩

x 歩、上

(例)三角形

! 作

三角形! 10度 左回

: 右

「右に 0 歩、上に 100 歩」動
! 作

三角形=「
座標

太! 100 歩

120 左回 」!3 繰 返 (赤)図形 作 。

移動

。画面

「(100, 100)」

太=

! 作

三角形=「

三角形! 0 50 移動
(例)三角形

120 左回 」!3 繰 返 (赤)図形 作 。

y 歩動

太=

位置 : 指定

120 左回 」!3 繰 返 (赤)図形 作 。

(例)三角形

移動

太! 100 歩

三角形! 10度 右回
左回

中央

座標

中心(0,0)

位置


太! 100 歩

120 左回 」!3 繰 返 (赤)図形 作 。

三角形! 100 100 位置。

: 自分 中 色 塗

。色 色

括弧 囲

。色 省略


(例)三角形

「青」

太=
三角形=「

! 作

: 自分

n倍

(例)三角形

縦横

「縦横 2 倍」
! 作

! 作

: 画面

(例)三角形

120 左回 」!3 繰 返 (赤)図形 作 。

2 倍 拡大

太! 100 歩

三角形! 3 2 拡大

x倍y倍

3 倍、縦

太=
三角形=「

拡大

太! 100 歩

三角形! 2 拡大
(例)三角形

120 左回 」!3 繰 返 (赤)図形 作 。

太=
三角形=「

太! 100 歩

三角形!(青) 塗
拡大

120 左回 」!3 繰 返 (赤)図形 作 。


画面

太=
三角形=「
三角形! 消


! 作


太! 100 歩

120 左回 」!3 繰 返 (赤)図形 作 。

線 色 塗

関係

E.4

: 画面 現

。消

(例)消
? : 向

三角形 画面

三角形! 現

姿

調

表示

。「消える」

実行


。右向

(例)三角形

使

131

0度

表示

太=

。「90」

! 作

三角形=「

。角度

表示

太! 100 歩

三角形! 90 左回

左回

120 左回 」!3 繰 返 (赤)図形 作 。

!(三角形! 向

?)作 。

画面
• 実行画面 表

: 画面 背景 色 塗
(例)画面

背景

「水色」

画面!(水色)塗
方眼紙: 画面

方眼紙

罫線


表示

。色

指定

罫線

変数

用意

。色

指定

(例)画面

「緑」

罫線

表示

画面!(緑)方眼紙。
(例)画面

罫線

画面! 方眼紙。
幅? : 画面

(例)画面

横幅

表示

!(画面! 幅?)作

? : 画面

(例)画面



表示

!(画面! 高

?)作


• 色 表

使

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

• 複数 色 混 合

: 三原色 指定


使

。赤緑青

(例)
「赤が 255、緑が 136、青が 255」
=色! 255 136 255 作
画面!(

三原色

2 桁 指定


0∼255



指定

)方眼紙。

16 進法 文字列 指定
。1 桁

場合

(例)
「赤が#FF、緑が#88、青が#FF」
=色! "#F8F" 作

。赤、緑、青
文字

2 個並

2 桁 意味


1桁

132 付録 E

命令一覧

画面!(

)方眼紙。

(例)
「赤が#FF、緑が#88、青が#FF」

=色! "#FF88FF" 作
画面!(

緑色

緑=緑! 暗

緑)方眼紙。

: 色 明
(例)暗

。暗

緑=濃

半透明

緑! 明

! 作

30 円(新

色)図形

! 0 2 移動

」実行。

2個

•「光」 、光 重

: 複数 色 混
「緑」

用意

色(加法混色)

•「絵具」 、絵 具 重

「緑」

色)塗
絵具
色)塗




色=絵具!(赤)(緑)混

画面!(新

色(減法混色)

色=光!(赤)(緑)混

画面!(新

半透明

「光」
「絵具」

(例)
「赤」

実行

• 色 混 合

色=青! 半透明

! 作

(例)
「赤」



。裏側

緑)方眼紙。

画面!(水色)塗

。「暗くする」

: 色 半透明

(例)青

画面!(明
半透明

画面!(濃

)方眼紙。

: 色 暗
(例)暗

E.5 GUI

133

E.5 GUI
• 画面 情報 表示

、大

• 位置 指定

対話的

位置

場合

、直前

実行

共通
。次

位置 : 表示位置

移動

命令

、画面

使

配置

、画面

実行


右端
環境



対応

。「ボタン 1」

! "ABC" 作

指定


指定

Macintosh

1行 続

1=

右隣

「位置」

位置 指定

GUI

左端

背景色(塗

• 以下 、GUI


「大きさ」

• GUI

操作

GUI

名前

実行

(例)

画面

「(100, 100)」

座標

位置

1 ! 100 100 位置。
移動

: 右

x 歩、上

y 歩動

(例)

画面


「右に 0、上に 100」

1 ! 0 100 移動

: 大

指定

「横 100、縦 50」

1 ! 100 50 大
調

横幅
!(

? : 高

調

表示

1 ! 高 ?)作 。

文字 大

(例)

: 色 指定

表示

共通


!(

: 表示

指定

表示

文字

1 ! 16 文字

。色

。標準
「16」

三原色

設定

1 !(水)塗 。
(例)

設定

1 ! 255 128 255 塗 。
(例)

設定

1 ! "#FF88FF" 塗 。
(例)

24

以外

GUI


(例)

1 ! 幅?)作 。

(例)
文字

(例)

(例)
幅? : 横幅

設定

1 ! "#F8F" 塗 。

設定

指定


以外

GUI

共通

134 付録 E

命令一覧

文字色 : 文字

共通

指定

。色

三原色

指定

以外

GUI

(例)

文字色

設定

1 !(緑)文字色。
(例)

文字色

設定

1 ! 0 128 0 文字色。
(例)

文字色

設定

1 ! "#008800" 文字色。
(例)

文字色

設定

1 ! "#080" 文字色。

: 画面

(例)

画面

1! 消

: 画面 現

。消

姿

(例)消

使

画面

1! 現

• 画面 表示

表示

。「消える」

。初期
実行

! "挨拶" 作

1:動作=「

実行

! "

" 作 」。

生成時

指定

• 以下 「作る」以外 例
: 自分 複製

150×45

動作

1=

GUI 部品

(例)


「ボタン1」

実行

。1 個目

表示

指定


(例)
「実行」

1=

! "実行" 作

1:動作=「

! "

" 作 」。

2 個目
一覧」

指定
参照

(例)上向

。次

: 文字 読
(例)

1=

! "実行" "UP" 作


文字列
!(

: 文字 書
(例)

上向

矢印

1:動作=「

矢印

実行

! "

" 作 」。


表示

1 ! 読 )作 。


「あいうえお」

1! "

文字

" 書 。

文字列

E.6 節 「
動作

実行

E.5 GUI

• 画面 表示

GUI 部品
(Enter

。文字

,

• 以下 「作る」以外 例

: 自分 複製


表示

!(

文字

使

。中


GUI 部品

、表示

: 自分 複製

(例)

実行

! "

" 作 。

「かきくけこ」

文字

GUI 部品

。行単位

「リスト1」


1=
。新

複数

文字列


! 作

追加


文字列

" 書 。

。初期

「"あいうえお"」

1! "

" 書 。

• 以下 「作る」以外 例

: 文字 書

設定

文字列 入

1

• 画面 表示

(例)

自動的

1! "

: 自分 複製

表示


「ラベル1」

1=
: 文字 書

。文字

文字列

(例)
「あいうえお」

(例)

文字

" 書 。

• 以下 「作る」以外 例

• 画面 表示

指定

「あいうえお」

1!

(例)

実行

1! "

• 大

1 ! 読 )作 。

(例)

: 空

150×45

実行

初期値
! 作

文字

: 文字 書

。初期

(例)

使

1=
: 文字 読

入力
動作

「フィールド1」

(例)

表示

135

追加

実行

150×90

136 付録 E

命令一覧

: 文字 読

(例)

。行

1

整数

1 個目 要素 読
!(

: 空

指定

1 ! 1 読 )作 。

(例)

要素

1!

削除

選択
• 画面 表示

GUI 部品

。選択肢 表示 、

• 以下 「作る」以外 例

: 自分 複製


「メニュー1」

(例)選択


文字列

:

! 作

(例)選択

。新

「+」
番号

(例)選択

文字列

(例)

整数

0∼100


番号

。値 変

実行

指定

実行

! 作

実行

増加

指定
参照

! "LEFT" "RIGHT" 作
。0∼100
表示
! 作

1:動作=「

。次

操作

1=

一覧」

矢印

実行


動作

E.6 節 「

1=

減少

(例)

実行

」実行。

整数

指定

1=

300×45


「スライダー1」

(例)左右

1

範囲 値 変

文字列

太! 100 歩

。「書く」

生成時

値? :

。「書く」

。初期

• 以下 「作る」以外 例

(例)

1 ! 1 読 )作 。

GUI 部品

: 自分 複製

追加

、「カメ太! 100 歩く」

• 画面 表示

追加

選択肢

1 個目 選択肢 文字 読

"−" 書 。

1

!(

選択肢

1 ! 何番目?) == 1」!

:

150×45

1 個目 選択肢 選


実行

「-」

1 ! "+" 書
何番目? : 選

。初期

1 =選択

選択


1 !(

1 ! 値?)書 」。


左右

矢印

E.6
値:

設定

(例)

「50」

。0∼100
設定

指定

一覧

137

1 ! 50 値。
横向

: 横長

(例)

横向

1 ! 横向 。
縦向

: 縦長

(例)

縦向

1 ! 縦向 。
文字出

: 目盛

表示

(例)

。10

目盛

目盛

表示

表示

1 ! 文字出 。
文字消

: 目盛

表示

(例)

目盛

1 ! 文字消 。

一覧

E.6

GUI 部品

文字

、各種

操作
共通

英字

"A", "B", ..., "Z"

数字

"1", "2", ..., "0"

使

"F1", "F2", ..., "F12"
(ESC)
(−)

"ESCAPE"
"MINUS"

(¥)

"BACK_SLASH"

括弧([)

"OPEN_BRACKET"

括弧(])

"CLOSE_BRACKET"

(;)
(,)

"SEMICOLON"
"COMMA"

(.)
(/)
(ENTER)

"PERIOD"
"SLASH"
"ENTER"

(HOME)

"HOME"

(END)

"END"

(PageUp)

"PAGE_UP"

(PageDown) "PAGE_DOWN"
上(↑)

"UP"

下(↓)

"DOWN"

左(←)

"LEFT"

右(→)

"RIGHT"

一覧

138 付録 E

命令一覧

音楽

E.7

• 音階

旋律

。"

• 以下 「作る」以外 例

: 自分 複製

名前

∼" 作

「オルガン」

追加

。音符

音符

楽器

設定

(例)

文字列

指定
音符

1! "

∼" 追加。

2

1

音符

2 !(
追加

" 作 )設定。

「"ドレミ∼"」

1

追加

追加

1)追加。

(例)

4 拍 休符

2

(例)

1

2 回繰 返

2 !(

2=
音階

(例)

追加


1 ! −12 音上

2=
演奏

(例)

音符

1 ! 2 繰 返 )追加。

n 音上

音程

1

1)追加。

2

:

追加

1

2 ! 4 無音(
: 繰 返

演奏 :

「"ドレミ∼"」

! "

1

(例)

音上

1 !(楽器! "

実行

(例)

表現

! 作

1=

無音 : 休符

(例)
「メロディ1」

追加 : 音符

文字列

名前

1=

設定

、分

「メロディ1」

(例)
「メロディ1」

設定 : 楽器

∼"


演奏

1

1 ! 演奏。

: 演奏 終

(例)


演奏

1

1! 待 。
音符

:
(例)

1!

,

,

,

(例)
#: 半音上
(例)

,

,

,

、次

,

1! "
。直前

文字列

,

音符

1

,

表記

,

使

,

,

" 追加。
音階

1! " #

半音上

" 追加。

,

,

,

, C, D, E, F, G, A, B: 音階 表

E.7 音楽
♭ (%): 半音下

。直前

(例)

音階

1! "

↑, ^ :

(例)

♭" 追加。

以降

音階

1

「"ドレミファソラシ^ドレミ"」

1

音階

半音下

139

追加

。最後

「"ドレミ"」

1! "
↓ , _:

(例)

" 追加。

^

以降

音階

1

「"ド_シラソファミレド"」

1

追加

。最後

「"ド"」以降

音階

1! " _

" 追加。

・: 休符
(例)

1 ! " ・ ・ " 追加。

∼ (-): 長音。前

(例)

1 拍延

1! "

∼" 追加。

. : 長音。前 音 半拍延
(例)

1! "

&,1,2,4,8,16: 長

." 追加。

指定

音符

。"

4

1! "

{...}: 三連符。3 個 音
(例)

4

2 拍 演奏

1 ! "{

• 和音 表

文字列

指定

記述


「コード1」

名前

1=

付点 4 分


追加


「"CCD"」

! "CCD" 作
「オルガン」
。音符

(例)

1

(例)

2

音符

楽器

設定
指定

音符

追加

1 ! "CCD∼" 追加。
2 !(
追加

音符

追加

1)追加。

2

4 拍 休符

2 ! 4 無音(

" 作 )設定。

文字列

「"CCD∼"」

1

1

実行

1 !(楽器! "

(例)

8 分音符、

名前
! 作

(例)
「コード1」
設定

1=

無音 : 休符

4 分音符、

}8" 追加。

(例)
「コード1」

(例)

。全体

。"CCD∼"

: 自分 複製

追加 : 音符

4&8" 追加。

8

• 以下 「作る」以外 例

設定 : 楽器

4&8"

(例)

8

1

追加

1)追加。

140 付録 E

命令一覧

: 繰 返

(例)

2

2 !(

音階

:
(例)


1 ! −12 音上

2=
演奏

(例)

追加

1 ! 2 繰 返 )追加。

n 音上

音程

1

演奏 :

2 回繰 返

1

2=
音上


演奏

1

1 ! 演奏。

: 演奏 終

(例)

演奏

1

1! 待 。
: 追加

(例)

1
1!

文字列

(例)


、次

表記

A , B , C , D , E , F , G:

使

1 ! "CCG" 追加。
修飾

m, 7:

(例)

使

1 ! "CCmC7Cm7" 追加。

#: 半音上

。直前

(例)

音階

半音上

1 ! "C # CD" 追加。

♭ (%): 半音下

。直前

(例)

音階

半音下

1 ! "CCD ♭" 追加。

↑, ^ :

1

「"C^CD"」

(例)

以降

音階

追加

1

。最後 「"CD"」

音階

1 ! "C^CD" 追加。
↓ , _:

(例)

1

以降

「"C_CD"」

音階
追加

1
。最後

「"CD"」

音階

1 ! "C_CD" 追加。p
・: 休符
(例)

1 ! "C・C・D" 追加。

∼ (-): 長音。前
(例)

1 拍延

1 ! "CCD∼" 追加。

.: 長音。前 音 半拍延
(例)

1 ! "CCD." 追加。

&,1,2,4,8,16: 長

指定

。"C4D8E4&8"

、C


(例)

1 ! "C4D8E4&8" 追加。

{...}: 三連符。3 個 音
(例)

2 拍 演奏

1 ! "{CDE}8" 追加。

。全体

指定

4 分音符、D

8 分音符、E

付点 4 分音符

E.7 音楽

楽器

演奏

• 楽器 設定

。"

楽器

同時

• 以下 「作る」以外 例

: 自分 複製


「ドラム1」

1

(例)

1


指定

音符

追加

" 追加。
音符

1

追加

実行

「"ドツタツ"」

2 !(
(例)

文字列

1! "

無音 : 休符

! 作
。音符

(例)

1=

表現

演奏

名前

追加

文字列
。単独

演奏

(例)
「ドラム1」
追加 : 音符

、分

"
演奏

141

追加

1)追加。

4 拍 休符 追加

2

1 ! 4 無音。

: 繰 返

(例)

2

2 !(

2=
演奏 :

演奏

(例)

2 回繰 返

1

音符

追加

1 ! 2 繰 返 )追加。


演奏

1

1 ! 演奏。

: 演奏 終
(例)


演奏

1


1! 待 。
: 追加

(例)

音符

1


1!

楽器設定 : 音符 楽器 対応 設定
設定

。楽器 楽器名 文字列

楽器番号 指定

。複数 楽器

(例)

1

「"ド"」

「"手拍子"」

楽器

設定

1 ! " " "手拍子" 楽器設定。
(例)

1

「"ド"」

「36」番

楽器

設定

1 ! " " 36 楽器設定。
(例)

1

「"ドタツクチパ"」 、

1! "

(例)

, ( ):

" 35 38 42 44 46 49 楽器設定。

文字列
! 作

「35, 38, 42, 44, 46, 49」番 楽器 設定

、次

表記

使

。楽器

割当

「楽器設定」

・" 追加 演奏。

"
半拍

, ( ):

半拍

, ( ):


半拍

変更

142 付録 E

命令一覧

, ( ):

, ( ):


, ( ):

・: 休符。1 拍休


4

8

「楽器設定」

2 拍 演奏
使

番号

2
1

。全体

1
2
2
1
2
1
2
1
1

指定

、次

使

名前

番号

51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66

手拍子

、最初

4 分音符、次

楽器名 楽器番号

名前

4&8"

付点 4 分音符

{...}: 三連符。3 個 音

35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50

。"

8 分音符、最後

番号

半拍長

&,1,2,4,8,16: 長

半拍

半拍

): 長音。前

半拍

1

名前

67
68
69
70
71
72
73
74
75
76
77
78
79
80
81

2
2

楽器

演奏

楽器

• 以下 「作る」以外 例

: 自分 複製


「ピアノ1」

(例)
「ピアノ1」

名前

設定

(例)
「ピアノ1」

「メロディ1」

1 !(

設定

1)設定。
「コード1」

1 !(
演奏

" 作 。

設定 : 演奏
(例)
「ピアノ1」

楽器

1 =楽器! "

演奏 : 楽器

設定

1)設定。

(例)
「ピアノ1」

演奏

1 ! 演奏。

: 演奏 終

(例)
「ピアノ1」


演奏

。値

0∼127

1! 待 。
音量 : 音

設定

(例)
「ピアノ1」

「127」

、標準
設定

95

実行

E.7 音楽
1 ! 127 大
• 楽器名 楽器番号
番号

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43

、次

使

名前


番号





44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86

名前

番号



尺八

87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128

名前

三味線

太鼓

143

144 付録 E

命令一覧

• 複数 楽器

/

: 自分 複製

/

(例)
「マイバンド」


設定

/

「ピアノ1」

!(

実行


! 作

楽器/

演奏

名前

演奏 :


「マイバンド」

(例)
「マイバンド」
追加 : 演奏

演奏

/

• 以下 「作る」以外 例

楽器


追加

1)追加。

(例)
「マイバンド」

演奏

! 演奏。

: 演奏 終

(例)
「マイバンド」

演奏

! 待

(楽器/

:
(例)
「マイバンド」

追加

: 演奏

速度

/

/

楽器/

/

演奏

! 100

。標準
速度

88
「100」


設定


/

指定

(例)
「マイバンド」

145

索引

!, 3, 77, 90
!=, 92, 107, 115, 117
≠, 115, 117
*, 92, 107, 115
×, 107, 115
+, 92, 107, 108, 115, 117
-, 92, 107, 115, 139, 140
∼, 139, 140
., 139, 140
・, 139, 140
/, 92, 107, 115
÷, 107, 115
:, 90
<, 92, 107, 115, 117
<=, 92, 107, 115, 117
≦, 115, 117
=, 3, 89
==, 92, 107, 115, 117
>, 92, 107, 115, 117
>=, 92, 107, 115, 117
≧, 115, 117
#, 138, 140
♭, 139, 140
%, 92, 107, 115, 139, 140
&, 139, 140
_, 139, 140
^, 139, 140
↑, 139, 140
↓, 139, 140
2 軸制御, 69
3 軸制御, 69
4 分音符, 139, 140, 142
8 分音符, 139, 140, 142
abs, 107, 116
acos, 116
add, 115
AND, 109, 118
asin, 116
atan, 116
ceil, 116
cos, 107, 116
CPU, 88
displayHeight, 124
displayWidth, 124
div, 115
DOWN, 26, 137
exp, 116
floor, 116
GUI 部品, 10, 14, 111
hostname, 124

ipaddress, 124
IP
, 50
Java, v
javavendor, 124
javaversion, 124
lang, 124
LEFT, 22, 137
ln, 116
localhost, 50
log, 116
Macintosh, iv, 133
Macintosh 版, v
memory, 124
MIDI 音源, 36
mod, 115
MYU
, 71
MYU 構造化命令, 69
MYU
, 69, 115
NOT, 109, 118
OR, 109, 118
osname, 124
osversion, 124

π , 115
PI, 115
PIC, 69
pow, 116


, 12, 132
値, 137
値? , 112, 136
余 , 115

, 128, 131, 134
歩 , 3, 126

, 27, 109, 118
位置, 10, 11, 14, 127, 130, 133
位置 消 , 99, 121
移動
, 11, 14, 96, 127, 130, 133
色, 12, 109, 131
変数, 103
版, iii

, 89
上書

, 99, 121

絵具, 12, 132
選 , 122
円, 129
円周率, 115
演奏, 36, 138, 140–142, 144

, 14, 133
, 139, 140
音上
, 138, 140
, 2, 89
指向言語, 89

, 112, 123
親子関係, 101

, 40
, 71, 72

random, 116
RIGHT, 22, 137
round, 107, 116

音階, 138

server, 65
sin, 107, 116
sqrt, 107, 116
startup.ini, 125
sub, 115

改行, 104
回数, 18, 96, 119
外部
, 69
書 , 51, 99, 112, 113, 121, 123, 125,

tan, 107, 116
undef, 57, 113, 122
UP, 26, 137
user, 124
version, 124
versionstr, 124
Web
, iv
Windows, iv
Windows 版, v
青, 12, 109, 131
赤, 12, 109, 131

版, iii
音量, 142

134–136
拡大
, 128, 130
拡張 BNF, 104

, 115

, 4, 30, 91
楽器, 40, 142
楽器設定, 141
角形, 129
加法混色, 12, 132
画面, 124, 131
画面 座標, 126
間隔, 18, 96, 119
偽, 109, 118
黄色, 12, 109, 131

, 24, 128, 130, 134
休符, 139, 140

146 索引

構造, 38

空白, 3, 7, 8, 104

, 12, 132

, 122, 135, 136, 138, 140, 141, 144
繰 返 , 6, 17, 38, 73
繰 返 脱出, 72, 73, 75
繰 返 , 72, 75, 93, 118, 138, 140, 141
黒, 12, 109, 131
変数, 102
消 , 121, 123
結合, 122
減法混色, 12, 132

, 115

, 69
縦 位置? , 129
縦向 , 137
, iv

, 36, 139
&
, iv
, 86, 106
, 89
名, 50

, 26, 127
方眼紙, 26, 131

, 10, 14, 17, 37, 90, 111, 134
本当, 109, 118


停止, 72, 75

, 140
, 132
, 18, 19, 98, 120, 138, 140–142, 144

, 114, 123
, 8, 86
電子音, 75
, 144
同期, 19
動作, 14, 111, 126, 129, 134–136
時計, 17

, 127

時間, 18, 96, 119, 120
識別子, 105
字句, 104

, 124
実行, 18, 92, 94–96, 117, 119, 120
実行画面, iv
実行時
,8
実行脱出, 75
実行
, iv, 2
終了
, 124
条件式, 39
衝突, 24, 26, 126, 129

, 22, 134, 136, 137
白, 12, 109, 131
真, 109, 118
真偽値, 109, 118
進数, 116

&
, iv
, 36, 43, 141
言語, 89
Web
, iv
, 109, 118
長 ? , 117
名前, 3, 89, 105

, 95, 119
何番目? , 112, 136
何文字目? , 117
入力

数値, 105, 107, 112, 115
図形, 10, 110, 126, 129
図形 作 , 10, 128

, 72, 75, 76
, 11, 14, 130, 131, 133

間, 75, 94, 119

, 125

, 27, 109, 118
配列, 44, 99, 112, 120

, 69
, 112, 136
, 19, 97
接続, 51, 125
設定, 40, 138, 139, 142
前進, 72
選択
, 37, 112, 136
線 色, 128
線 太 , 25, 60, 128

, 109, 118
全部書 , 124
旋律, 36

, 71, 72
跳 返 , 26, 126
幅? , 131, 133
, 3, 39, 90
, 12, 132
, 72
半音, 138, 140
反対, 109, 118
, 36, 141, 144
半透明
, 132
半拍, 141
, 36

, 95, 119
挿入, 121
束縛, 102
実行, 100, 122

, 2, 3, 109, 110, 126
,2
代入, 89

, 96, 119
, 17
逐次実行, 31
? , 131, 133

, 127
編集画面, iv, 2
変身
, 23, 128
変数, 3, 38, 89

120, 123, 126, 129, 131, 134–136,
138, 139, 141, 142, 144

, 50, 125
三原色, 12
三連符, 139, 140, 142

文, 2, 90
分割, 117
文法
,8

, 52
注釈, 106
中心 戻 , 127
中断, 119, 120
中置記法, 91, 115
長音, 139, 140, 142
追加, 36, 138, 139, 141, 144
次 行, 133
作 , 2, 3, 11, 14, 101, 111, 112, 114, 119,

後退, 72

, 5, 6, 39, 44, 75, 76, 92, 106, 118
, 2, 101
, 89

光, 12, 132
引 , 115
左回 , 3, 11, 72, 127, 130

右回 , 3, 11, 72, 127, 130
水色, 12, 109, 131
未定義, 57, 101, 113, 122
緑, 12, 109, 131
無音, 39, 138, 139, 141
向 , 127
向 ? , 129, 131
無限
, 73
紫, 12, 109, 131
命令, 2, 6

, 97
, 3, 6, 14, 90
送信, 90
, 69
, 36, 138
, 36
文字消 , 137
文字
, 133
文字色, 14, 134
文字出 , 137
文字列, 90, 105, 108, 112, 117
戻 , 126
定義命令, 77, 79
要素数? , 99, 121
横 位置? , 129
横向 , 137
読 , 51, 99, 121, 123–125, 134–136

, 111, 135
乱数, 23, 26, 40, 107, 116
乱数初期化, 116

, 112, 135
, 52, 56, 111, 135
, 75, 76
, 15, 101, 122
連結, 117

, 32, 37, 111, 135
含 ? , 108, 117
付点 4 分音符, 139, 140, 142
部分, 108, 117
, 88
言語, 88
言語処理系, 89
, 88

変数, 92, 103
論理積, 118
論理否定, 118
論理和, 118
和音, 139
割 , 115

147

【著者紹介】
兼宗 進
1963 年東京生まれ。87 年千葉大学工学部電子工学科卒業、89 年筑波大学
大学院理工学研究科修士課程修了。企業勤務ののち、2004 年筑波大学大学
院ビジネス科学研究科博士課程修了、博士 ( システムズ・マネジメント ) 。
2004 年より一橋大学総合情報処理センター准教授。
主な研究対象分野はコンピューター教育。教育用プログラミング言語「ドリ
トル」の開発も手がける。
久野 靖
1956 年生まれ。81 年東京工業大学理工学研究科情報科学専攻修士課程修了。
84 年同博士課程単位取得退学。同年同大学理学部情報科学科助手。89 年筑
波大学講師。助教授を経て、2000 年より筑波大学大学院ビジネス科学研究
科教授。理学博士 ( 東京工業大学 )。
主な研究分野はプログラミング言語、ユーザインタフェース、情報教育。著
書に「言語プロセッサ」「UNIX の基礎概念」「入門 JavaScript」などがある。

ドリトルで学ぶプログラミング 
ーグラフィックス、音楽、ネットワーク、ロボット制御ー
2008 年 9 月 20 日 初版第 1 刷 発行
著 者

兼宗 進、久野 靖

発行人

原 久太郎

発行所

株式会社イーテキスト研究所
〒113-0033 東京都文京区本郷 5-1-16
Tel 03-3815-3037 Fax 03-3818-1219
http://www.etext.jp

印刷所

株式会社加藤文明社
ISBN 978-4-904013-02-1
装丁 林 健造

Master your semester with Scribd & The New York Times

Special offer for students: Only $4.99/month.

Master your semester with Scribd & The New York Times

Cancel anytime.