太子プログラミングクラブ中級第1期・初級第1期(2026年6月)~通信対戦を改造する~

太子プログラミングクラブは、双方向通信をするプログラムに取り組んでいます。6月は私が作ったシューティングゲームを、自分たちの好みに改造していきます。

初級は、タイピングの練習をしつつ、AIと対話します。

基礎練→生成AIについて学習

初級はタイピングから始まり、アルゴロジックなど基本的な練習を進めていきます。

初級は小学4年生が中心のクラスです。小学校4年生だと、まだまだタイピングは未熟ですし、ローマ字が完全に覚えられていない場合があります。ゲームを使って、楽しく訓練をしながら伸ばしていきます。

  1. 文字が自由に入力できること
  2. 自分の考えをコンピューターに伝えられること

これらが上手になってくると、その後のプログラミングや、生成AIを使った対話でも高い効果がえられます。

生成AIがどのように動いているかを知る

ChatGPTで有名な生成AIですが、こちらが話しかければ、まるで人間のように話を返してくれます。中には生成AIと結婚してしまうというような人もいるみたいで、もはや人間のように振る舞うAIというのは、身近な存在になっています。

では、その生成AIがどのように文字を出力しているかというのをご存知でしょうか?大人でも、生成AIがどのように文字を出力しているのかを知らない人は多いのではないかと思います。

そこで、メンバーに向けて、生成AIがどのように文字を書き出しているのかを分かりやすい例えで説明しました。

生成AIが文字を出力する仕組みというのは、次に来る言葉の予測です。次にどのような単語が来るだろうかというのを予測して、最も確率が高いものを出力しているに過ぎません。

そこには感情があるわけではなく、単に確率の高い言葉を出力しているだけなのですが、あたかも感情があるように見えるというのが面白いところです。

この原理を知っていれば、AIから良い答えを引き出す方法が見えてきます。

自分が欲しい「答え」を得ようと思ったら、その語が出る確率が高くなるように、こちらからAIに対して入力するのです。

つまり:

  1. 具体的に問いかければ、AIは具体的に返してくれます。
  2. 曖昧に問いかけると、曖昧な答えしか出てきません。

よく私が説明するのは、AIはあなたの鏡だということです。

AIがポンコツな答えを返すのであれば、その理由はあなたの問いかけが悪いからです。逆に、AIが期待通りにすべて答えてくれるのであれば、それはあなたの問いかけが優れているということです。

生成AIの使い方はテクニックを覚えていくのは無駄です。こういった原理原則を理解しつつ使っていくことが重要です。

文字入力が上達すると、AI の出力の精度が上がる

野球が大好きなメンバー二人。生成AIを使って野球ゲームを作っているのですが、だんだん出来が良くなっていくのが見てとれます。

ローマ字入力も順調に上達しているところです。たった3ヶ月続けているだけでかなり上達してきました。

タイピングの上達に比例して、生成AIでゲームを作るのも、見違えるほど良くなったのがわかります。

下の写真、静止画だとわかりにくいんですが、スタンドの観衆が動きます。

実際のスタンドの映像のように、観衆が動いて盛り上がっている様子がしっかりと再現されていて、素晴らしいと思います。

彼は、単にプログラムが動くだけではなく、見た目のところまで再現をはじめました。感性が磨かれたというふうに言った方がいいかもしれません。

中級はゲームの基本形が全員完成

中級クラスのタイピングを少しほったらかしにしていました。喝を入れたいと思います。

喝といってもこのクラスは真面目です。しっかり適切にサポートしていけば、きちんと応えてくれます。

タイピングの記録も、私の記録に肉薄するメンバーが二人。もうすぐ超えられそうです。

補足すると、私のタイピングスピードはかなり速い部類です。日本語入力で1分間に200字以上を入力します。一般的な事務職で速いと言われているレベルよりもさらに速いです。

つまり、タイピングを身につけ始めているメンバーの彼らは、一般的な事務職並みに速いのですが、それをさらに凌駕するタイピングスピードを身につけ始めているという状況です。早く私を超えてください。

続けて、アルゴロジックもすすめます。きちんと考えてすすめていくことが大切です。

アルゴロジックのコツは、同じ形を見つけることです。

「繰り返しの括弧」をうまく使うと、使用するブロックの数が圧倒的に少なくなります。繰り返しの括弧の中の部分は、同じ形を繰り返すという考え方です。

ロボットの軌跡がどのような形の組み合わせになっているかを考えていくと、アルゴロジックは解けます。

あとは1回で全部を完成させようと思わなくていいのです。もちろん1回で完成させてもいいのですが、難しく感じたときは途中までやってみて考える、もしくは何回もやり直しながら考えるということです。

