マインクラフト・プログラミング入門
第3回 ロボットに仕事をさせよう☆エージェント入門☆エージェントに建築させる [ くりかえしと条件分岐 ]☆畑を耕す☆木こりをさせる☆ダイヤモンドを採掘（マイニング）させる☆ピラミッドを作る

2018.08.24
鎌倉シチズンネット（KCN）© 2018-2018 Kamakura Citizens Net All rights reserved1エージェント入門 (1)(1) エージェントとはエージェントはあなたの指令どおりに動くロボットで、いろいろなことをしてくれます。エージェントの大きさは1ブロックです。

2エージェント入門 (2)(2) エージェントのテレポート
エージェントをプレイヤーの位置に戻すには次のようにします。

(3) エージェントの移動と方向転換

3エージェント入門 (3)(4) エージェントの持ち物
エージェントを右クリックすると、エージェントとプレイヤーの持ち物画面（下図）が開きます。プレイヤーのアイテムスロットをクリックしてから、エージェントのアイテムスロットをクリックするとエージェントに持ち物を渡すことができます。

エージェントの持ち物
左上がスロット番号1、その右が24エージェント入門 (4)(5) 練習問題1
エージェントを上に移動するチャットコマンド up と、下に移動するdown を作ってみよう。
(6) 練習問題2
エージェントを4ブロック前進させ、右に向かせて6ブロック後退させるチャットコ
マンド fd4rtbk6 を作ってみよう。

5エージェントに建築させる (1)(1) エージェントに建築をさせよう（クリックすると動画が見れます）
6エージェントに建築させる (2)(2) エージェントを自分（プレイヤー）の位置にもどす
チャットコマンド tp ( teleport ) を作成する。

(3)エージェントを「動きながら置く」設定にする
チャットコマンド pd ( pen down ) を作成する。

7

エージェントに建築させる (3)(4) エージェントに「石」を持たせる
エージェントを右クリックすると、エージェントとプレイヤーの持ち物画面（下図）が開きます。プレイヤーのアイテムスロットをクリックしてから、エージェントのアイテムスロットをクリックするとエージェントに持ち物を渡すことができます。

エージェントの持ち物
左上がスロット番号1、その右が28

エージェントに建築させる (4)(5) エージェントを3ブロック前進させる
チャットコマンド fd ( forward ) を作成する。

(6) マインクラフトで確認する
これまでに作成したコマンドを入力し、 動きを確認します。
① tp コマンド② エージェントに「石」を持たせる③ pd コマンド④ fd コマンド9エージェントに建築させる (5)(7) 四角形を作る
チャットコマンド square を作成する。

実行してみると、最後のブロックが置かれません。
10エージェントに建築させる (6)(8) 最後のブロックも置けるようにする
最後は前にブロックがあるので、上に移動します。

11エージェントに建築させる (7)(9) square の実行結果です。

12エージェントに建築させる (8)(10) くりかえし（ループ）を使う
くりかえしの中にくりかえしを入れる（入れ子）。

13エージェントに建築させる (9)(11) 注意！
 エージェントが進む方向にブロックがあるとエージェントは先に進めません。
ただし、水や溶岩などプレイヤーが進めるブロックのときはエージェントも進めます。
 エージェントはほかのブロックがある場所にはブロックを置けません。エー
ジェントにほかのブロックを破壊させると置けるようになります。
 エージェントがプレイヤーから64ブロック以上離れると「エージェントが範囲外です」というエラーになります。このエラーになるときは、プレイヤーをエージェントに近づけてから続きを行います。

14

畑を耕（たがや）す (1)(1) 畑を耕す

15

畑を耕（たがや）す (2)(2) チャットコマンド tp と farm を作成します。

16

畑を耕（たがや）す (3)(3) 練習問題1 隣のもう1列も耕そう
ヒント： 6回の繰り返しを、2回繰り返します。

17

畑を耕（たがや）す (4)(4) 練習問題2 エージェントに種まきをさせよう
エージェントの持ち物スロット（左上）に種を入れておきます。

18

畑を耕（たがや）す (5)(5) 練習問題1 解答

19

畑を耕（たがや）す (6)(6) 練習問題2 解答

20

木こりをさせる (1)(1) エージェントに木こりをしてもらいます。
①プレイヤーを木の根元に移動させます。
②エージェントをプレイヤーのところにテレポートさせます。
③エージェントの前にブロックがあるとき、エージェントの上にあるブロックを壊し、1ブロック上に移動させます。前にブロックがなくなるまで、この処理を続けます。
④エージェントの前にブロックがあるとき、そのブロックを壊し、1ブロック下に移動させます。エージェントが元いた場所に戻るまで、この処理を続けます。

