2016/04/18 1.0版
富士通)あしたのものづくり研究会
有山 隆史
Hour of Code講師向けガイド
~古典的な迷路編
はじめに
▌本ガイドは講師・チューター向けに記載してい
ます。
►操作上の注意
►プログラミング言語としての見方
►【参考】
◘https://studio.code.org/hoc/1
1
▌ パズル1~パズル5
►逐次実行(ステートメント(文)を並べる)
▌ パズル6~パズル9
►決められた回数を繰り返し(for文)
▌ パズル10~パズル13
►条件が満たすまで繰り返し(while文)
▌ パズル14~パズル17
►条件分岐(if文)
▌ パズル18~パズル20
►条件分岐(if else文)
2
パズルの構成
3
【パズル 1】
ブタを捕まえるのを手伝ってくれない?
「前に動く」ブロックをつみあげて(注)、「実行」ボタンをおしてね
【注】
原文やブロック名から以下の設問のほうが
説明しやすい。また、全体を通して設問とブロッ
クの名前が異なっている場合が多い。
「まえにすすむ」ブロックを2つ並べて、
【JavaScript】
moveForward();
moveForward();
【コメント】
moveForward()はパラメタが空の
関数(Function)として記述される。
【操作について】
パズル1は、操作を説明するため、講師が
実際にやってみるといい。
ブロックの置き方
Angry Birdの向き(4方向)
4
【パズル 2】
このブタはわたしの羽をぐちゃぐちゃにします。
ブタをみつけるのを手伝って!
【JavaScript】
moveForward();
moveForward();
moveForward();
【コメント】
moveForward()はAngry Birdが向
いている方向へ進む。
5
【パズル 3】
道を通って、おばかなブタまで連れてってね。
ばくだんにきをつけて、羽がふきとびます!
【JavaScript】
moveForward();
moveForward();
turnRight();
moveForward();
【コメント】
turnRight()
「みぎにまがる」ブロック
ひだり、みぎが分からない子供が
いたら、練習用紙にてワーク。
6
【パズル 4】
緑の悪者のところにつれていって!
(ばくだんに気をつけて)
【JavaScript】
moveForward();
turnLeft();
moveForward();
turnRight();
moveForward();
【コメント】
turnLeft()
「ひだりにまがる」ブロック
7
【パズル 5】
落ち着いて、悪いブタを見つけましょう。
でないと怒るかも!
【JavaScript】
turnRight();
moveForward();
turnLeft();
moveForward();
moveForward();
moveForward();
turnLeft();
moveForward();
【解説】
ステートメントを8行並べる。
8
【パズル 6】
ブロックを2つだけ使い、緑のブタにたどりつく方法があります。
わかりますか?
【JavaScript】
for (var count = 0; count < 5; count++) {
moveForward();
}
【コメント】
「まえにすすむ」を5回並べても、間違
いとせずに、まだいい方法があるよと
教えてみましょう。
繰り返し回数は変更できる
パズル8で必要となる
9
【パズル 7】
ブロックを3つだけ使い、緑の侵入者のところへ連れていって
【JavaScript】
turnRight();
for (var count = 0; count < 5; count++) {
moveForward();
}
【コメント】
最初、南を向いていないので注意
10
【パズル 8】
一番小さい数のブロックを使って、悪いブタを追い出しましょう。
「繰り返し」ブロックを使います
【JavaScript】
for (var count = 0; count < 4; count++) {
moveForward();
}
turnLeft();
for (var count2 = 0; count2 < 5; count2++) {
moveForward();
}
【コメント】
一回目の繰り返しで回数を4に変更
11
【パズル 9】
灰色のブロックを消すことはできません。「繰り返し」ブロックを使い、
3回繰り返し、このパズルを解きましょう。「動く」「動く」「曲がる」の
3つのブロックを灰色の「繰り返し」ブロックにいれてみましょう
【JavaScript】
for (var count = 0; count < 3; count++) {
moveForward();
moveForward();
turnRight();
}
【コメント】
灰色のブロックは最初から置いて
あり、動かすことができない。
12
【パズル 10】
OK。新しい「まで繰り返す(Repeat until)」ブロックを試しましょう。
いらいらさせるブタにたどりつくまで繰り返します
【JavaScript】
while (notFinished()) {
moveForward();
}
【コメント】
設問は「まで繰り返す(Repeat
until)」とあるが、実際のブロックは
「とどくまでくりかえす」であり、プロ
グラムはwhile文である。
このブロックは、ゴールにたどり着
くまで繰り返すという意味。
【注意】
ここから最後の設問まで
「とどくまでくりかえす」ブロックを
外側に置いて解く。
13
【パズル 11】
最後の問題です。4つのブロックだけを使いパズルを解けますか?
【JavaScript】
while (notFinished()) {
moveForward();
moveForward();
turnLeft();
}
【コメント】
特になし。
14
【パズル 12】
人間のあなた。わたしはゾンビ。おなかが減っています。。。
ヒマワリが必要です。5つのブロックだけでわたしを連れていけますか?
【JavaScript】
while (notFinished()) {
moveForward();
turnLeft();
moveForward();
turnRight();
}
【解説】
繰り返しパターンを見つける。
15
【パズル 13】
OK。似ていますが、ちょっと違います。
ブロック5つだけでできますか?
【JavaScript】
while (notFinished()) {
turnRight();
moveForward();
turnLeft();
moveForward();
}
【コメント】
特になし
16
【パズル 14】
新しい"もし"ブロックを使い、いつ曲がるかを決めてください。
ヒント: あともう1つのブロックが必要です、
どう設定しているかを学べば、次はひとりでできるようになります
【JavaScript】
while (notFinished()) {
moveForward();
if (isPathLeft()) {
turnLeft();
}
}
【コメント】
特になし。
17
【パズル 15】
OK。さっきのパズルと同じです、
でもどうやって"もし"ブロックと"繰り返し"ブロックを
一緒に使ったかをもう一度思い出してみましょう
【JavaScript】
while (notFinished()) {
moveForward();
if (isPathRight()) {
turnRight();
}
}
【コメント】
前問とは、右回りの違い
18
【パズル 16】
ドングリ !ドングリ !ドングリ !
いちばんすくないブロックでぼくをあそこまでつれていくには、
"もしも"ブロックをつかってね。
【JavaScript】
while (notFinished()) {
moveForward();
if (isPathLeft()) {
turnLeft();
}
}
【コメント】
まえにすすんで、みちを確認する
パターンその1
19
【パズル 17】
よし、練習のためにもう一度やってみよう。
さっきとそんなにかわらないけど、壁にきをつけてね。
【JavaScript】
while (notFinished()) {
moveForward();
if (isPathRight()) {
turnRight();
}
}
【コメント】
「みちがあるなら」ブロックは以下の選択ができる
・もし まえにいけるなら
・ひだりに みちがあるなら
・みぎに みちがあるなら
20
【パズル 18】
"もし○○そうでなければ××"ブロックは、
”もし"の結果によって、○○をするか、××をするかが変わってきます。
この新しいブロックをつかって、ぼくをドングリまでつれていってね!
【JavaScript】
while (notFinished()) {
if (isPathForward()) {
moveForward();
}
else {
turnLeft();
}
}
【コメント】
まえの状態を見ながら
進む
21
【パズル 19】
”もし○○でなければ××”ブロックの練習をもう一回やりましょう。
一度でクリアできるかな?
【JavaScript】
while (notFinished()) {
if (isPathForward()) {
moveForward();
}
else {
turnRight();
}
}
【コメント】
22
【パズル 20】
ブロックをあと3つだけ足して、難しい迷路をクリアしてみよう。
もしこの迷路をクリアできたら、どんなに長くてクネクネした道でも、
ぼくはドングリまで歩くことができるよ。いそいで!氷がとけてきた!
【JavaScript】
while (notFinished()) {
if (isPathForward()) {
moveForward();
}
else {
if (isPathRight()) {
turnRight(); }
else
{
turnLeft();
}
}
}
【コメント】
左か右のどちらかに道があるかを
確認して、あったらそちらに曲がる。

Hour of code講師向け実施ガイド(迷路)