こんにちは!
キッズプログラミング教室「イフキッズアカデミー」
えりちゃん先生です!
※クラス分け
【火1】・・・火曜日16:00〜17:30
【火2】・・・火曜日17:40〜19:10
【木1】・・・木曜日16:00〜17:30
【木2】・・・木曜日17:40〜19:10
【土】・・・土曜日10:00〜11:30
【日】・・・日曜日10:00〜11:30
今回は火曜後半のレッスンを報告します!
生徒さんはJくん(中2)とMちゃん(小5)でした。
レポートスタートです。
まずはプロフェッショナルコースのJくん。
前回に引き続き、Visual Studioで本格的なプログラミングをしていきます。
今回は生徒名を追加、更新、削除できるアプリケーションを作っていきます。
デザインや基本的なプログラムはどんどんできているJくん。
先生がアドバイスをするところはありませんでした。
追加、更新、削除に必要なSQLの書き方もバッチリ!
今まで学んだことがしっかり活かせていますね!
追加、更新は難なくクリアしたJくんでしたが、削除で1つ気が付いたことが…。
J「いま削除を使用と思ったんですけど、思いついたやり方だと削除したい生徒が削除できないんじゃないかと思って…。」
え「うんうん、実はそうなんだよね。」
そうなんです。実はDB(データが保存されているもの)を使った削除は少し工夫がが必要なんです。
表示されている名前を選んで削除したとき、選択したのが上から何番目なのか?を表すindexを調べます。
その番号+1をした数と一致するIDを持つデータをDBから探し、その人を消す、ということをします。
すると、一回目はうまくいくのですが2回目以降は削除した人より後ろの人を消すとうまくいきません。
indexというのは「上から何番目?」を表すので前の人が削除されたら番号が繰り上がるのに対し、IDは出席番号のようなものなので、前の人が削除されても繰り上がりません。
なのでずれてしまうわけです。
ここに気が付いたJくん。削除はどうやって実装しようか悩みます。
え「先生だったら、表示する名前とその人のIDだけを入れたリストを作って、選択されたデータの番号とリストを照らし合わせて、一致したデータのIDを使ってDBを削除するってするかな。」
J「えーっと……、あ、そっか、リストボックスからリスト、リストからDBって流れでやればずれないでできるかも。」
ちょっと難しいのですが、細かく流れを説明すると閃いた様子。
プログラムを修正していきます。
このような作り方にすれば番号がずれてしまって消したい人が消えないなんてことが起こりません。
修正した後実行してみると、登録・更新はもちろん、削除もしっかりできていました!
ここまでできたところで今日はタイムアップ。
データを削除する方法について今日は学びました。
次回以降の問題もこれを活かして進めてみてくださいね。
続いてはロジカルコースのMちゃん。
前回に引き続きScratchの問題集を進めていきます。
最後の問題なのでちょっと難しかったようですが、頑張って進めてくれました!
シューティングゲームを作っているのですが、前回は自機が4方向に動く処理と、敵がランダムな場所に表示され、自機に向かって動くところまで出来ていました。
今回は敵機を倒す処理を作っていきます。
え「シューティングゲームだから、敵を倒す弾を用意したいのね。なんか好きな画像を選んでほしいな。」
M「わかりました。何にしようかな…。」
色々悩んでいましたが、リンゴを選択!
猫からリンゴが発射されてバスケットボールを倒す、というシューティングゲームになりました。
え「じゃあリンゴに動きを付けたいんだけど…まずは、猫が動いたときにリンゴが置いてけぼりになっちゃうからずっと猫と一緒に動くようにしてみよう。」
M「えーっと…なんかそんなブロック使ったことあるような…。」
え「うんうん、動きブロックにそんなブロックがあるような…。」
探してみると、”どこかの場所へ行く”ブロックがありました。
どこかの場所、ではなく、猫へ行くという風にブロックを変更し、さらにずっとブロックと組み合わせることで猫にリンゴがずっとついていくことができるようになりました。
続いてリンゴを発射されるブロックを作ります。
え「リンゴをこのまま発射させてもいいんだけど、そうすると弾が1発しかないゲームになっちゃうんだよね。」
M「ピンチになっちゃう。」
え「そうだよね、ちょっと弾1発っていうのはかわいそうだからたくさん弾を打てるようにしたいんだよね。」
M「どうやったらいいんだ…。」
え「用意したリンゴの画像をコピーするというか…なんか増やせるブロックなかったっけ?」
M「あ…えっとクローン!」
え「そう!じゃあクローンしてみよう!」
猫についていくリンゴの画像をクローンして、クローンした方を動かすことにしました。
これで無限に弾が打てるようになりましたね。
クローンされたリンゴには、右に進んでほしいのでずっとブロックでx座標の数を10ずつ変えるようにしました。
さらに、右端に着いたリンゴたちが溜まってしまい、リンゴの壁ができてしまったので右端に着いたら弾を消すような処理も作りました。
座標を調べたり、条件を付けたりするとき、どのブロックを使ったらよいかとても悩んでいたので先生と一緒に説明を聞きながら作ってみました。
え「じゃあ今リンゴが右端に着いたら、を作ったのでそれを真似してバスケットボールも左端に着いたら、っていうのをやってみようか。」
M「はい。左端に着いたらゲームオーバーだからですね。」
え「そうそう。今度は左端の数を調べないといけないね。」
リンゴでやったことを思い出しながら作ります。
まだ少し悩むこともありますが、自力で作ることができました!
バスケットボールが左端に着いたら、「ゲームオーバーだよ」ということをほかのスクリプトにも教えてあげるのでその処理を作ります。
バスケットボールとリンゴにその処理を付けたところで今日はタイムアップ。
あともう少しで完成ですね!
まだ少し各ブロックが何をしてくれるものなのかがあやふやなところがあり、悩んだときにあれもこれも選んでしまう部分がありました。
「これは何をしてくれるブロック?」と聞くとしっかり考えて正しいことを言ってくれるので、選ぶ前に考えることができるようになるとどれを使えばいいか?で悩む回数が減ると思います。
今後はそれができるように一緒に頑張っていきましょうね。
次回のレポートもお楽しみに!
無料体験授業実施中!
毎週火曜日 16:00~17:30、17:40~19:10
毎週木曜日 16:00~17:30、17:40~19:10
毎週土曜日 10:00~11:30、11:40~13:10
※日曜日も臨時で実施していることがあります
お気軽にお問い合わせください
お申し込み・お問い合わせは、こちら。
お電話でも受け付けております。
03-6806-6861
(平日10:00~18:00)
イフキッズLINE@お友だち募集中!
新着授業レポートの通知、無料説明会やイベントの案内など、
耳よりな情報を配信中です。
加えて、お友だち登録されている方には、
イベント参加費の割引、
入会の際の割引、プレゼントなどの特典も!