マイクラで『座標を変数として保存』してみよう
目次
座標を保存するプログラムを作る

やっほー 春日部つむぎだよ

なのなのだ ずんだもんなのだ

今回は「プログラムを動作させるとその時の座標を保存する」プログラムを作っていくね。

その前に、ずんだもんは「変数」って知ってる?

変数? 知らないのだ

変数っていうのはハイレベルなプログラムを作るのに必要なアイテムなんだ

ハイレベルなプログラムを作れるのだ?! それは楽しみなのだ!

それじゃあ、はじめようか!

使うのは『マインクラフト』と『メイクコード』の2つだよ! みんなも準備しておこう!
- 『MineCraft(マインクラフト)』はMicrosoftが提供しているサンドボックスゲームです。プレイヤーはブロックを積み上げて建物を作り上げたり、広い世界を冒険してモンスターと戦うことができます。メイクコードを使ってプログラミングをするためには統合版が必要です。
- 『MakeCode(メイクコード)』はMicrosoftが提供するオープンソースのプログラミング学習プラットフォームです。ブロックを使ったビジュアルコーディングとJavaScriptによるテキストコーディングの2種類のエディタを切り替えながら、プログラミングできます。
プログラミングをはじめよう
使うコードを準備しよう

今回は『マイクラ』で準備するものがないから、さっそくプログラミングを始めていくね

まずはコードを準備しよう。 必要なのは【メッセージ”:)”を送信する】【プレイヤーの位置】【(position)から《x(東西)》の値を取得する】【最初だけ】と変数だよ。 まずは変数以外を準備しておこう。


そしたら変数だね。 まずは「x」っていう変数を追加してみよう
変数とは、「数字や文字などのデータ保存しておける入れ物のこと」です。
保存しているデータは、設定するときに作動させたプログラム以外でも使用できます。
1つの変数に保存できるデータは1つで既に保存されている場合は上書きされますが、変数はいくつも作ることができるので必要な数だけ作りましょう。

変数の項目を押すと「変数を追加する」っていうボタンがあるのだ。 ここから追加するのだ




変数はいくつも作れるから、「y」「z」の2つも追加しておこう。ちなみに、【(position)から《x(東西)》の値を取得する】の「Position」も変数だね。


コードは画面左にある項目のように分かれています。今回必要となるブロックと対応する項目は以下の通りです。
- プレイヤー ⇨ 【メッセージ”:)”を送信する】【プレイヤーの位置】
- ポジション ⇨ 【(position)から《x(東西)》の値を取得する】
- ループ ⇨ 【最初だけ】
- 変数 ⇨ 【変数(position)を0にする】【x】【y】【z】

これで必要なコードの種類は揃ったよ。 あとは組み合わせたり複製していくね
変数プログラムを作ろう
メイクコードでは以下のようにブロックを組み合わせてプログラミングしていきます。
- 凹凸のついたブロックは組み合わせられます
- 入力・選択部分が丸い形やをしているものは同じ形のコードをはめ込めます
凹凸の付いたブロックを組み合わて作る大まかな動きと入力・選択欄を変更して詳細な動きを設定していくのが、プログラミングの基本となります。

それじゃあコードを組み合わせていこう。 まずは【(position)から《x(東西)》の値を取得する】コードの「position」部分に【プレイヤーの位置】コードをはめ込もう


【(position)から《x(東西)》の値を取得する】コードは、「position」の部分にあるものから設定した方角(座標)の値を取得するコードです。
初期値はx座標になっていますが、項目をクリックすることでy座標・z座標も取得できます。
【プレイヤーの位置】コードは、プレイヤーの位置を取得するコードです。
これだけでは使用することができないコードで、他のコードと組み合わせて使います。

「position」が外れたけどこれはいらないのだ?

それは今回は使わないから削除してくれて大丈夫だよ

削除は、コードを項目の場所に持っていくか、右クリックで出るメニューの「ブロックを削除する」でできるよ



