プログラミングの「命令」「変数」「繰り返し」「イベント」って何?→初心者でもMinecraftなら理解できる!:マイクラで始めるプログラミング入門(3)(1/2 ページ)
本連載では、子どもたちに大人気のゲーム「Minecraft」を題材にYouTube実況動画付きで「プログラミング」を学んでいく。今回は、Minecraftのブロックを10段積み上げる/消すサンプルから、プログラミングの「命令」「変数」「繰り返し」「イベント」などを学ぼう。
MinecraftとScratchでプログラミングの基礎を学ぼう
本連載「マイクラで始めるプログラミング入門」では、子どもたちに大人気のゲーム「Minecraft(マインクラフト、マイクラ)」を題材にYouTube実況動画付きで「プログラミング」を学んでいく。具体的には、小型PC端末Raspberry Pi(ラズベリーパイ、ラズパイ)上でビジュアルプログラミング環境である「Scratch(スクラッチ)」からMinecraftを操作する方法を解説する。
前回の「コードを書かずにプログラミングができる、ScratchとScratch2MCPIの基礎知識、インストール方法と簡単な使い方」では、ScratchとScratch2MCPIの概要を紹介し、インストール方法と簡単な使い方を解説した。
今回からはScratchプログラミングからRaspberry Pi 2のMinecraft Piを操作する方法を解説していく。
まず今回は、ブロックを10段積み上げるサンプルを作成する(図1)。
今回のサンプルでは、プログラミングの「命令」「変数」「繰り返し」「イベント」を学ぶことができる。
基本的には、プログラミングの「繰り返し」を使って、「ブロックを1段積む」作業を10回繰り返した。また、「ブロックの高さ」「ブロックの種類」という「変数」の値を変えている。さらに、「ブロックを置く」「0.1秒待つ」という「命令」を使っている。
まずは動画1で手順を確認し、詳細を文章で確認し、自分でもいろいろと変えて試してみてほしい。
10段のブロックを積み上げるプログラミング
10段のブロックを積み上げる方法をまとめておこう。
- 「制御」分類から「『緑色の旗』がクリックされたとき」を配置する
- 「変数」分類から、「blockDataを0にする」を3つ配置する
- 2.の「blockData」を上から順に「mcpiX」「mcpiY」「mcpiZ」にする
- 「変数」分類から、「blockDataを0にする」を配置し、「blockData」を「blockTypeId」にし、「0」のところを、ブロックの種類(表1参照)に対応した数値を指定する
- 「制御」分類から「10回繰り返す」を配置する
- 5.の「10回繰り返す」内に、
- 「制御」分類にある「getHeightを送る」を配置し、「getHeight」を「setBlock」に変える
- 「setBlockを送る」の下に「制御」分類の中にある「1秒待つ」を配置し、「1」を「0.1」に変更する
- 「変数」分類にある「blockDataを1ずつ変える」を配置し、「blockData」を「mcpiY」にする
以上の手順で、スクリプトを実行すると、Minecraft Piの世界に10段のブロックが積み上げられたはずだ。
今回メインで使用するのは、ブロックの位置をx(左右の位置)y(高さの位置)z(前後の位置)座標を指定する「mcpiX」「mcpiY」「mcpiZ」という変数のうち「mcpiY」と、ブロックの種類を指定する「blockTypeId」という変数、そして変数の値を変える命令、指定したブロックを配置する「setBlock」という命令、そしてブロックの配置を「10回繰り返す」命令だ。
この「命令」を組み合わせて、コンピュータに実行させる行為が「プログラミング」である。英語だと「programming」、つまり「(コンピュータに命令する順序を)計画する」ということだ。
ある「出来事」に対して命令を実行させる「イベント」
最初に配置した「『緑色の旗』がクリックされたとき」はプログラミングでは、主に「イベント」という。「出来事」という意味だ。
この、「〜した/されたとき」という「出来事」に対して、下にある命令をコンピュータに実行させる。「イベント」は他にもキーボードの「スペースキーが押されたとき」があり、この「スペースキー」を他の「エンター」などのエンターに変えることができる。
数字を変えられるようにする器「変数」
blockTypeId | ブロックの種類 |
---|---|
0 | 空気 |
1 | 石 |
2 | 草 |
3 | 土 |
4 | 丸石 |
5 | 木材 |
6 | 苗木 |
7 | 岩盤 |
8 | 水 |
9 | 静止した水 |
10 | 溶岩 |
11 | 静止した溶岩 |
12 | 砂 |
13 | 砂利 |
14 | 金鉱石 |
15 | 鉄鉱石 |
16 | 石炭鉱石 |
17 | 原木 |
18 | 葉 |
20 | ガラス |
21 | ラピスラズリ鉱石 |
22 | ラピスラズリブロック |
24 | 砂岩 |
26 | ベッド |
30 | 蜘蛛の巣 |
31 | 草 |
35 | 羊毛 |
37 | 黄色の花 |
38 | バラ |
39 | キノコ(茶) |
40 | キノコ(赤) |
41 | 金ブロック |
42 | 鉄ブロック |
43 | 重ねたストーンスラブ |
44 | ストーンスラブ |
45 | れんがブロック |
46 | TNT |
47 | 本棚 |
48 | 苔石 |
49 | 黒曜石 |
50 | たいまつ |
51 | 炎 |
53 | 樫の木の階段 |
54 | チェスト |
56 | ダイヤモンド鉱石 |
57 | ダイヤモンドブロック |
58 | 作業台 |
60 | 耕地 |
61 | かまど |
62 | 燃えているかまど |
64 | 木のドア |
65 | はしご |
67 | 丸石の階段 |
71 | 鉄のドア |
73 | レッドストーン鉱石 |
78 | 雪 |
79 | 氷 |
80 | 雪のブロック |
81 | サボテン |
82 | 粘土ブロック |
83 | サトウキビ |
85 | フェンス |
89 | グローストーンブロック |
95 | 鍵のかかったチェスト |
98 | 石れんが |
102 | 板ガラス |
103 | メロン |
107 | フェンスゲート |
246 | 輝く黒曜石 |
247 | ネザーリアクターコア |
参考:<Stuff about="code" />: Minecraft API |
「mcpiX」「mcpiY」「mcpiZ」「blockTypeId」はプログラミングで「変数」という。「変数」とは、プログラムの実行中に変化する値を格納するための器のようなものだ。手順6の3では、「mcpiY」(ブロックの高さ)を1ずつ増やす命令で数字が変わっていく。
また、積み上げるブロックの種類を、数値を変えることで、いろいろなブロックに変えることができる。blockTypeIdに表1で示した数値を指定すると、いろいろな種類のブロックを積み上げることができる。
表1の番号が連続した数字になっていないのは、Minecraft Piでは使用できないものがあるからだ。
気を付けねばならないのは「10」「11」の「溶岩」を指定した場合だ。これらはブロックが積み上がらずに「溶岩」として流れ出てしまう。そうなると視界が真っ赤になってしまうので、「8」の「水」で冷やす必要がある。この辺りのサンプルは動画の中で解説している。
また動画では、積み上げられるブロックの種類をランダム(不規則)に変更させて、ブロックの塔にいろいろな種類のブロックを表示させている。
このように不規則な数字のことを「乱数」という。「数字がたくさんのサイコロを振って、出た目の数を使っている」というイメージでよいだろう。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 子どもにプログラムの手順だけでなく概念を伝えたい
子ども向けプログラミング環境「Scratch」を学ぶ小学生が増えている。ものづくり寺子屋&きょーくりっの共同授業をレポートする。 - アプリは、どうやって動くの? プログラムって何?――初めてiPhoneアプリを作る人向け基礎知識まとめ
本連載では、これからプログラミングやiPhoneアプリ開発を始めてみたい方を対象に、開発に必要な知識を基礎から解説していきます。 - 「プログラマーって何するのが仕事なの?」と聞かれたときや、初心者がプログラミングを学ぶ前に読んでほしいマンガ「じゃまめくん」とは
人気過去連載を一冊に再編集して無料ダウンロード提供する@IT eBookシリーズ。Vol.6は、プログラミング初心者が、プログラミングを学ぶ前に読んでほしいマンガ連載『オブジェマンガ じゃまめくん』だ。 - 初めてUnityを触る人が無料で使い方を学べる日本語チュートリアルを全317ページ、59のサンプル動画で電子書籍本としてまとめました
人気過去連載を一冊に再編集して無料ダウンロード提供する@IT eBookシリーズ。Vol.8は、『ゲーム開発初心者のためのUnity入門』だ。 - Excelでプログラム作成を始めるメリットとマクロの基本
プログラミング初心者を対象にExcelマクロ/VBAを使った業務自動化プログラムの作り方を一から解説します。初回は、そもそもプログラミングとは何か、Visual BasicとVBAとマクロの違い、マクロの作り方、保存/削除、セキュリティ設定などについて【Windows 10、Excel 2016に対応】。