龍野プログラミングクラブ(2025年11月)~レースゲーム作り込むぞ!~

龍野プログラミングクラブは、JR本竜野駅2階多目的室(上の写真)で定期開催しています。明るい場所で元気に活動しています。

タッチタイピングの練習とアルゴロジック

龍野プログラミングクラブでも、かならずタッチタイピングを練習します。

はじめはおぼつかない手つきでも、続けているうちにうまくなります。

無料タイピング https://manabi.benesse.ne.jp/gakushu/typing

寿司打 https://sushida.net/

右手専用タイピング https://typing.twi1.me/game/15206

ここにきて、あるメンバーが毎回タイピングで最高記録を連発中です。なにかコツを掴んだようです。クラブでしか練習していないと言っているので、壁を超えたのだと思います。

アルゴロジックの方は、まだまだ先が長いようです。アルゴロジックも速く考え方のコツを掴みたいところです。

教材の続きはシューティングゲーム

前回まででブロック崩しが終わったので、教材の続きは応用のシューティングゲームを写経します。

ブロック崩しとシューティングゲームは、ぱっと見共通点はないように見えます。しかし、要素を分解してみるとプログラム的にはよく似ているんですね! 自転車とバイクは違うようでよく似ています。いったん抽象的な視点に立って、新しく具体化することはよくあるテクニックです。

さて、シューティングゲームの写経はあっという間に終わりました。

あとは、エラーを自分で解決できるようになりたいところです。一緒に頑張りましょう。

レースゲームを作っていく

シューティングゲームのキリのいいところで、レースゲームの続きを作っていきます。

前回のプログラムを確認して、改善点を2つ設定しました。以下の2つ

  • 画面の上から3分の1は空(そら)とする。
  • 地平線と道路が接するところを左右に動かす(疑似3Dでコーナーを模擬)

生成AIにコードと変更点を指示して、回答を待ちます。出てきたコードでプログラムを再構成した結果がこちらです。

さあ、まだ変な動きをしていますね。変な動きを言語化して整理します。

  • 消失点と手前の道路が同時に動いている。しかも手動 → 消失点のみ自動で左右移動。手前は固定
  • 白線と中央線がズレている → 道路と一緒に動かす
  • 黒い障害物が空から降ってきている → 消失点から現れる

この言語化がなかなか難しいのです。誰かが教えてくれればかんたんだけど、自分の頭で言語化するのは訓練が必要です。慣れてないと言葉が出てきません。お試しあれ。

言語化ができたらあとは生成AIにぶち込みます。出てきたプログラムがこちらです。

まだまだ、おかしいですねえ。生成AIが余計なことをしてくれています。先程の不満点3つの内2つは解決してくれましたが、あたらしく2つの不満点が出てきました。

  • 中央線が垂直方向に向いたまま、斜めに並ぶ(新規)
  • 障害物が中央部分にしか来ない(新規)
  • 空から降ってくるのは修正されていない(継続)

ここで時間切れ、次回はここから修正していきます。

ですが、コード全体を生成AIに読ましてのバイブコーディングは、この辺が限界のように思えます。次は、コードを読みつつ、ピンポイントで修正をかけていくこととします。

プログラムの基礎を勉強するメンバー

新しく参加してきたメンバーは、プログラムの基礎を学習中です。下はif文のネストについて説明したところです。教材にも書いていない、鋭い質問があったので図で描いて説明しました。

こういう質問はいくらでもしてほしいと思います。学校だと先生は授業を進めないといけないので、あまり本筋と外れた質問は好まれません。しかし、私たちのクラブは学校ではありません。好きなだけ探求すればよいのです。

私一人だと答えられないことも多いですが、スタッフは猛者ぞろいなので少々のことは教えてくれますよ!