質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

719閲覧

タイピングゲームを作っています。ある単語を打ち終わったら次の単語を表示したい。

退会済みユーザー

退会済みユーザー

総合スコア0

JavaScript

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2020/03/04 11:31

編集2020/03/04 12:03

タイピングゲームを作っています。単語を打ち終わったら次の単語を表示したいです。
コードを何度も見直していますが,どこがいけないのかわかりません。。。

サイトの正しいコードも貼り付けています。
違いが見つけられません。

宜しくお願い致します。
サイトの正しいコード

JavaScript

1'use strict'; 2 3{ 4 const words = [ 5 'apple', 6 'sky', 7 'blue', 8 'middle', 9 'set', 10 ]; 11 let word = words[Math.floor(Math.random() * words.length)]; 12 let loc = 0; 13 let score = 0; 14 let miss = 0; 15 16 const target = document.getElementById('target'); 17 const scoreLabel = document.getElementById('score'); 18 const missLabel = document.getElementById('miss'); 19 20 target.textContent = word; 21 22 function updateTarget() { 23 let placeholder = ''; 24 for (let i = 0; i < loc; i++) { 25 placeholder += '_'; 26 } 27 target.textContent = placeholder + word.substring(loc); 28 } 29 30 window.addEventListener('keydown', e => { 31 if (e.key === word[loc]) { 32 loc++; 33 if (loc === word.length) { 34 word = words[Math.floor(Math.random() * words.length)]; 35 loc = 0; 36 } 37 updateTarget(); 38 score++; 39 scoreLabel.textContent = score; 40 } else { 41 miss++; 42 missLabel.textContent = miss; 43 } 44 }); 45}

html

1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <meta charset="utf-8"> 5 <title>Typing Game</title> 6 <link rel="stylesheet" href="css/styles.css"> 7</head> 8<body> 9 <p id="target">word</p> 10 <p class="info"> 11 Letter count: <span id="score">0</span>, 12 Miss count: <span id="miss">0</span> 13 </p> 14 15 <script src="js/main.js"></script> 16</body> 17</html>

自分のコード

html

1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <title>タイピングゲーム</title> 7 <link rel="stylesheet" href="css/styles.css"> 8</head> 9<body> 10 <p id="target">word</p> 11 <p class="info"> 12 Letter score<span id="score">0</span> 13 Miss score<span id="miss">0</span> 14 </p> 15 <script src="js/main.js"></script> 16</body> 17</html>

JavaScript

1"use strict"; 2 3{ 4 const words=[ 5 "apple", 6 "lemon", 7 "banana", 8 "melon", 9 ]; 10 let word =words[Math.floor(Math.random()*words.length)]; 11 let score=0; 12 let miss=0; 13 let loc = 0; 14 15 const target = document.getElementById("target"); 16 const scoreLabel=document.getElementById("score"); 17 const missLabel=document.getElementById("miss"); 18 19 target.textContent=word; 20 21 function updateTarget(){ 22 let placeholder =""; 23 for(let i =0; i<loc ; i++){ 24 placeholder += "_"; 25 } 26 target.textContent=placeholder+word.substring(loc); 27 } 28 29 window.addEventListener("keydown",e=>{ 30 if(e.key===word[loc]){ 31 loc++; 32 if(loc===word.lenght){ 33 word=words[Math.floor(Math.random()*words.length)]; 34 loc=0; 35 } 36 updateTarget(); 37 score++; 38 scoreLabel.textContent=score; 39 }else{ 40 missLabel.textContent=miss; 41 miss++; 42 } 43 }); 44} 45

css

1body { 2 padding-top: 40px; 3 font-family: 'Courier New', monospace; 4 text-align: center; 5} 6 7#target { 8 font-size: 48px; 9 letter-spacing: 3px; 10} 11 12.info { 13 color: #ccc; 14}

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

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

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

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

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

guest

回答1

0

ベストアンサー

こんなかんじですかね・・・

投稿2020/03/04 11:58

yambejp

総合スコア114814

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

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

yambejp

2020/03/04 11:58

全部使い果たしたらどうするのかわからないので保留
退会済みユーザー

退会済みユーザー

2020/03/04 12:00

ありがとうございます!とても参考になる書き方でした!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問