
何を学ぶことができるの?
難問で全然解けません!
こうした悩みを解決します。
学習内容
ポンドチューターでは、敵に大砲を投げて倒すシューティングゲームを作ります。
ステージの名前の通りですが、ポンドチューターは後のステージ「ポンド」のためのチューター(=学習補助)です。
学習内容は戻り値のある関数と引数です。
音楽では関数を呼び出すだけでしたが、ポンドチューターでは呼んだ関数は処理を終えると結果を返します。
返ってきた値を使って処理を切り替えます。
そしてポンドチューターではJavaScriptのプログラミングを行います。
戻り値のある関数
関数内の処理を終えたら何かしらの戻り値を返します。
例えば、ポンドチューターではscan()関数が戻り値のある関数ですね。
scan関数は指定した角度に対して存在する敵と自身との距離を100分率で返します。
音楽のステージで設計した関数は処理のかたまりを作っただけで、関数が処理後に何か返すことはなかったですね。
ここはしっかり意識しておきたいところです。
引数
引数とは、関数を呼ぶ時に予め与える数です。
例えばscan(45)のように書くと、45°の方向に対して敵を探すという処理をしますが、この45と指定したのが引数です。
関数を呼ぶ時の括弧内に書きますが、引数に何を入れるかは関数を宣言するときに指定されます。
レベル10の答え
レベル10は撃たれると逃げる敵を追いかけながら大砲を打ち込んで倒します。
様々な答えがあります。下図に私が作ってみたプログラムを示します。

whle(true){では、常に中の処理を実行し続けるようにしています。
if(scan(45)<=40){では、45°の方向に敵を探し、見つけた時の距離が40以下だったらstop()で停止、
もし40より大きければswim(45)で45°の方向に進みます。
そしてscan関数の処理を終えたら、cannon(45,40)で45°方向に距離40先の位置に大砲を打ち込みます。
たかだか8行のプログラムですが、今までブロックを操作していた感覚と全く違うので苦戦すると思います。これは指導者無しでは厳しいかもしれません。
まとめ
・ポンドチューターでは、戻り値のある関数と引数を学習します
・レベル10は様々な答えがあります。
立科プログラミングでは、小学生・中学生を対象に、ブロックリーを用いたプログラミング教室を実施しております。一緒にプログラミング学習を楽しみましょう!
付録:各レベルの答え
レベル1:
cannon(90,40)
レベル2:
cannon(180,50)
レベル3:
while(true){
cannon(45,60)
}
レベル4:
while(true){
cannon(270, 60);
}
レベル5:
whle(true){
cannon(180,scan(180));
}
レベル6:
while(true){
cannon(0, scan(0));
}
レベル7:
swim(315);
レベル8:
swim(270,40);
レベル9:(※回答例の1つ)
swim(0);
while(true){
if(getX()>50){
stop();
}
cannon(0,0);
}
レベル10:
while(true){
if(scan(45) <= 40){
stop();
} else {
swin(45)
}
cannon(45,40);
}