プログラムとマインクラフトでゲームを作ろうはじめに今回は、マインクラフトを使ったちょっとしたゲームを作ってみます。お子様と一緒に作っていただいてもよし、自分で作ってみて遊んでいただいてもよしです。試してみていただければと思います。https://www.raspberrypi.org/learning/minecraft-whac-a-block-game/worksheet/CC-BY-SAとのことですので、この解説記事も同条件でご利用ください。ゲームで、いわゆる「もぐらたたき」です。3×3の9マスのブロックがあり、そのブロックがランダムに違う色のブロックに置き換わっていきます。置き換わったブロックをモグラと見立てて、剣で叩くと得点が入るというゲームです。剣で叩くことでブロックがもとの色に戻ります。すべてのブロックの色が変わってしまったら負けです。アルゴリズムでは、具体的にどのように実現するか見ていきましょう。1.プレイヤの場所を取得する2.ブレイヤの場所の付近にブロックのカベを置く。6.叩いたブロックを取得。10.ポイントを1増やす11.すべてのブロックが変化してしまった時点で得点を表示して終了1,2のプレイヤの場所をとる、ブロックのカベを置くのは今までの解説記事でも扱っているのですぐわかりそうです。ここで不明なのが、叩いたブロックを取得する方法とブロックの種類を調べる方法です。叩いたブロックを取得する方法コマンドで次のコマンドが用意されています。mc.events.pollBlockHits()これを使うと、剣で叩いたブロックの集合を取得することができます。(剣で叩かないとイベントが取得できません。各座標が格納されています。これを使って叩いたブロックの位置を取ることができます。含まれている情報は、次のとおりです。イベントを起こしたプレイヤのIDブロックの種類を調べる方法7の部分で叩いたブロックが変頭ブロックかどうかを調べます。このブロックの種類を調べる方法もコマンドが用意されています。あるブロックの種類を取得することができます。用いた場合は、blockのオブジェクトを取得できます。オブジェクトには種類と属性(羊毛ならその色など)を取得することができます。初期設定では、最初の部分から見ていきましょう。time最初の部分では、使用するライブラリを宣言しています。プログラムからマインクラフトに通信をするためのライブラリです。ライブラリは、ランダムな値を出力するために使います。timeライブラリは時間を取得したり、待ち時間をいれたりするときに使用します。mc.player.getTilePos()最初の文は、Minecraftと接続するためのクラスのインスタンスを生成しています。プレイヤの現在位置を取得します。0そして、3×3のブロックを設置します。setBlocksは前回までの記事でも取り扱っているので説明は省略します。その後、メッセージを表示して、変数の初期化をしています。