\r\n\r\n\r\n```\r\n\r\n```\r\n```javascript\r\n(function(){\r\n\t'use strict';\r\n\r\n\tvar btnclient= document.getElementById('btnclient');\r\n var btnresult= document.getElementById('btnresult');\r\n var result= document.getElementById('result');\r\n var jankenForm = document.getElementById('janken');\r\n var janpon = jankenForm.value;\r\n var resultForm = document.getElementById('btnresult');\r\n \r\n \r\n\r\n\tbtnclient.addEventListener('click', function(){\r\n\t\t// var n= Math.random();\r\n\t\t// if(n<0.33){\r\n\t\t// \tbtnresult.textContent ='グー';\r\n\t\t// }else if(n<0.67){\r\n\t\t// \tbtnresult.textContent = 'チョキ';\r\n\t\t// }else{\r\n\t\t// \tbtnresult.textContent = 'パー';\r\n\t\t// }\r\n\r\n\t\tvar shape;\r\n\t\tvar n;\r\n if (n < 1 / 3) {\r\n shape = 'グー';\r\n } else if (n < 2 / 3) {\r\n shape = 'チョキ';\r\n } else {\r\n shape = 'パー';\r\n }\r\n btnresult.innerHTML = shape;\r\n\r\n\t\t\r\n\r\n\t\tif(shape == \"パー\" && janken ==\"チョキ\"){\r\n\t\t\tresult.innerHTML = \"勝ち!\"\r\n\t\t} else if (shape == \"グー\" && janken ==\"パー\") \r\n\t\t{result.innerHTML = \"勝ち!\"}\r\n\t\telse if (shape == \"チョキ\" && janken ==\"グー\") \r\n\t\t{result.innerHTML = \"勝ち!\"}\r\n\t\telse if (shape == \"パー\" && janken ==\"グー\") \r\n\t\t{result.innerHTML = \"負け!\"}\r\n\t\telse if (shape == \"グー\" && janken ==\"チョキ\") \r\n\t\t{result.innerHTML = \"負け!\"}\r\n\t\telse if (shape == \"チョキ\" && janken ==\"パー\") \r\n\t\t{result.innerHTML = \"負け!\"}\r\n\t\t else{\r\n\t\t\tresult.innerHTML = \"あいこ\"\r\n\t\t}\r\n\r\n\t  \r\n\t// var btnResult = resultForm.value;\r\n\t\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t});\r\n\r\n\tjankenForm.addEventListener('click', function(){\r\n\t\t\tthis.select();\r\n\t\t});\r\n})();\r\n\r\n```","answerCount":1,"upvoteCount":0,"datePublished":"2017-11-03T14:50:30.146Z","dateModified":"2017-11-04T09:13:49.580Z","acceptedAnswer":{"@type":"Answer","text":"> ①「グー、チョキ、パー」のいづれかをクリックすると、\r\n\r\nコードを見る限り、ボタンではなくテキストボックスに入力する形になってますが...。\r\n\r\n> ②で表示された値の定義、渡し方がうまくいきません。\r\n\r\nランダムで生成した手を変数に入れればよいのでは?\r\n\r\n```lang-js\r\n var shape;\r\n if (n < 1 / 3) {\r\n shape = 'グー';\r\n } else if (n < 2 / 3) {\r\n shape = 'チョキ';\r\n } else {\r\n shape = 'パー';\r\n }\r\n btnresult.innerHTML = shape;\r\n```\r\n\r\n---\r\n\r\n```lang-js\r\nif(btnResult = \"パー\" && janken =\"チョキ\"){\r\n```\r\n\r\n`=`ではなく`==`ですね。\r\n\r\n##追記 2017/11/04 19:29\r\n\r\n```lang-js\r\nvar n; \r\n```\r\nこれでは`n`に数字も何も入ってないですよね。もともとあった\r\n```lang-js\r\nvar n = Math.random(); \r\n```\r\nを入れればよいのでは?\r\n\r\nまた、`janken`が定義されていないです。`janpon`のつもりで書いていると思うのですが。","dateModified":"2017-11-04T10:30:34.206Z","datePublished":"2017-11-03T17:15:55.257Z","upvoteCount":1,"url":"https://teratail.com/questions/99057#reply-153073"},"suggestedAnswer":[],"breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"item":{"@id":"https://teratail.com","name":"トップ"}},{"@type":"ListItem","position":2,"item":{"@id":"https://teratail.com/tags/JavaScript","name":"JavaScriptに関する質問"}},{"@type":"ListItem","position":3,"item":{"@id":"https://teratail.com/questions/99057","name":"javascriptでジャンケンゲーム(勝敗の表示)"}}]}}}
質問するログイン新規登録

