相生コンピュータークラブ第3-2回~じゃんけんゲームを作ろう準備編2~

2025年5月21日は、相生コンピュータークラブ第3期2回目の開催です。じゃんけんゲームをプログラミングする要素について学んでいきます。

なお、作るじゃんけんゲームは、下のようなCUIベースのゲームです。

じゃんけんゲーム - Terminal
>

タッチタイピングの練習

クラブ活動のはじめにかならず練習するのは、タッチタイピングです。

タッチタイピングで使うツールは、無料タイピングと寿司打です。

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

寿司打 https://sushida.net/

やっぱり右手が苦手なメンバーが多いみたいです。日本語入力だと、右手の移動量が多くて、そのうちホームポジションに戻るのを忘れてしまう様子です。ホームポジションに戻れないから、キーの位置がわからずデタラメになってしまうように見えます。

なんども繰り返し言うように、かならずホームポジションに戻って、そこから指を動かすことがタッチタイピング上達の王道です。かならずホームポジションに戻ることをアドバイスしました。

そして、矢印キーを使ってほしいので、矢印キー練習をしました。エディタでカーソルの移動をするときに、マウスやタッチパッドに指がいってしまうのが良くないなあ、という想いからです。使うツールは、以下の自作ツールです。

テトリス風ゲーム~矢印キー練習用~

操作方法: レベルアップ 矢印キーで画面がスクロールする場合は、こちらのページでプレイできます。 Score: 0 Level: 1

WEBで検索させてテトリスをさせると、スペースキーで回転するゲームを始めるメンバーもいるので、教材として作りました。これなら、矢印キーしか使えません。

なかなか面白かったようで、メンバーみんな楽しみながらプレイしていました。

じゃんけんゲームを構成する要素の説明

前回に引き続き、じゃんけんゲームを作っているプログラムの構成要素を説明します。今回は、条件式とif文です。

「はい」「いいえ」だけで答えられる質問が大事

じゃんけんゲームでは、入力に対して「グー」「チョキ」「パー」の手を割り当てます。ここでIf文を使います。が、Ifを使うには、論理式を理解していることが前提になります。

論理式を小学生向けにごくかんたんに説明すると、「はい(1)」「いいえ(0)」ということです。他のパターンもあるのでまとめたのが下表です。

はいいいえ
TrueFalse
10
電気がある電気がない

このはなしは、めちゃくちゃ大切です。ここを理解していないと、if文は理解できません。

というか、コンピューターはすべて0と1の世界なのです。すべて「はい」「いいえ」でできているといっても過言ではありません。

大切なので、かつてないほどにていねいに説明して、演習問題もやりました。

メンバーみんな理解してくれたようで、良かったと思います。

If文でコンピューターに知恵を与えよう

TrueとFalseがわかったら、Ifはかんたんです。Trueのときに実行する処理と、Falseのときに実行する処理を交通整理しているだけです。

アドリブでメンバーの理解度を確認しながら、現実にあるもので想像しやすい例え話をして解説します。普段大人ばっかり相手にしていると、小学生にわかる例え話がでてきません。小学校の先生の力量に感服です。

さて、こちらも演習問題を解きました。比較的かんたんに解き終わったようです。

おまけ~テトリスを生成AIでプログラミング~

メンバーの理解が早くて、15分くらい時間があまりました。せっかくテトリスを気に入ってくれたみたいなので、生成AIを使ってプログラミングする様子をデモンストレーションしました。

生成AIに指示をして、どのようにプログラミングしていくのかを見てもらいました。生成AIとして、「ChatGPT」は知っていても、「Claude」や「Perplexity」は知らない様子でした。さらに、それぞれ個性があるということも、もちろん知りませんでした。

このあたりの説明をするだけで、みんながきゃっきゃ言っているのがわかります。生成AIって、結構人間っぽいのですよ。

これを書き出すと、おまけではなくなってしまうので、今回はこのへんで。そのうち生成AIプログラミングを交えつつ、クラブの内容を進めていきます。

次回、関数とじゃんけんゲームのプログラミング

じゃんけんゲームのプログラミングには、関数を使わなくてもできます。が、次回でさらっと関数の説明をしておこうと思います。そのうち何度も関数の説明が出てきます。

でも、さらっとなのでじゃんけんゲームのプログラミングも中身を説明しながら進めていこうと考えています。