コマンドで、目の前に形をつくろう
Minecraft再制作版・全50回の教材目次です。各単元は、正本コード・公式MakeCodeブロック・完成イメージ・予想・成功条件・トラブル表をそろえています。
各回の詳細ページ: 01 目印 / 02 距離 / 03 左右 / 04 高さ / 05 門
この単元で大切にすること
- 「前・右・上」はプレイヤーの向きを基準にする。
- 足元を埋めないよう、地面に置くときは上方向を
-1にする。 - 毎回、実行前の予想・成功の見分け方・1か所だけの改造を行う。
- 下のブロック画像は、MakeCode公式レンダラーで表示している。
目の前に目印を置こう
ゴール:チャットに 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)目印を遠くへ動かそう
ゴール: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)左右に目印を置こう
ゴール:少し前の左と右に、目印を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)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)くぐれる門をつくろう
ゴール:右・上・前の位置を組み合わせ、幅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の両方を載せる構成
- 次に、くり返しへ進む前に加えたい作品や操作
