Minecraftでプログラミング

Minecraftとは

『Minecraft』(マインクラフト)は、Notch(マルクス・ペルソン)と彼の会社(Mojang AB)の社員が開発したサンドボックスゲームである。ブロックを地面や空中に配置し、自由な形の建造物等を作っていくゲームである。シングルプレイとマルチプレイができ、日本語圏では『マイクラ』という略称で呼ばれることもある。PC版、PE(Pocket Edition:スマートフォン用アプリ)、家庭用ゲーム版が存在する。
2017年2月の時点で、全てのプラットフォームでの販売が累計1億2200万本を突破した[2]。

※上記は2017年3月19日時点でWikiPediaから引用。「https://ja.wikipedia.org/wiki/Minecraft」

ゲームだけどただのゲームじゃない! (人類の進化の歴史だ!?)

『Minecraft』(マインクラフト)は略して「マイクラ」と呼ばれています。
マイクラは立方体のブロックを積んだり壊したりしながら、立体的な構造物を作ることができます。ちょうどバーチャル世界のレゴブロックのようなイメージだと思っています。また、構造物を作るだけではなく、武器を作ってモンスターを倒したり、洞窟を探検したりという冒険の要素も含まれているゲームで、WikiPediaにもあるように世界中で大ヒットしています。日本でも小中学生に大人気のようで、小学校の3年生以上のプログラミング講座の際に聞いてみたら、約9割の児童がマイクラのことを知っていました。
もしかしたらご家庭のお子様もマイクラに夢中で、暇さえあればゲームばかりしているかもしれません。その様子を見ると「ゲームばかりやってないでもっと勉強しなさい!」と言いたくなるかもしれません。
しかしちょっと待って下さい。このマイクラというゲームはなかなか優秀で、遊びながら空間把握能力設計力を磨くことが出来ます。中学受験や就職試験などに空間把握問題というものがありますが、このような問題の練習になっていることは間違いないでしょう。
更にある程度ゲームが進んでくると家畜の世話が面倒だ、畑仕事が面倒だと思うかもしれません。子供達は何とか効率的に出来ないだろうかと考えます。そんなときマイクラには効率化や自動化が出来る仕組みがあり、工夫次第で全自動で食料を確保する事が出来たりします。この過程は産業革命などの人類の進化そのものではないかと思います。(大袈裟でしょうか。。。)この自動化をする際には、○○になったのを検知したら△△が動作するというような処理が必要となります。これはまさしくプログラミングであり、それを実現するためにマイクラではレッドストーン回路という電子回路のようなものを利用します。このレッドストーン回路は本物の電子回路のように色々なことが出来る反面、小中学生が独学で理解するには結構大変かと思います。
そんなわけで本プログラミング教室でも「レッドストーン研究会」と銘打って、回路の基本原理や応用方法を解説しています。

ご興味がある方はお問い合わせからご連絡ください。

レッドストーン研究会の紹介

[smartslider3 slider=2]

初級編では入力・伝達・出力の3要素の説明と
簡単な回路の説明をしました。

OR回路


単純に2つの入力装置と1つの出力装置をレッドストーンでつなぎます。
これで、どちらかの入力装置をONにすると、出力装置が動作します。

NOT回路


入力がONの時に出力がOFFに、
入力がOFFの時に出力がONになります。
上記画像の青色に囲んだ部分がポイントです。ブロックにレッドストーントーチをつけています。

ベルトコンベアーの紹介

中級編の最後に紹介したベルトコンベアーです。
この仕掛けを縦にするとエレベーターも作ることができます。

まずはレバーから出力された信号は青色の回路に入っていきます。
青色の回路はクロック回路です。クロック回路からはON・OFFの信号が繰り返し出力されます。
ON・OFFの繰り返しは黄色で囲んだパルサー回路に入っていきます。
パルサー回路から出てきた信号はONの時間が短くなります。
その結果、黄色の回路からは短いONとOFFの信号が繰り返し出てきます。

回路から出てきた信号は4つのピストンを動かします。
水色の2つのピストンとの間にはそれぞれ1つの遅延装置(リピーター)が挟まっています。
黄色の2つのピストンには直接レッドストーンで接続しています。
これによって、水色と黄色のピストンはタイミングがずれて交互に動作します。
是非上の絵を見ながら自分で作ってみてください。

スポンサーリンク

直近の開催予定

  • 現在開催予定はありません。

Minecraftでプログラミング学習

上にも記載したように、Minecraftは標準機能だけでもレッドストーン回路を利用したプログラミングのような仕組みを作ることができます。これだけでも十分すごいのですが、Minecraftにはこれ以外にもプログラミング学習に活用できる拡張機能がいくつかあります。その中からScratchを利用したものとMinecraft内のロボットを利用したものを紹介します。

ScratchのプログラムからMinecraftを操作

本プログラミング教室でメインで利用している学習用のプログラミング言語であるScratchで作ったプログラムから、なんとMinecraftの世界を操作することができます。
Minecraftには外部のプログラムから操作を行うための仕組み(APIと呼びます)があらかじめ用意されています。世界中の有志の方がScratchの拡張機能を開発して、Minecraftを操作できるプログラムを開発しました。これを利用すると、Minecraft内の指定した座標に指定したブロックを配置したり、自身のキャラクターを指定した座標に移動させたりすることができます。
Scratchというビジュアルなプログラミング言語から、本格的なゲームの世界を操作できるというところがこの仕組みのすごいところかと思っています。
講師のパソコンにはこの環境を用意していますので、プログラミング教室の際にでも声をかけて頂ければ触って頂くことができます。(事前に触りたい旨をご連絡頂いていると心の準備ができて幸いです。)
プログラミング教室への参加ご希望の方はお問い合わせからご連絡ください。
また、ScratchからMinecraftを操作するための環境を作る手順をそのうち公開しようと思っていますのでご期待ください。
※残念ながらこの仕組みを利用できるのは主にパソコン版のMinecraftだけで、Windows10版やAndroid版、iOS版などでは利用できません。

Minecraft内のロボットが自動で採掘・戦闘・・・

こちらも主にパソコン版のMinecraftだけの機能ですが、MinecraftにはMODと呼ばれる拡張機能がたくさん公開されています。その中に「ComputerCraft」というMODがあり、これを利用するとMinecraftの世界の中に、プログラミングに従って自動で動作するロボットのようなものを作り出すことができます。
ここで利用するプログラムはLua言語という本格的なプログラミング言語を利用します。Lua言語はキーボードで命令文を記述していくものなので、プログラミングの初心者にはちょっととっつきにくいかもしれませんが、Scratchを使ってMinecraftを操作するよりも色んな事ができます。例えば、前のブロックを掘って一歩進んで下を掘って下に一歩進んで、また前を掘って・・・。と繰り返すことで、ダイヤモンドの採掘場までの階段を自動で作らせることができます。また、勝手にモンスターと戦ってくれるようなロボットも作れるので夢は広がります。
このようなゲームの為のロボットであっても、目的のモノを作りたいがために本格的なプログラミング言語を勉強する、というのも学習の動機としてはいいものではないかと思っています。
「ComputerCraft」の環境についても講師のパソコンに用意していますので、興味がある方はお声をおかけください。
「ComputerCraft」の環境を用意するための手順はいろんな方がインターネット上に公開されていますので検索して探してみてください。
今後、希望者がいらっしゃるようであれば、MinecraftとLua言語を利用したプログラミング講座を開いても面白いかと思っています。
ご希望・ご要望などがございましたらお問い合わせからご連絡ください。

更新日:

Copyright© 彩都こどもプログラミング教室 , 2019 All Rights Reserved.