【Minecraftプログラミング】は、「Microsoft MakeCode for Minecraft」を利用してマインクラフトの世界でプログラミングを学ぶ連載です。毎週月~金曜日更新。

Minecraftプログラミング レッスン53空気ブロックを並べる

ゲームの終了後にマグマを除去するには

メインループの条件を変更する

このレッスンでは、メインループである[溶岩]ブロックの繰り返しに条件を設定して、ゲームオーバーになったときに処理が止まるようにプログラミングします。

そのままでは生成された[溶岩]ブロックが残ってしまうので、[空気]ブロックを使ってすべて除去します。闘技場を繰り返し使えるようにしましょう。

闘技場の上のマグマの滝は、ゲームオーバー後も存在している

空気ブロックを並べれば、ゲームオーバー時にすべて除去できる

1ゲームオーバーの変数を「偽」にする

HINT 変数は初期化して使う

プログラムの中で変数を使う場合は、必ず最初に初期化する必要があります。手順1ではチャットコマンド[start]を入力した直後のタイミングで変数[gameover]を初期化しています。対戦バトル開始時はゲームオーバーではないので、ここでは「偽」を値として指定しています。

2メインループを変更する

HINT ゲームオーバー以外の条件で繰り返すように設定する

変数[gameover]が「真」になっただけでは、ゲームの処理は止まりません。手順2では[溶岩]ブロックをランダムに発生させる処理がゲームオーバーのタイミングで止まるように、[もし[真]ならくりかえし]ブロックの条件を変更します。[ではない]ブロックを使うと、ゲームオーバーではないときだけ繰り返すように条件を指定できます。

間違った場合は?


手順2の操作4で変数[gameover]を組み込むときに、操作3で組み込んだ[ではない]ブロックが押し出されてしまうことがあります。[ではない]ブロックが組み込まれていないとプログラムは動作しないので、必ず正しい順序で組み込むようにしましょう。

3空気ブロックを並べる

間違った場合は?


手順3で[ブロックを並べる]ブロックを接続する位置は、ゲーム内時刻が夕方以降になり、[溶岩]をランダムに発生させるループ処理が停止した後になります。

ゲーム内時刻でゲームオーバーを決定する条件分岐や、[溶岩]をランダムに発生させるループ処理の中に入れてしまうと正しく動作しないので注意しましょう。ブロックの左端がプログラムを開始する[チャットコマンド[start]を入力したとき]に隣接していることを確認してください。

4座標を変数で指定する

HINT [空気]ブロックにもワールド座標と変数を使う

手順3で[空気]ブロックを並べる座標も、ほかの座標と同様にワールド座標と変数の組み合わせに変更します。このため手順3では[ブロックを並べる]ブロックに座標を入力しないまま作業を進めます。なお、[空気]ブロックは[溶岩]ブロックが発生した範囲に並べるため、[溶岩]ブロックに組み込んだワールド座標のブロックごと複製して使うと効率的です。

テクニック ほかのブロックでも設定できる

手順2で設定した条件は、[論理]カテゴリーのほかのブロックを使って条件を指定できます。[[0][=][0]]ブロックを使うときは右側に[偽]ブロックを組み込んで、[[0][≠][0]]ブロックを使う場合は右側に[真]ブロックを組み込むと同じ条件になります。

テクニック ゲームの流れを確認しよう

プログラムを作るときは、まとまった動作を作った後に実行して、正しく動作するか確認することが重要です。ここまで作ったプログラムをチェックするために、「field」「start」とチャットコマンドで続けて実行し、下のような流れになっているかを確認しましょう。

また、ゲームモードを[サバイバル]にしてコマンドを実行し、プレイヤーが死亡したときにゲームオーバーになるかも確認しておきましょう。