龍野プログラミングクラブ(2026年10月)~形になってきた~

龍野プログラミングクラブは、JR本竜野駅2階多目的室で定期開催しています。改札前、至便です。駐車場も無料で使えます。

レースゲームの公開

プログラミングを勉強したからといって、すぐに結果が出るわけでも、成果物ができるわけでもありません。これは世の中の多くのことと同じです。小中学校で国語を勉強したからといって、芥川賞を取れるような文章や長編小説が書けるかというと、そうはいきません。プログラミングも同じで、長い鍛錬の上に、ようやく成果が乗ってきます。

通い始めて2年ちょっとになるメンバーが、いよいよ成果を出しつつあります。それがこのレースゲームです。

彼は真面目に、淡々と通ってくれるメンバーです。タイピングが上達し、教材を進め、プログラムをどう組み立てていけばいいかを少しずつ身につけてきました。そして今は、AIのコーディングエージェントを使いながら制作を進めています。

最初は、任天堂のマリオカートのようなレースゲームを作りたいと言っていました。それがだんだんリアルな方向に進み、今はどちらかというとグランツーリスモに近い雰囲気になっています。作っているうちに方針が変わるのはよくあることです。

そこそこ見られるゲームになってきたので、今回はこれをWeb上に公開することに挑戦しました。下の写真から、実際に彼が作ったゲームを遊んでいただけます。スマホ対応はしてません。

驚いたのは、AIの答えが変わっていたことです。作り始めた頃は、レンタルサーバーにPythonのゲームをそのまま載せる方法をAIに聞いても、答えが出てきませんでした。それが今では、ちゃんとやり方が出てきます。技術が進歩したのか、AIが進歩したのかはよくわかりません。ただ、Pythonで作ったゲームを、思っていたよりずっと簡単にレンタルサーバーに載せることができました。

これは私にとっても勉強になりました。なるほど、こうすればPythonで作ったゲームを載せられるのか、と実感しています。

2年間、淡々と積み重ねてきたものが、こうして誰でも遊べる形になりました。

まだまだ改良する

一旦は完成としましたが、まだまだ改良していきます。今はまだ荒削りで、手を入れたいところはいくらでもあります。本人も改良したいと言っているので、ここからどう変えていくのか楽しみです。

見た目は、初期のプレイステーションくらいでしょうか。いや、もう少し前、スーパーファミコンの時代のゲームのような気もします。グラフィックだけでなく、ゲーム性にも面白くできる余地がたくさん残っています。

この先、彼がどう改良していくのか期待しています。

ラズPico+サイコロ電子工作 完成


電子サイコロを作っているメンバーは、カソードコモンで書いていたところを、アノードコモンに合わせて書き換えています。LEDのマイナス側をまとめてつなぐか、プラス側をまとめてつなぐかの違いで、どちらかによって光らせ方の指示が逆になります。これで動くはず……というより、動きました。やっと動きました!

彼は以前、電子工作キットを使って、プログラムを組まずに同じようなチラチラ光るサイコロを作り上げていました。今回は違います。工作の部分もプログラムの部分も、全部自分で作りました。全部自分で作った。そのことが、彼の心にいちばん残ったのではないかと思います。

電子工作には、二つの面白さがあります。回路を組んで手に取れるものを作る「ものづくり」の面白さと、それを動かす「プログラム」を作る面白さです。その両方を一度に味わえるのが、電子工作の醍醐味です。

出来上がったサイコロに白い紙をかぶせると、ぐっとサイコロらしく見えるようになります。こういうちょっとしたアイデアを乗せてみる。同じものを作るにしても、自分のアイデアでさらに良くしていけるところに面白みがあります。

実はこの回路も、私が最初に考えた回路やプログラムから、かなり版を重ねています。クラブの中でメンバーと一緒に考えた改良もあれば、メンバーがやってしまったミスを次から防ぐための改良もあります。そうやって改良を重ねていけることこそが電子工作の面白さだと、私自身も思っています。

エラーを読もう

プログラミング学習の基本であり王道なのが「写経」です。誰かが書いた優れたプログラムを、そのまま一字一句間違えずに打ち込む。そうすることで、プログラムの書き方を体で覚えていきます。

