正しいプログラムで、モアナはカカモラたちを倒せるか?

ディズニー映画「モアナと伝説の海」を題材にした「Moana: Wayfinding with Code」は、映画の主人公の主人公の少女「モアナ」と、モアナを助ける青年(半神半人)「マウイ」をプログラムで動かし、全19レッスンをクリアしていくプログラミング学習教材です。前回は基本操作とレッスン10までの流れを解説しました。

今回はレッスン11からレッスン19までの流れと見どころを解説します。

レッスン11

レッスン11ではモアナとマウイから操作するキャラクターを選び、カカモラ(映画に登場するヤシの実をかぶった海賊)の船に乗り込みます。ここから新規に「よける」(カカモラの攻撃をよける)、「打つ」(武器を使って攻撃する)ブロックが加わります。魚捕りのときもそうでしたが、モーションの細かさも注目してください。

棒(?)の上にいるカカモラの前まで移動して[打つ]で攻撃します。カカモラに近づいたら[よける]で攻撃を避けるようにとヒントが出されますが、カカモラの目の前に移動したタイミングで[よける]ができるよう、ブロックを配置するのがポイントになります。

レッスン12

倒すカカモラが3体に。最初に何もブロックが配置されていないので、自分で1から配置していく必要があります。

レッスン13

ここから[まで繰り返す]という新しいブロックが登場します。回数を指定する代わりに終わりの条件を指定するもので、[カカモラまで繰り返す]なら、カカモラの目の前に着くまでブロック内の行動を繰り返します。

レッスン14

この教材の最後の新要素「条件」についての解説動画が流れます。ここまでのカカモラはモアナ(またはマウイ)が目の前に来たときに石を投げてくるだけでしたが、このレッスンからのカカモラは、離れた距離でもヒトデを投げてくることがあります。

そのため、1歩前に進むごとに[もしヒトデ]ブロックでヒトデが飛んできたかを判定し、飛んできた場合は[よける]ようにプログラミングします。

また、ここからの[打つ]の対象はカカモラでなくロープになります。ロープの目の前で[打つ]を実行して、カカモラの船をバラバラにしましょう。

このレッスンでは[もしヒトデ]が最初から配置されています。このまま実行すると、モアナがヒトデをよけられず、倒されてしまいます。

レッスン15

対象のロープが2つになり、意外と複雑なパズルになります。[繰り返す]と[ロープまで繰り返す]ブロックが入れ子になった中で、[前に進む]や[向く]のタイミングを最適に調整するのがカギです。

レッスン16

レッスン15から発展して対象のロープが3つになり、最初から配置されているブロックがなくなりました。1から配置して的確に動かしましょう。

レッスン17

ここからは[もし]ブロックに[違えば]という条件が加わります。これは、ほかのプログラムでいう[ELSE]や[または]に相当するもの。少々わかりにくいですが、渦巻き状のコースを進むために目の前が道なら進む、違っていたら曲がる、となるようにブロックを配置します。

レッスン18

レッスン17の発展版です。ゼロからブロックを配置しましょう。

レッスン19

レッスン18までで、道を探すパズルとしてのMoana: Wayfinding with Codeは終了し、最後のレッスン19はおまけ的なものになります。[握手して前に][ジャンプしてツイスト]など踊りの振りを指定するブロックと[繰り返す]ブロックを組み合わせて、カカモラを躍らせましょう。

ブロックを配置して実行すると、3匹のカカモラが踊り始めます。

踊りが終わると終了。[終了証]をクリックすると終了証のデータを表示できます。

終了証はPDFファイルで、右クリックして[名前を付けて保存]をクリックすると保存できます。