何を学ぶことができるの?
難問で全然解けません!
こうした悩みを解決します。
ポンドチューターではなく、ポンドの答えをお探しならこちら↓
学習内容
ポンドチューターでは、敵に大砲を投げて倒すシューティングゲームを作ります。
ステージの名前の通りですが、ポンドチューターは後のステージ「ポンド」のためのチューター(=学習補助)です。
学習内容は戻り値のある関数と引数です。
音楽では関数を呼び出すだけでしたが、ポンドチューターでは呼んだ関数は処理を終えると結果を返します。
返ってきた値を使って処理を切り替えます。
そしてポンドチューターではJavaScriptのプログラミングを行います。
戻り値のある関数
関数内の処理を終えたら何かしらの戻り値を返します。
例えば、ポンドチューターではscan()関数が戻り値のある関数ですね。
scan関数は指定した角度に対して存在する敵と自身との距離を100分率で返します。
音楽のステージで設計した関数は処理のかたまりを作っただけで、関数が処理後に何か返すことはなかったですね。
ここはしっかり意識しておきたいところです。
引数
引数とは、関数を呼ぶ時に予め与える数です。
例えばscan(45)のように書くと、45°の方向に対して敵を探すという処理をしますが、この45と指定したのが引数です。
関数を呼ぶ時の括弧内に書きますが、引数に何を入れるかは関数を宣言するときに指定されます。
レベル1
下のリンクからどうぞ!
JavaScriptコード
cannon(90, 40);
レベル2
下のリンクからどうぞ!
JavaScriptコード
cannon(180, 50);
レベル3
下のリンクからどうぞ!
JavaScriptコード
while (true) {
cannon(45, 60);
}
レベル4
下のリンクからどうぞ!
JavaScriptコード
while(true){
cannon(270, 60);
}
レベル5
下のリンクからどうぞ!
JavaScriptコード
while (true) {
cannon(180, scan(180));
}
レベル6
下のリンクからどうぞ!
JavaScriptコード
while(1){
cannon(0, scan(0));
}
レベル7
レベル8
下のリンクからどうぞ!
JavaScriptコード
swim(270,40);
レベル9
下のリンクからどうぞ!
JavaScriptコード
while (true) {
if (getX() < 50) {
swim(0);
} else {
stop();
cannon(0, 40);
}
}
レベル10
レベル10は撃たれると逃げる敵を追いかけながら大砲を打ち込んで倒します。
様々な答えがあります。私が作ってみたプログラムはこちら。
下のリンクからどうぞ!
JavaScriptコード
while(true){
if(scan(45) >= 50){
swim(45)
} else {
stop()
}
cannon(45, scan(45));
}
whle(true){では、常に中の処理を実行し続けるようにしています。
if(scan(45)<=40){では、45°の方向に敵を探し、見つけた時の距離が40以下だったらstop()で停止、
もし40より大きければswim(45)で45°の方向に進みます。
そしてscan関数の処理を終えたら、cannon(45,40)で45°方向に距離40先の位置に大砲を打ち込みます。
たかだか8行のプログラムですが、今までブロックを操作していた感覚と全く違うので苦戦すると思います。これは指導者無しでは厳しいかもしれません。
まとめ
・ポンドチューターでは、戻り値のある関数と引数を学習します
・レベル10は様々な答えがあります。
さあ、ここまで来れば最後の「ポンド」がんばりましょ!
コメント