プログラミングの経験はないです。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);
}
No.1ベストアンサー
- 回答日時:
こんにちは
>プログラミングが作動しない原因はわかりません。
直接の原因は、最後の方の
>Result = Result 'コンピューターの出した手は「' ~~
が、SyntaxErrorになっています。
Result += 'コンピューターの出した手は「' ~~
Result = Result + 'コンピューターの出した手は「' ~~
などとしてください。
ブラウザでテストしているなら、F12キーで「開発ツール」が表示できるものが多いですから、これを利用することでエラーを確認することができるはずです。
内容的には、勝ち負けの判定におかしなところがあるようですので、場合分けを再確認してみてください。
No.2
- 回答日時:
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];
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- UNIX・Linux AWSのEC2のZabbixユーザーでawscliコマンドが実行できない状態を解決する 1 2022/12/06 22:17
- JavaScript JavaScriptの即時関数の書き方 1 2022/11/29 09:52
- オープンソース Coinmarketcap api 1 2022/05/30 15:47
- PHP php ログイン 1 2022/11/01 00:24
- Ruby vscode 文字化け 1 2022/05/21 19:17
- JavaScript console.logがどうしても2つ機能しないのでアドバイスをくださいお願いします 2 2022/07/07 22:13
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- その他(プログラミング・Web制作) laravel 本番環境でメールが送れません。 1 2023/02/17 17:57
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
jQueryのload()を使用して外部...
-
google apps scriptの終了のさせ方
-
C#OpenCv V4にのエラーに関する...
-
Javaで避けるゲームを作ってい...
-
【JavaScript】数当てゲームを...
-
C#で、ContextMenuStripに動的...
-
javaScript textareaの一行あた...
-
翌月を取得するGASが分かりません
-
ASP.NETのコントロールの値をJa...
-
javascriptにお詳しい方に質問...
-
商品コードを入力で、商品名、...
-
JavaScriptで決まった「時刻」...
-
ホームページの最終更新日を他...
-
C# 演算 奇数と偶数 表現の仕方
-
特定のclassを表示、非表示にする
-
なぜmatchメソッドがエラーにな...
-
javascriptでカウントダウンタ...
-
ASP.NET MVCでObjectをjsに渡す
-
idを使わずにonclickで自身の要...
-
Linux バイナリ実行できない "...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
google apps scriptの終了のさせ方
-
C#OpenCv V4にのエラーに関する...
-
メールフォームの日付入力フォ...
-
GASでundefinedエラーが出ます
-
ジェネレーターの作り方
-
GASでGoogleフォームの自動返信...
-
なぜmatchメソッドがエラーにな...
-
翌月を取得するGASが分かりません
-
ローカルにあるファイルを検索...
-
HTMLで作った時報アプリが動き...
-
ASP.NETのコントロールの値をJa...
-
C# 演算 奇数と偶数 表現の仕方
-
html javascript リンク先アド...
-
gas スプレッドシートがアクテ...
-
javascriptでテーブルに追加し...
-
VSCODE[Python]の設定について
-
JavaScriptで決まった「時刻」...
-
ASP.NET MVCでObjectをjsに渡す
-
イベントが初めの一回しか起き...
-
jqGridについて
おすすめ情報