Q&A

解決済

1回答

669閲覧

javascriptでジャンケンゲーム(勝敗の表示)

sakeota

総合スコア13

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2017/11/03 14:50

編集2017/11/04 09:13

0

0

javascriptの練習としてジャンケンゲームを作っています。
入力フォームに
①「グー、チョキ、パー」のいづれかをクリックすると、
②①に反応して、乱数で「グー、チョキ、パー」のいづれかが表示され、
③①と②の値に応じて、勝敗を表示させたいです。

今のところ、①②までは出来たのですが、③の部分で、②で表示された値の定義、渡し方がうまくいきません。

js部分の②の値の渡し方について、アドバイスいただけると助かります。

html <!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>じゃんけん</title> <link rel="stylesheet" href="css/styles2.css"> </head> <body> <div> <label for="janken">ジャンケン</label> <input type="text" id="janken" /> </div> <div class="button" > <button type="submit" id="btnclient">ポン!</button> </div> <div id="btnresult">?</div> <p id="result"> <script src="js/main2.js"></script> </body> </html>
```javascript (function(){ 'use strict'; var btnclient= document.getElementById('btnclient'); var btnresult= document.getElementById('btnresult'); var result= document.getElementById('result'); var jankenForm = document.getElementById('janken'); var janpon = jankenForm.value; var resultForm = document.getElementById('btnresult'); btnclient.addEventListener('click', function(){ // var n= Math.random(); // if(n<0.33){ // btnresult.textContent ='グー'; // }else if(n<0.67){ // btnresult.textContent = 'チョキ'; // }else{ // btnresult.textContent = 'パー'; // } var shape; var n; if (n < 1 / 3) { shape = 'グー'; } else if (n < 2 / 3) { shape = 'チョキ'; } else { shape = 'パー'; } btnresult.innerHTML = shape; if(shape == "パー" && janken =="チョキ"){ result.innerHTML = "勝ち!" } else if (shape == "グー" && janken =="パー") {result.innerHTML = "勝ち!"} else if (shape == "チョキ" && janken =="グー") {result.innerHTML = "勝ち!"} else if (shape == "パー" && janken =="グー") {result.innerHTML = "負け!"} else if (shape == "グー" && janken =="チョキ") {result.innerHTML = "負け!"} else if (shape == "チョキ" && janken =="パー") {result.innerHTML = "負け!"}  else{ result.innerHTML = "あいこ" }    // var btnResult = resultForm.value; }); jankenForm.addEventListener('click', function(){ this.select(); }); })();

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

①「グー、チョキ、パー」のいづれかをクリックすると、

コードを見る限り、ボタンではなくテキストボックスに入力する形になってますが...。

②で表示された値の定義、渡し方がうまくいきません。

ランダムで生成した手を変数に入れればよいのでは?

lang

1 var shape; 2 if (n < 1 / 3) { 3 shape = 'グー'; 4 } else if (n < 2 / 3) { 5 shape = 'チョキ'; 6 } else { 7 shape = 'パー'; 8 } 9 btnresult.innerHTML = shape;

lang

1if(btnResult = "パー" && janken ="チョキ"){

=ではなく==ですね。

##追記 2017/11/04 19:29

lang

1var n;

これではnに数字も何も入ってないですよね。もともとあった

lang

1var n = Math.random();

を入れればよいのでは?

また、jankenが定義されていないです。janponのつもりで書いていると思うのですが。

投稿2017/11/03 17:15

編集2017/11/04 10:30
karamarimo

総合スコア2555

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sakeota

2017/11/04 06:05

ありがとうございます。 =を==に直したところ、エラー文は消えたのですが、var shapeを定義しても、「あいこ」以外の結果表示がうまくいきません。 テキストボックスに入れているキーの渡し方がよくないのでしょうか。 javascript >> btnclient.addEventListener('click', function(){ var shape; var n; if (n < 1 / 3) { shape = 'グー'; } else if (n < 2 / 3) { shape = 'チョキ'; } else { shape = 'パー'; } btnresult.innerHTML = shape; if(shape == "パー" && janken =="チョキ"){ result.innerHTML = "勝ち!" } else if (shape == "グー" && janken =="パー") {result.innerHTML = "勝ち!"} else if (shape == "チョキ" && janken =="グー") {result.innerHTML = "勝ち!"} else if (shape == "パー" && janken =="グー") {result.innerHTML = "負け!"} else if (shape == "グー" && janken =="チョキ") {result.innerHTML = "負け!"} else if (shape == "チョキ" && janken =="パー") {result.innerHTML = "負け!"}  else{ result.innerHTML = "あいこ" }    });
karamarimo

2017/11/04 06:53

var n; に何も代入していないのでは...? 質問文に全コードを載せてもらえますか?
sakeota

2017/11/04 09:15

質問文を更新して、コードを全て記載しました。ありがとうございます。
karamarimo

2017/11/04 11:52

開発者コンソールを使えばエラーなどをチェックできるので活用してください。
sakeota

2017/11/04 12:54

有り難うございました。最終的に、var n;の定義を戻したのと、var janpon = jankenForm.value;をaddEventListenerの中に定義したら、思い通りの結果になりました。 今回、==を=に直していたときには、コンソールでエラーが出ていたのですが、それ以外は、elseに記載があったからか、エラーが出ませんでした。 htmlは、変更していませんが、jsのコードは最終的に以下に変更しました。 沢山ご教示いただき、有り難うございました。 >>jsのコード (function(){ 'use strict'; var btnclient= document.getElementById('btnclient'); var btnresult= document.getElementById('btnresult'); var result= document.getElementById('result'); var jankenForm = document.getElementById('janken'); var resultForm = document.getElementById('btnresult'); btnclient.addEventListener('click', function(){ // var n= Math.random(); // if(n<0.33){ // btnresult.textContent ='グー'; // }else if(n<0.67){ // btnresult.textContent = 'チョキ'; // }else{ // btnresult.textContent = 'パー'; // } var janpon = jankenForm.value; var shape; var n = Math.random(); if (n < 1 / 3) { shape = 'グー'; } else if (n < 2 / 3) { shape = 'チョキ'; } else { shape = 'パー'; } btnresult.innerHTML = shape; if(shape == "パー" && janpon =="チョキ"){ result.innerHTML = "勝ち!" } else if (shape == "グー" && janpon =="パー") {result.innerHTML = "勝ち!"} else if (shape == "チョキ" && janpon =="グー") {result.innerHTML = "勝ち!"} else if (shape == "パー" && janpon =="グー") {result.innerHTML = "負け!"} else if (shape == "グー" && janpon =="チョキ") {result.innerHTML = "負け!"} else if (shape == "チョキ" && janpon =="パー") {result.innerHTML = "負け!"}  else{ result.innerHTML = "あいこ" }    // var btnResult = resultForm.value; }); jankenForm.addEventListener('click', function(){ this.select(); }); })();
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.29%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問