デジタルこどもBASEのロゴ特定非営利活動法人デジタルこどもBASE📚 現在の教材目次
第1〜5回Unit 01全5回

コマンドで、目の前に形をつくろう

Minecraft再制作版・全50回の教材目次です。各単元は、正本コード・公式MakeCodeブロック・完成イメージ・予想・成功条件・トラブル表をそろえています。

各回の詳細ページ: 01 目印 / 02 距離 / 03 左右 / 04 高さ / 05 門

この単元で大切にすること

  • 「前・右・上」はプレイヤーの向きを基準にする。
  • 足元を埋めないよう、地面に置くときは上方向を -1 にする。
  • 毎回、実行前の予想・成功の見分け方・1か所だけの改造を行う。
  • 下のブロック画像は、MakeCode公式レンダラーで表示している。
Lesson 01

目の前に目印を置こう

ゴール:チャットに mark と入力すると、今向いている方向の3マス前の地面に金ブロックを1個置ける。

実行前に予想:金ブロックは、自分の足元・目の前・頭の上のどこに出るだろう?

成功:足元は埋まらず、3マス前の地面に金ブロックが1個ある。

つくるブロック

ブロック表示を準備しています…

Pythonコードを見る
def on_chat_mark():
    blocks.place(GOLD_BLOCK, pos_camera(0, -1, 3))

player.on_chat("mark", on_chat_mark)
Lesson 02

目印を遠くへ動かそう

ゴール:mark で、6マス前の地面にダイヤモンドブロックを置ける。

実行前に予想:前の回の 3 を 6 にした。目印は近くなる? 遠くなる?

成功:今向いている方向の6マス前にダイヤモンドブロックが1個ある。

つくるブロック

ブロック表示を準備しています…

Pythonコードを見る
def on_chat_mark():
    blocks.place(DIAMOND_BLOCK, pos_camera(0, -1, 6))

player.on_chat("mark", on_chat_mark)
Lesson 03

左右に目印を置こう

ゴール:少し前の左と右に、目印を1個ずつ置ける。

実行前に予想:-2 の金ブロックと 2 のダイヤモンドブロックは、どちらが右に出るだろう?

成功:3マス前に、金ブロックとダイヤモンドブロックが左右に1個ずつある。

つくるブロック

ブロック表示を準備しています…

Pythonコードを見る
def on_chat_pair():
    blocks.place(GOLD_BLOCK, pos_camera(-2, -1, 3))
    blocks.place(DIAMOND_BLOCK, pos_camera(2, -1, 3))

player.on_chat("pair", on_chat_pair)
Lesson 04

3段の塔を立てよう

ゴール:3マス前の同じ場所に、地面から3段の塔を立てられる。

実行前に予想:-1、0、1 の3つのブロックは、横に並ぶ? 上へ積まれる?

成功:オーク・石・ガラスが、下から順に縦へ3段に積まれている。

つくるブロック

ブロック表示を準備しています…

Pythonコードを見る
def on_chat_tower():
    blocks.place(PLANKS_OAK, pos_camera(0, -1, 3))
    blocks.place(STONE, pos_camera(0, 0, 3))
    blocks.place(GLASS, pos_camera(0, 1, 3))

player.on_chat("tower", on_chat_tower)
Lesson 05

くぐれる門をつくろう

ゴール:右・上・前の位置を組み合わせ、幅3マス・高さ2マスでプレイヤーがくぐれる門をつくれる。

実行前に予想:石のブロックが11個ある。どんな形になるだろう? 紙に描いてから実行しよう。

成功:4マス前に左右2本の高さ3マスの柱と上の横棒があり、幅3マス・高さ2マスの通路を通れる。

つくるブロック

ブロック表示を準備しています…

Pythonコードを見る
def on_chat_gate():
    blocks.place(STONE, pos_camera(-2, -1, 4))
    blocks.place(STONE, pos_camera(-2, 0, 4))
    blocks.place(STONE, pos_camera(-2, 1, 4))
    blocks.place(STONE, pos_camera(2, -1, 4))
    blocks.place(STONE, pos_camera(2, 0, 4))
    blocks.place(STONE, pos_camera(2, 1, 4))
    blocks.place(STONE, pos_camera(-2, 2, 4))
    blocks.place(STONE, pos_camera(-1, 2, 4))
    blocks.place(STONE, pos_camera(0, 2, 4))
    blocks.place(STONE, pos_camera(1, 2, 4))
    blocks.place(STONE, pos_camera(2, 2, 4))

player.on_chat("gate", on_chat_gate)

確認していただきたい点

  • 5回の密度・順序・言葉の難しさ
  • ブロック表示とPythonの両方を載せる構成
  • 次に、くり返しへ進む前に加えたい作品や操作