体験会などでお子様と話をすると、マインクラフトが好きな子がとても多いです
というわけで、マイクラでどんなプログラミングができるのか、調べて少し触ってみています!(マイクラのプレイ経験はほぼありません)
マイクラのゲーム内に存在するMakeCodeというエディタを使って、ブロック/JavaScript/Pythonのいずれかでプログラミングをすることができます。
また、教材が豊富であり、科学や算数などの教育関連のレッスンも多くありました。時間があるときに触ってみたいと思います。
ゲームを通じて楽しく学べるところが良いところですね!
マイクラ好きのお子様、お待ちしております
参考までにサンプルとしてコードを貼っておきます
(ブロックで作りたかったのですが、ノエプロアイコンの64×64のデータを貼るとMakeCodeが重くなってしまったのでJavaScriptで書いています)
// 左から右に向かって建築
function leftToRight(i: number) {
for (let j = 0; j <= SIZE - 1; j++) {
// 一段掘って掘ってTNTを置く
builder.move(DOWN, 1)
builder.place(TNT)
// 一段上がってブロックを置く
builder.move(UP, 1)
const value = noepro_icon[i][j]
if (value > 200) {
builder.place(BLOCK_OF_QUARTZ)
} else if (value < 100) {
builder.place(COAL_BLOCK)
} else {
builder.place(CLAY)
}
builder.move(RIGHT, 1)
}
builder.move(BACK, 1)
builder.move(LEFT, 1)
}
// 右から左に向かって建築
function rightToLeft(i: number) {
for (let j = 0; j <= SIZE - 1; j++) {
// 一段掘って掘ってTNTを置く
builder.move(DOWN, 1)
builder.place(TNT)
// 一段上がってブロックを置く
builder.move(UP, 1)
const value = noepro_icon[i][SIZE - 1 - j]
if (value > 200) {
builder.place(BLOCK_OF_QUARTZ)
} else if (value < 100) {
builder.place(COAL_BLOCK)
} else {
builder.place(CLAY)
}
builder.move(LEFT, 1)
}
builder.move(BACK, 1)
builder.move(RIGHT, 1)
}
// "noepro"チャットが入力されたとき
player.onChat("noepro", function () {
builder.setOrigin()
for (let i = 0; i <= SIZE - 1; i++) {
// 奇数行は左から右、偶数行は右から左に
if (i % 2 === 0) {
leftToRight(i)
} else {
rightToLeft(i)
}
}
})
// 64 x 64 のマスで作る
const SIZE = 64
// 事前にノエプロアイコンの色情報を取得するプログラムを作って64 x 64の配列データとして持っています
const noepro_icon = [
[
255,
255,
255,
255,
255,
・
・
・
省略
]]
]]>こちらはブラウザで動作するWebアプリですが、テキストプログラミング言語であるHTML, JavaScriptを利用しているため、ScratchやLEGOに比べると難しくなります。
ポイントは、
だけです。
どのプログラミング言語にも存在する「配列」という概念を使って、縦20マス x 横10マスの情報を管理しています。
テキストプログラミングまで興味がある場合は、将来チャレンジしてみてください!
(2025/03/05 追記)
アクセス数が多いので、ソースコードのリンクを貼っておきます。