プロが教えるわが家の防犯対策術!

プログラミングの経験はないです。JavaScriptの勉強を最近を始め、簡単なじゃんけんのゲームを作っているのですが、プログラミングが作動しない原因はわかりません。間違って居る場所を教えて下さい。



// 数値の設定
var G = 1;
var C = 2;
var P = 3;

// 入力ダイアログ
var user = prompt(G + ':ぐー\n' + C + ':ぱー\n' + P + ':ちょき\n\n' + '※半角で数字を入力してください' );
user = parseFloat(user);

// 入力値のチェック
if (user !== G && user !== C && user !== P) {
alert('入力値を認識できません。再読み込みしてください。');
} else {

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

//コンピューターの手の名前
var comHand = '';
switch (com) {
case G:
comHand = 'ぐー';
break;
case C:
comHand = 'ちょき';
break;
case P:
comHand = 'ぱー';
break;
}
// 結果の判定
var Result = '';
if (user === com) {
Result = '引き分けです。';
} else if ((com === G && user === P) || (com === C && user === G) || (com === P && user === C)) {
Result = 'あなたの勝ちです。';
} else {
Result = 'あなたの負けです。';
}
// 結果の表示
Result = Result 'コンピューターの出した手は「' + comHand + '」でした。' ;
alert(Result);
}

A 回答 (2件)

こんにちは



>プログラミングが作動しない原因はわかりません。
直接の原因は、最後の方の
>Result = Result 'コンピューターの出した手は「' ~~
が、SyntaxErrorになっています。
 Result += 'コンピューターの出した手は「' ~~
 Result = Result + 'コンピューターの出した手は「' ~~
などとしてください。

ブラウザでテストしているなら、F12キーで「開発ツール」が表示できるものが多いですから、これを利用することでエラーを確認することができるはずです。

内容的には、勝ち負けの判定におかしなところがあるようですので、場合分けを再確認してみてください。
    • good
    • 0

Result = Result 'コンピューターの出した手は「' + comHand + '」でした。

' ;

Result += 'コンピューターの出した手は「' + comHand + '」でした。' ;

C + ':ぱー\n' + P + ':ちょき\n\n'

C + ':ちょき\n' + P + ':ぱー\n\n'

余談ではありますが、

以下のようにすれば、処理が簡略化できて便利です
var GCP = {1:'ぐー', 2:'ちょき', 3:'ぱー'};
// 入力値のチェック
if (!GCP[user]) エラー処理();
// コンピューターの手の名前
comHand = GCP[com];

長い条件式はバグの温床になりますので、結果判定は計算式に落としこんで簡略化しましょう。
delta = (com - user + 3) % 3;
result = ({0:'引き分け', 1:'勝ち', 2:'負け'})[delta];
    • good
    • 0
この回答へのお礼

ありがとうございます!参考にします!

お礼日時:2017/03/27 22:59

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!