あとは【変数(position)を0にする】コードの「0」の部分に今作ったコードを組み合わせれば、変数プログラムの完成だよ!

【変数(position)を0にする】コードは、変数の中に保存するデータを任意に設定できるコードです。
初期値では「0」が入っていますが、文字のように数字以外のものを入れることもできます。

え? もう完成したのだ?!

このプログラムを複製して変数を変更したりはするけど、ひとまず完成だね

それじゃあ、完成したプログラムを複製しよう。 今回は座標のデータを保存するから、座標の種類の数だけ用意してね。

座標は「x」「y」「z」の3種類あるから、3つ用意すればいいのだね!

1つはもう完成しているから、複製するのは2つなのだ! 複製は右クリックでできるのだ



複製ができたら、まずは1つめの【変数(position)を0にする】プログラムの「position」部分を、追加した変数の「x」に変更しよう

「Position」を押してリストから「x」を選択するのだ。



「x」に変更できたのだ

これで、【変数(x)を【プレイヤーの位置】から《x(東西)》の値を取得する】っていうプログラムになったね

分かりやすいように言い換えると、「キャラクターの位置のx座標を取得して、変数xに保存する」ってことだね

そういうことだね! 同じようにyとzの座標も保存したいから、残りの2つも同じように変更していこう。

まずはyを作ってみよう。 保存する座標を変更するときは《x(東西)》の部分も変更してね

わかったのだ! 今保存したいのはy座標だから、こうだね!




その通り! あとはz座標を保存すれば変数の保存プログラムは全部終了だよ!


楽勝なのだ!

これで変数に座標のデータがそろったね。ひとまず、この3つのプログラムをまとめて【最初だけ】と組み合わせておこう。



これでプログラムを動作させると変数の中に座標データが保存されるんだけど、このままじゃ確認できないんだ

そうなのだ? それじゃあ確認するプログラムも作るのだ!
変数確認用のプログラムを作ろう

変数の確認で使うのは【メッセージ”:)”を送信する】っていうコードなんだ

このコードを使えば好きなメッセージをチャットに送信できるんだよ

ってことは、メッセージを設定する場所に変数を組み合わせればいいのだね。

その通りだよ! それじゃあ、「x」「y」「z」の変数コードを【メッセージ”:)”を送信する】と組み合わせていこう!

そのためにまずは、【メッセージ”:)”を送信する】コードを複製するのだ


次に変数を組み合わせて…っと




あとは、できたコードを【最初だけ】に組み合わせれば完成!

プログラムは上から動くから、座標を保存するプログラムの下に組み合わせないといけない点に注意なのだ!



それじゃあプログラムを動かすのだ!

間違えても大丈夫だから落ち着いてやってね。入力ができたら右下のスタートボタンを押そう。ボタンの色が緑色から赤色になったら準備完了だよ

動かす前にはプログラムが合っているか確認しておくのだ!
動かしてみよう!

今回は【最初だけ】のコードを使っているから、スタートボタンを押して『マイクラ』に戻るとプログラムが動いているのだ

自分が立っている場所の座標がチャットで送信されていれば成功だよ!


ちゃんと座標が送信されているのだ!
さいごに

今回は「自分の座標を変数に保存する」プログラムが作れたね

変数を初めて知ったけど、とても便利なんだね!

変数を使いこなせれば建築の幅も広がるから、いっぱい使って練習してみよう!

最後に練習問題を用意してみたから、よかったら挑戦してみてね!
プログラムを変更してみよう!
問題1

今回作ったプログラムを使って、【変数(position)を0にする】の「Position」部分を変更し、保存する座標を「x → y座標」「y → z座標」「z → x座標」にしてみよう!

問題2

今回作ったプログラムを使って【(position)から《x(東西)》の値を取得する】の方角部分を変更し、保存する座標を「x → z座標」「y → x座標」「z → y座標」にしてみよう!

問題3

新しい変数「好きな3桁の数」を作って、好きな3桁の数を保存し、チャットに送信してみよう!
