この記事では、教育版マインクラフトの体験版レッスン「Hour of Code 2019(AI)」を紹介。
プログラミング問題の内容と考え方を中心に、初心者さんにも分かるように、ていねいに解説していきます。
教育版マイクラのダウンロード~インストールまでの手順と体験版レッスンのはじめ方については「教育版マインクラフトの無料体験版レッスンを受ける方法」で紹介しています。
Hour of Code 2019(AI)の概要
あなたは、アシスタントのエージェント(Agent)をプログラミングして、この問題を解決するお手伝いをしてください。
まずは、火事のデータを集め、エージェントに火事が起きそうな場所を予測してもらいます。
そして、火事が広がらないように防ぎ、森を元気に復活させましょう!
「Hour of Code 2019(AI)」では、8つの短いクエストをクリアし、人工知能(AI)とプログラミングの基本的な考え方(順次、くり返し、条件分岐)について学習します。
では、Hour of Code 2019(AI)を選んで「世界を作成」をクリックし、レッスンを始めましょう。
1.門を開けて下さい。
画面の左上に現在のクエストが表示されます。
Wキーで前進し、研究員を右クリックして話を聞きましょう。
研究員の話を読んだら「×」をクリックして閉じます。
最初のクエストは、プログラミングでゲートを開くことです。
Cキーをおすと、コードビルダーが開きます。
「開始」をクリックしてプログラミングをはじめましょう。
ツールボックスにある、「ゲートを開く」ブロックを「最初だけ」ブロックの中にドラッグアンドドロップして配置します。
再生ボタンをおして、プログラムを実行しましょう。
- ツールボックス:命令ブロックが置かれています。
- プログラミングエリア:プログラムをつくる場所です。
- 再生ボタン:プログラムを実行します。
再生ボタンをおしたとき、中にある命令を実行します。
ゲートが開いたら、クエストクリアです。
以降のクエストも同じような手順で進めます。
2.エージェントに会います。
Agentを前進させ、マーカー(アカシアの木の原木)の上で止まるようにします。
「エージェントを(前)に(1)ブロック移動させる」ブロックを「最初だけ」ブロックの中にドラッグアンドドロップして配置しましょう。
「エージェントを(前)に(1)ブロック移動させる」ブロックの(1)をクリックして、数字を入力してください。数字は半角で入力しましょう。
エージェントを指定した方向・指定したブロック数だけ移動します。
3.エージェント分析
エージェントをかれ草の前まで前進させ、分析します。
プログラムを自分で考えてみましょう。
4.データを収集しよう。
エージェントをかれ草の前まで移動させて、かれ草を分析します。
建物のはしっこから下をのぞくと、迷路が見えます。
左が短い迷路、右が長い迷路です。好きな方を選びましょう。
「エージェントを(前)に(1)ブロック移動させる」ブロックと、「エージェントの向きを(左)に変える」ブロックを組み合わせて、エージェントを移動させます。
「エージェントの向きを(左)に変える」ブロックの(左▼)をクリックすると、向く方向を変えられます。
エージェントの向きを指定した方向に変えます。
いらないブロックは、ツールボックス(ゴミ箱マークが出る位置)へドラッグアンドドロップすれば、消すことができます。
ちなみに……「エージェントの向きを(左)に変える」ブロックを使わない方法もあります。よゆうがあったら考えてみてくださいね。
5.すべての危険を排除します。
火事の原因になる植物を、エージェントに教えます。
モニターに映った画像をみて、火事の原因になる植物だったら「はい」ボタン、火事の原因にならない植物だったら「いいえ」ボタンを右クリックします。
エージェントの前に現れた植物が火事の原因になる植物(乾燥した茂み)だったら、植物を壊すプログラムを作りましょう。
- 「もし<条件>ならくりかえし」ブロック
もし条件が正しい間、中にある命令をくり返し実行します。 - 「もし<条件>なら」ブロック
もし条件が正しいなら、中にある命令を実行します。
また、「条件によって処理の流れをかえる」という考え方を条件分岐といいます。
コンピュータはどうやって学習するの?
人工知能(AI)とは、人間に代わって知的な活動を行うことのできる人工的な知能を作ろうとする研究や技術のことです。
人間が学習や思考の方法をコンピュータに教え、その情報を使ってコンピュータが学習や思考を行えるようにします。コンピュータが自分で勉強して学ぶことを機械学習といいます。
火事の原因になる植物とならない植物を見分けるクエストで、「はい」ボタンや「いいえ」ボタンを使って、エージェントに正解を教えました。
このような手法を教師あり学習といい、コンピュータに正解をたくさん教えることで、自分で勉強して学習できるようになります。
たくさんの例を見て、コンピュータが自分でルールを作り出すことで、新しいデータに対しても正しい答えを出せるようになります。
6.チームに通知します。
画面上に表示された画像をエージェントが見て、危険なものが見つかったら、チームに警告します。
7.村を救おう。
消防署長に話しかけると、村に移動します。
エージェントにかれ草を片付けてもらいましょう。
エージェントの前にかれ草(乾燥した茂み)が生えていたら、かれ草を壊します。
次の植物をみるために、エージェントを1ブロック前へ移動させるのを忘れずに。
危険が残っている間くりかえします。
8.植林プロセス。
火事の原因を取りのぞいて、村を守ることができました!
花を植えたり、動物を呼び出したりして、村の復興のお手伝いをしましょう。
このクエストに正解はありません。自由にプログラミングしてみてください。
- 「プレイヤーが(歩いた)時」ブロック
プレイヤーが指定した方法で移動したとき、中の命令を実行します。 - 「(草ブロック)が破壊された時」ブロック
指定したブロックが採掘されたり壊れたりしたときに、中の命令を実行します。 - 「ブロックを(~0 ~0 ~0)の地点に置く」ブロック
指定した座標の場所にブロックを置きます。 - 「(生き物)を(~0 ~0 ~0)に出現させる」ブロック
指定した座標の場所に生き物を出現させます。 - 「くりかえし(4)回」ブロック
指定した回数、中にある命令をくり返し実行します。
プログラム例
左のプログラムは、歩くと1列に花がさくプログラム。右のプログラムは、スニーク(しのび足)した時、ニワトリを出現させるプログラムです。
座標とは位置を指定するための数字の組み合わせ
「ブロックを(~0 ~0 ~0)の地点に置く」ブロックと「(生き物)を(~0 ~0 ~0)に出現させる」ブロックは、座標を使って場所を指定しています。
座標(ざひょう)とは、とある位置を指定するための、数字の組み合わせのことです。
マイクラの世界では、左から順にx,y,zの3つの座標軸があります。
- x軸 … 東西の方向(東がプラス)
- y軸 … 上下の方向(上がプラス)
- z軸 … 南北の方向(南がプラス)
~(チルダ)の記号は、相対座標であるという意味です。コマンドを実行した位置から、どれだけはなれているかを示しています。
座標については「【マイクラ】座標の見かたを解説!コマンドやプログラミングで使いこなせるようになろう」でくわしく解説しています。
まとめ
Hour of Code 2019(AI)では、人工知能とプログラミングの基本的な考え方について学習しました。
プログラミングには「順次」「条件分岐」「くり返し」という基本的な考え方があります。
- 順次:順番通りに命令を実行する
- くり返し(ループ):同じ処理を何回もくり返す
- 条件分岐:条件によって処理の流れを変える
「【子ども向け】プログラミングの基本構造とは? – 順次、分岐、反復について学ぼう!」でも、くわしく解説しています。よかったら合わせて読んでみてください。
また、人工知能(AI)とは、人間に代わって知的な活動を行うことのできる人工的な知能を作ろうとする研究や技術のことです。
人間がコンピュータに学習や思考の方法を教え、その情報を使ってコンピュータが考えたり学習したりできるようにします。
「【Scratchではじめる機械学習】スクラッチでお手軽に人工知能(AI)を体験!」では、小学校高学年くらいから読める人工知能(AI)の超入門書『Scratchではじめる機械学習』を紹介しています。
Scratchを使って画像認識や音声認識などを利用したプログラムを作り、機械学習のしくみを学ぶことができます。