じゃんけんゲームを作ってみよう

「じゃんけん」について考えてみましょう。

あいて(ここではコンピュータ)が「グ―」か「チョキ」か「パー」のどれかの手を出す。

自分も「グー」か「チョキ」か「パー」のどれかの手を出す。

ルールはもう説明不要ですよね。

ではその勝敗判定について考えていきましょう。

まず、プログラミングしやすいように、グーを0,チョキを1、パーを2と割り当ててみましょうか。

別に決まりはないので、どう割り当てても大丈夫です。

勝敗は次のようになりますね。

これではちょっとみにくいですねぇ。少し表の形を変えてみましょう。

整理されて少し見通しが良くなりました。勝ち負けにそれぞれ色を付けてみましょうか。

いい感じですね。つぎは・・・、自分の手と相手の手を比べたいんでしたよね。二つのものを比べるときには・・・、よく使うのは引き算です。
ためしに引き算をしてみましょう。自分の手から相手の手を引き算してみます。

マイナスの数字ができてしまいました。このままではちょっと扱いにくそうなので、全部の数字に3を足して、正の整数にしてみましょうか。

ここで、表をぐっとよく見てみましょう。何か法則は見つかりますか??

あいこは3で割り切れる。まけは3で割ったあまりが1、かちは3で割ったらあまりが2になることにきづきましたか?
ここまで気づけば、もうプログラミングはできたようなものです。割り算のあまりを求めるには、Modを使います。

相手の手から自分の手を引いて、3をたしてから、3で割って余りを求める。式で書くとこうなります。

((jibunnote - aitenote ) + 3) Mod 3

3で割ったあまりを求めた

この計算結果が0なら「あいこ」、1なら「まけ」、2なら「かち」でしたね。

では、一気にコードを書いちゃいましょう。

前に実行したときの残骸が残っているかもしれないので、最初に、画面上にあるすべての画像を消去しています。

今回は配列変数(または単に「配列」ともいう)を使っています。

配列とは、変数のマンションみたいなものです。a,b,c・・・と次々に新しい名前を付けていくのは大変なので、ひとつだけなまえをつけて、あとはa(1),a(2),a(3)のように後ろの()内に数字を入れて、それぞれ別の変数として使えるようにしたものです。そう、プログラマはものぐさなのです!

なんどか対戦を繰り返すことを考えて、最初に必要な部品をすべて画面上に配置して、非表示にしています。こうすることで、表示/非表示を切り替えるだけで、重複する画像を追加せずに済ませています。

つぎの

では、画像を配置して同時にShape型の配列変数に格納しています。

というのはユーザーの入力を求める命令になります。ここでポップアップメッセージを表示して、入力結果を変数 jibunnote に格納しています。

select~End Selectの形は、おみくじの時に出てきましたね。最初は少し難しく感じるかもしれませんが、何度も書いて慣れていきましょう。

こんなかんじになれば、成功です。