じゃんけんの勝敗を手っ取り早く処理する表
はじめに
本書は、プログラミング初心者向けに、表の実装を紹介するものである。
例として、じゃんけんの勝敗を処理する。
じゃんけんの仕様
まず、じゃんけんの仕様を考える。
- 対戦者は2人とする。
- 対戦者はそれぞれ「グー✊」「チョキ✌」「パー✋」の3つの手から1つ選んで出す。
- 「グー✊」は「チョキ✌」に勝つ。
- 「チョキ✌」は「パー✋」に勝つ。
- 「パー✋」は「グー✊」に勝つ。
- 同じ手はあいこ(引き分け)となる。
今回は「対戦者は2人とする」という点だけ留意してもらいたい。
じゃんけん関数
今回用意したじゃんけん関数(JavaScript)は以下の通りである。
尚、引数のエラーチェックはしていない。
このじゃんけん関数を使う場合、対戦者2人の出す手を事前に決定しておく必要がある。
ユーザーから入力を受け付けても良いし、乱数を得ても良い。
また、処理結果(勝敗)の表示もこの関数を使う側で行う事になる。
このじゃんけん関数の肝要は、勝敗表を2次元配列で表現している点である。
2次元配列とは、配列のデータの中身がさらに配列になっている物である。
これにより、表を表現する事が出来る。
記述方法の詳細は省くので、以下のソースコードから読み取ってもらいたい。
// じゃんけん関数
// janken(you, opponent)
//
// 引数に0~2の値を入れる。
// 0:グー
// 1:チョキ
// 2:パー
//
// 戻り値
// -1:あなたの負け
// 0:あいこ
// 1:あなたの勝ち
var janken = function(you, opponent) {
// ↓you / opp→ rock scissors paper
// rock draw win lose
// scissors lose draw win
// paper win lose draw
var game = [[ 0, 1, -1],
[-1, 0, 1],
[ 1, -1, 0]];
return game[you][opponent];
};
おわりに
このように、答えが決まっていて将来的にも変更がないデータは、配列や2次元配列でデータを持っておくと良い。
以上。