ただ、重要なのは「考える」ということです。何回もやっていても、場当たり的に数打ちゃ当たる戦法でやっているだけでは、いつまで経っても上達しません。

要は考えること。

  1. ここまではこうやってみた
  2. ここから先がダメだった
  3. じゃあ次はどうするのか

このように区分して考えるということが重要です。

ゲームの基本形を全員完成させる

前回一部の人だけ完成させた、シューティングゲームを、今日は全員完成させるのが目標です。

前回作ったコードを動かしたところ、いくつか変な動きがありました。それを私が修正しておきましたので、まずは自分の環境でそれらを動かすことを目指します。

コーディングの作業というよりは、自分の環境に適切に移植できるかといったところが重要です。

コード以外でトラブルが多発する

通信系のプログラムの大変なところは、プログラムコード以外のところでトラブルが多発するという点です。例えば、ファイアウォールの設定やルーターの設定などが挙げられます。

プログラムコードについては、ある程度こちら側で作業範囲を限定して整備してあげれば、比較的まともなものが出てきやすい傾向にあります。しかし、自分のパソコンやメンバーそれぞれのパソコン以外の場所にトラブルがあると、その原因の切り分けから始めなければならないため、非常に大変です。

メンバーにその切り分けをさせるのは困難であり、すべてスタッフが対応しなければなりません。そういった事情もあり、一般的なプログラミングクラブでは通信系の内容は扱わないのだと思います。

前提となる知識は、国家資格の基本情報技術者試験の内容を理解しているレベルです。つまり、大学の工学部や情報系の学部の3年生、4年生レベルが最低限必要といったところです。

それらをベースに現実の問題を考えていくことになるので、内容を理解するだけでもかなりハードルが高い範囲と言えます。ましてや、トラブルシューティングまでこなすとなると、相当難しいのではないかと思います。

ゆくゆくはメンバーで、こういったところを自力で解決できるようになるといいなと思いつつ、今はまだ簡単なプログラムです。

改造前に現状把握

改造と言っても、現状どういったプログラムなのかという理解が必要です。

この写真のメンバー(前後)は、対戦ゲームを動かしながら現状を確認しています。

私がサンプルとして提示しているゲームプログラムのコードは、あえて簡素に作っています。必要最低限の機能しか盛り込んでいません。

シューティングゲーム部分
通信機能は別途
サーバー側プログラム
接続を待っている方のプログラム
クライアント側プログラム
接続しにいく方のプログラム

ここからイメージや想像力を膨らませて、自分のゲームに作り替えていく。それがこれからの回の目標です。

例えば、今は横方向にしか動けない自機と敵機ですが、これを縦方向に動くようにしたらどうでしょうか。また、現状では弾の連射がいくらでもできてしまいますが、連射制限をかけてみるのもいいかもしれません。

それから、画面の下も今のまま(真っ黒な画面)でいいのでしょうか。少し寂しいので、背景をつけてみるのも一つの手です。

いろいろなアイデアが出てくると思います。まずは遊びながら、想像力を働かせてみてください

プログラムを改造する

プログラムを改造するには、生成AIを使って改造していきます。

ずっと生成AIを使っているのですが、ここでもう一度私のお手本を見せます。少し高度な使い方、AIにより良い答えを出させるためのテクニックを示しました。

下の写真、初級の野球ゲームよりよほど見た目は地味ですが、やっている内容は実に高度です。

なぜかというと、AIに自由に作らせているわけではなく、元あるコードを十分活かしたまま、自分の思う通りに作っているからです。AIに任せきりにするのではなく、AIを制御しているという点で、非常に高度な生成AIプログラミングと言えます。

こちらのメンバーは、シューティングゲームの自機と敵機に合わせて画像を配置しました。二人で相談しながら画像を選んで、うまく配置できています。

通信のプログラムなので、必ず相手がいます。したがって、この演習は二人一組で進めています。

プログラムの先には誰か相手がいるということ、自分一人だけではないということを学んでほしいと思います。

サポートしていて気づいたのは、ファイル名やフォルダの構造について理解が浅いなというところです。

彼らが小学生の時に少し触れてはいたのですが、やはりまだ理解が足りないなと感じています。プログラムを進めていく上で、このフォルダとファイルの関係というのは外せないので、どこかでフォローしなければならないでしょう。

少し焦りすぎるような気もするのですが、中学生メンバーがほとんどで、そろそろ必要な時期かなという気もします。高校の情報の先生も、中学校で全然教えないということで嘆いていました。高校の情報の授業を進める際、ファイルやディレクトリの構造を分かっていない状態で進めるのは相当大変なようです。

これは習得するものというよりは、住所や本棚のような概念なので、そこまで難しいことではありません。コンピューターの中がどのようになっているかをイメージするだけの話なので、近々どこかでフォローする機会を作らなければならないでしょう。