今日の活動について
今、パソコンクラブではScratchを利用したプログラミングを中心に活動をしています。前回は簡単に変数を利用して、「くじびき」を作りました。そちらの記事は下記を参照してください。
今回は、前回から少し発展して、みんなが普段やっているゲームである、「じゃんけん」をプログラミングしてみました。
じゃんけんのプログラムを組むために必要なこと
じゃんけんで出した手を判別する
まずは、前回の「くじ引き」の「当たりの数字」で変数について使い方を確認しましたが、今回はじゃんけんをしますので、「どの手をだしているのか」を判断するために変数を使います。これをフローチャートで表すと下記のようになります。
じゃんけんには「グー」「チョキ」「パー」の3つの手の種類があるので、それを1~3の数字に割り当てて、猫が出す手を毎回乱数で変わるようにしてあります。その数字を確認して、それぞれの手を猫に言わせるようにしました。そのプログラムがこちらです。 旗をタップしてから、猫をタップしてください。 (スマホの方は全画面ボタンを押していただくと全体が見えると思います。)
これだけだと、単純に、グー、チョキ、パーを言うだけのプログラムで、面白くはないので、ここにプレイヤーが手を選んで、猫と勝負をさせるようにします。
そのため、前回と同じく、もう一つ「プレイヤーの手」という変数を作成します。プレイヤーのても1なら「グー」、2なら「チョキ」、3なら「パー」の3つを判断するようにしています。
それでは、早速、今回作成したプログラムを公開したいと思います。
お互いに出した手を判断して、勝敗を判定する
先ほどと同じ手順で、猫が出す手は乱数で選びます。また、プレイヤーの手は数字のキーの「1」、「2」、「3」を押すとそれぞれになるように設定しました。さて、それでは次にやらなければならないことは、その勝敗判定です。じゃんけんの出す手のパターンはそれぞれの出す手が3種類ずつあるので
3×3=9
で、9通りの結果があります。とはいえ、勝敗の結果は「勝ち」「負け」「あいこ」の3通りしかありません。そのため、9通りも場合分けをするのは流石にめんどくさいので、ちょっとだけ簡単にしてみました。それがこちらです。
猫の手 | プレイヤーの手 | 猫の数 | プレイヤーの数 | 差 | 勝敗 |
グー | グー | 1 | 1 | 0 | あいこ |
グー | チョキ | 1 | 2 | -1 | 負け |
グー | パー | 1 | 3 | -2 | 勝ち |
チョキ | グー | 2 | 1 | 1 | 勝ち |
チョキ | チョキ | 2 | 2 | 0 | あいこ |
チョキ | パー | 2 | 3 | -1 | 負け |
パー | グー | 3 | 1 | 2 | 負け |
パー | チョキ | 3 | 2 | 1 | 勝ち |
パー | パー | 3 | 3 | 0 | あいこ |
手の数字を差をとったとき、「0」のときは「あいこ」、「1」「-2」のときは勝ち、「-1」「2」の時は「負け」となります。そのため、この5項目について場合分けをしました。(もっと簡単な方法があるのでしょうが、私と子どもたちで考えたのはこれが最善という形になりました。)
また、後出し禁止のため、手の数字が変えられるのは「プレイヤーの数字=0」のときに限定しました。最後に、ちょっとしたおまけとして、勝ったら勝数が1ずつプラスされるようなプログラムも作っておきました。
終わりに
今回は、じゃんけんのシステムをプログラム化してみました。子どもたちも全員がルールを知っているからこそ、どうやればそれを再現できるのか、一生懸命模索している姿がみられました。この次のクラブ活動ではこのプログラムを更に進化させていこうかなと思っています。
プログラムを学ぶ上で一番大切なのは、自分が知っている知識をどう使えば正解にたどり着くのかということだと思います。今回は何気なくやっている「じゃんけん」という身近な題材のルールがどのようになっているのか、改めて見つめてみて中身がどうなっているのか解析するのが大切だったのではないかと思います。
それでは 本日の記事はここまでです。 それではいつものように、 今回の記事が参考になったと思われた方、応援してくれる方は、励みになりますので、もしよろしければ、facebookやtwitterでのリンクのシェアをお願いします。 また、関連記事などもありますので見てもらえると大変嬉しいです。それではここまで読んでいただき、本当にありがとうございました。
コメント