小学生や中学生が写経をすると、1回で動くことはまずありません。たいていエラーが出て、それを直してようやく動くようになります。

よくある原因は、ほとんどが入力ミスです。「n」と「m」、カンマとピリオド、小文字の「l」と数字の「1」。このあたりの打ち間違いがよく起きます。出てくるエラーもだいたい決まっていて、NameErrorやAttributeErrorです。変数名を打ち間違えるとNameErrorが出ますし、カンマのつもりでピリオドを打つと、AttributeErrorになることがあります。

エラーが出ると、メンバーはたいてい固まってしまって「どうしたらいいですか?」となります。ここで、一緒にエラーを読みます。

画面に英語がわーっと出てくるので、何が書いてあるかわからないという気持ちはよくわかります。私もそうでした。小学生は英語を本格的に習っているわけではありませんし、中学生でも、授業で習った単語が出てくるわけではありません。「よくわからないものが出てきた、壊れたんですか?」と焦る気持ちは、本当によくわかります。

ですが、実は読むべきところはある程度決まっています。何行目でエラーが起きたかを示す「line」の数字と、エラーの種類。この二つを見れば、だいたい見当がつきます。だから、それを一緒に読んで、一緒に解決する。そのことを大事にして取り組んでいます。

こう言っている私も、クラブを始めた当初は、Pythonのエラーが出るたびに焦っていました。今でこそ落ち着いてパッと判断できるようになりましたが、それは3年以上、メンバーと一緒にエラーを解決し続けてきたからです。

エラーが出ても恐れずに、これからも一緒に解決していきます。

Raspberry Pi でサーバー構築

Linuxをやってみたいというメンバーがいるので、余っていたRaspberry Pi 4を使って、OSのインストールからサーバー構築までを体験してもらうことにしました。余っていた端末にはすでにLinuxが入っていたので、今日はまず、簡単なLinux体験からです。

Linuxでサーバーを組むと何ができるのか。ファイルサーバーやWebサーバーなどいろいろありますが、小中学生にはあまり魅力的に映らないかもしれません。そこで本人に何を作りたいか聞いてみると、マイクラ(Minecraft)のサーバーを作りたいとのこと。大人の私からすると、マイクラサーバーにはまったく興味が湧きません。ですが、「サーバーを作る」という本質は同じです。

まずは手軽なハードウェアにLinuxをインストールし、簡単なサーバーを立ててみる。この一連の流れを一度経験しておけば、どんなサーバーでも自分で調べながら作れるようになるはずです。そういう方針で演習を進めていきます。

実は、一般的なプログラミングよりも、「Linuxを扱えて、サーバーを構築できる」というスキルのほうが、これからの時代に重要かもしれません。人が足りなくなっていく技術領域であり、求められる人材になるという意味でもです。

プログラマー、特にフロントエンドと呼ばれる、画面に見える部分を作る仕事はやりたがる人が多く、いくらでもいます。「Webサイトを作りたい」「Webで動くゲームを作りたい」という分野は、目に留まりやすいからです。一方で、ネットワークやインフラをやりたがる人はめったにいません。地味だからです。

けれど、地味であっても、世の中に絶対に必要とされている領域です。大人でも知らない人が多いかもしれませんが、インターネットはこうしたサーバーやネットワークの仕組みの上に成り立っています。インターネットを使い続ける限り、インフラエンジニアという仕事はなくなりません。AIも同じです。ChatGPTもClaudeもGeminiも、すべてこのインフラの上で動いています。

こうした分野に、小中学生のうちから慣れ親しんでくれるのは頼もしく、私もとても嬉しく思います。私自身、かつて通信インフラに関わっていた時期があるので、多少の知見はあります。プロとしてゴリゴリ引っ張っていくには力不足かもしれませんが、最初の背中を押せるくらいの知識と技術はあります。しっかり後押ししていきます。

ただ、インフラの技術はわかりにくいものです。そのせいかどうかはわかりませんが、インフラを体験し、学べるクラブはそう多くありません。龍野プログラミングクラブで、志高くインフラを学んでみたいという人は、ぜひ門を叩いてみてください。