【JavaScript】じゃんけんプログラム

じゃんけんプログラム

ボタンをクリックすると、じゃんけんをするプログラムを作成してみます。
「judgment.js」にじゃんけんの勝敗を判定するJavaScriptを記述します。


<対戦条件>

  • 対戦相手はコンピューターです。
  • じゃんけんの出し手は、「グー」、「チョキ」、「パー」とします。
  • グー = 0、チョキ = 1、パー = 2の数字を割り当てます。


<勝敗条件>
勝敗の条件を考えてみます。

あいこです:
ユーザー = コンピューター
ex) 0 = 0、1 = 1、2 = 2
あなたの勝ちです:
ユーザー = コンピューター
ex) 0 = 1、1 = 2、2 = 0
あなたの負けです:
それ以外の場合

条件式を考える

勝利条件をどのように計算しているかを解説します。
ユーザーの出し手に対して、コンピューターが1つ上手(うわて)の数字を出せばユーザーの勝ちとなります。
これを式に表すと、以下のようになります。

(jankenComp + 1) % 3 == jankenUser


ユーザーの出し手が、

グーの場合:
jankenComp = (0 + 1) % 3 = 1 % 3 = 1(余りは1なので、「チョキ」)
(ユーザー) v.s (コンピューター)=◯(グー) X(チョキ)
チョキの場合:
jankenComp = (1 + 1) % 3 = 2 % 3 = 2(余りは2なので、「パー」)
(ユーザー) v.s (コンピューター)=◯(チョキ) X(パー)
パーの場合:
jankenComp = (2 + 1) % 3 = 3 % 3 = 0(余りは0なので、「グー」)
(ユーザー) v.s (コンピューター)=◯(パー) X(グー)


それでは、実際にJavaScriptを組んでみます。

//変数を宣言します
var strMsg1 = "あいこです";
var strMsg2 = "あなたの勝ちです";
var strMsg3 = "あなたの負けです";

//じゃんけんの結果を導きだす関数
function myResult(jankenUser){
	//0から2の乱数を発生させます
	var jankenComp = Math.floor(Math.random() * 3);
	if (jankenComp == jankenUser)
		return strMsg1;
	else if((jankenComp +1) % 3 == jankenUser)
		return strMsg2;
	else
		return strMsg3;
}


HTMLにJavaScriptを組み込んで「じゃんけんプログラム」を動作させてみます。

<?xml version="1.0" encoding="utf-8" ?>
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="JS/app/judgment.js"></script>
<script type="text/javascript">
	//じゃんけんの結果を表示する関数
	function myChoise(jankenUser){
		var strLocal = myResult(jankenUser);
		alert(strLocal);
	}
</script>
<title>じゃんけんプログラム</title>
</head>

<body>
	<form>
		<input type="button" id="btnG" onclick="myChoise(0)" value="グー">
		<input type="button" id="btnC" onclick="myChoise(1)" value="チョキ">
		<input type="button" id="btnP" onclick="myChoise(2)" value="パー">
	</form>	
</body>

</html>