21

木こりをさせる (2)(2) チャットコマンドの作成①エージェントの移動や方向転換のためのチャットコマンドを用意します。

エージェントが木の幹の正面を向くように、lt コマンドで調整します。
②木の高さを記録するための変数 height を作成します。

22

木こりをさせる (3)(3) 木の幹を切るチャットコマンド chop の作成

23

木こりをさせる (4)(4) マインクラフトの操作① ワールドを「無限」で作成します。
② プレイヤーを木の根元に移動させます。
③ チャットコマンド tp でエージェントをプレイヤーの位置にテレポートさせます。
④ チャットコマンド lt でエージェントが木の正面を向くようにします。
⑤ チャットコマンド chop でエージェントに木の幹を切らせます。
⑥ しばらくたつと木の葉が落ちてきます。

24

木こりをさせる (5)(5) 練習問題1
lt コマンドを入力するだけで、エージェントが幹の正面を向くようにする処理を追加する。エージェントの前にブロックがない間、エージェントの向きを左にする。

25

木こりをさせる (6)(6) 練習問題1 解答

26

ダイヤモンドを採掘させる (1)(1)ダイヤモンドを採掘させる

27

ダイヤモンドを採掘させる (2)(2) チャットコマンド do を作成する
・条件文を三択にする。
・変数名 num1 を AgentOrder に変更する。

28

ダイヤモンドを採掘させる (3)(3) AgentOrder が1 のとき、2 のとき、それ以外のときで処理を分ける29

ダイヤモンドを採掘させる (4)(4) AgentOrder が1 のとき、2 のとき、それ以外のときの処理を記述する
1 : エージェントをプレイヤーのいる位置にテレポートさせる
2 : エージェントの向きを左に変える（正面を向かせるようにする）
それ以外 : 説明を表示する

30

ダイヤモンドを採掘させる (5)(5) チャットコマンド dig （掘る）を作成する
ダイヤモンドを採掘するために、ゲームモードをサバイバルにする。
「ゲームプレイ」のカテゴリにあるゲームモードを変更するブロックを使用し、対象を「自分」にする。

31

ダイヤモンドを採掘させる (6)(6) エージェントの前にダイヤモンド鉱石があるか調べさせる

32

ダイヤモンドを採掘させる (7)(7) ダイヤモンド鉱石があればひろわせる33

ダイヤモンドを採掘させる (8)(8) 64回繰り返す

34

ダイヤモンドを採掘させる (9)(9) 1ブロック上に移動してから、採掘しながら元の位置に引き返すくりかえしを入れ子にする。

35

ダイヤモンドを採掘させる (10)(10) マインクラフトの操作①ワールドの種類は「無限」とし、クリエイティブモードにしておく②ツルハシとたいまつを用意する③プレイヤーを標高12の位置にテレポートする（ /tp ~ 12 ~ ）④ブロックに取り囲まれていたら、周囲のブロックを壊す⑤たいまつで明るくする⑥チャットコマンド do 1 でエージェントをプレイヤーの位置にテレポートさせる⑦チャットコマンド do 2 でエージェントの向きを調節する⑧チャットコマンド dig でダイヤモンド鉱石を採掘する（エージェントは1往復します。しばらく時間がかかります。）

36

ピラミッドを作る (1)(1) おかしなピラミッド
3段で終わらなければいけないのに、いつまでも終わらない・・・

37

ピラミッドを作る (2)(2) どこがおかしいのかな？
チャットコマンド pyramid は自分自身を呼び出している。

マインクラフト側の操作①チャットコマンド tp を入力②チャットコマンド pyramid 土台の一辺の長さ を入力

38

ピラミッドを作る (3)(3) 練習問題1
BaseSize （ピラミッドの辺の長さ）が0 になったら終わるようにする。

39

ピラミッドを作る (4)(4) 練習問題1 解答

40

プロジェクト作成例
プロジェクトURL

1エージェントに建築させる

https://makecode.com/_REvgTH55sfWW

2

畑を耕す

https://makecode.com/_FxY99fJu5J1E

3

木こりをさせるhttps://makecode.com/_6PUKfUXJ8dK04

ダイヤモンドを採掘させる

https://makecode.com/_Dq6HARf6jK2z

5ピラミッドを作る

https://makecode.com/_4M9HRFYgDKPm（ ホーム →
（プロジェクトを読み込む） →URLからインポート → プロジェクトのURLを開きます）

41