0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

JavaScript 覚えておくべき注意点!(5) ジャンケンゲームの作り方 数値をランダムにするプログラム

Last updated at Posted at 2019-10-15

ランダム数の導き方、使い方

random.js
Math.random () // 0以上1未満の数値をランダムに作る…①

Math.random () * 3; // 0以上3未満の数値をランダムに作る…②

Math.floor(Math.random () * 3); // 0、1、2の数値をランダムに作る…③

Math.floor(Math.random () * 3) + 1; // 1、2、3の数値をランダムに作る…④


/* このプログラムで使うメソッドの構文 */
var r = Math.random() // 0以上~1未満のランダムな実数を返す
var f = Math.floor(r) // 指定された数値以下の最大の整数を返す

###ジャンケンプログラムを作る

  • ユーザーにジャンケンの手を入力してもらいます。
  • ジャンケンの手は[グー:1][チョキ:2][パー:3]という数値で表現しますが、数値のままでは何を表わしているか分かりにくいので、それぞれGU、CHOKI、PAとい変数に代入したものを使います①。ユーザの手は入力ダイアログボックスを使って入力してもらい、結果を変数humに代入します。②最後にparseInt関数を使い文字列から数値に変換します③ 10は10進数の数値に変換するという意味です。
random_1.js
// ジャンケンの手の番号を設定
var GU    = 1;
var CHOKI = 2;
var PA    = 3;

// ジャンケンの入力ダイアログボックスを表示
var hum = prompt('半角数字で1~3の数字を入力してください。\n\n' + GU + ':グー\n' + CHOKI + ':チョキ\n' + PA + ':パー');
hum = parseInt(hum, 10);

GU、CHOKI、PAの値は一度定めたら変化させる必要がありません。このような値を「定数」と言います。それが定数であるか分かるように変数名を大文字にする習慣があります。
JavaScriptには明示的に定数を表わす「const」というキーワードがありますが、一部のブラウザは対応しておりません。

###ジャンケンゲームの基本的な原理の例示
1.ジャンケンの手を入力してもらう
2.入力値をチェックする
3.コンピュータのジャンケンの手を決める
4.どちらが勝ったか判定する
5.結果を表示する

とプログラムを製作していきます。
プログラム作成時の手順をしっかり考えて、理解します。

jyanken.js
// ジャンケンの手の番号を設定
var GU    = 1;
var CHOKI = 2;
var PA    = 3;

// ジャンケンの入力ダイアログボックスを表示
var hum = prompt('半角数字で1~3の数字を入力してください。\n\n' + GU + ':グー\n' + CHOKI + ':チョキ\n' + PA + ':パー');
hum = parseInt(hum, 10);

// 入力値のチェック
if (hum !== GU && hum !== CHOKI && hum !== PA) {
	// 入力値が不適切な場合
	alert('入力値をうまく認識できませんでした。ブラウザを再読み込みすると、もう一度挑戦できます。');
} else {

	// コンピュータの手を決める
	var com = Math.floor(Math.random() * 3) + 1;

	// コンピュータの手の名前
	var comHandName = '';
	switch (com) {
		case GU:
			comHandName = 'グー';
			break;
		case CHOKI:
			comHandName = 'チョキ';
			break;
		case PA:
			comHandName = 'パー';
			break;
	}

	// 結果の判定
	var msgResult = '';
	if (com === hum) {
		msgResult = '結果はあいこでした。';
	} else if ((com == GU && hum === PA) || (com == CHOKI && hum === GU) || (com == PA && hum === CHOKI)) {
		msgResult = '勝ちました。';
	} else {
		msgResult = '負けました。';
	}
	// 最終的な結果の表示
	msgResult = msgResult + 'コンピュータの出した手は「' + comHandName + '」でした';
	alert(msgResult);
}


参考 いちばんやさしいJavaScriptの教本

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?