Amber0229
@Amber0229 (Syun Tahara)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

タイピングゲーム

解決したいこと

JavaScriptで、txtファイルから問題を順番に読み込むタイピングゲームを練習で制作しています。
ランダムで呼び出すプロジェクトがサンプルで置いてあったのですが
それを上から順に呼び出すように変更したいです。

皆様の知識をお借りしたいです。

発生している問題

statement = statementList[Math.floor(Math.random() * statementList.length)];

該当するソースコード

http://www.programmingtheworld.com/index.php/2020/03/22/javascript-typing-game/#3

こちらの記事に置いてあるサンプルコードで練習がてら制作をしています。
記事の最下部のコメントにて質問をしましたが、コメントがすぐに削除されてしまうので
返信をいただくことができませんでした。

自分で試したこと

statement = statementList;

に変更したことで、テキストファイルから全ての情報を呼び出すことが出来たのですが
カンマ区切りで全て表示されてしまうし、タイピングの正誤判定も反応しなくなってしまった。

0

1Answer

ここに配列から要素を取り出す方法が書いてあります。

要素を指定するとき、Integerの変数で場所を指定することもできます。

const arr = [1, 2, 3, 4, 5]
const index = 1

console.log(arr[index]) // 2

⇧こんな感じ

なので、「index.html」の「// JavaScript start」直下にある変数定義ゾーンに
"index"を'0'で定義し、
「問題リストからランダムに問題を取り出す」場所で、

- statement = statementList[Math.floor(Math.random() * statementList.length)];
+ statement = statementList[index];

としてあげると、うまくいくと思います。

ただ、これだと、ずっと0番目が指定されるので、

index++

を要素を取り出したあとに付け加えてあげると、うまくいくと思います。

このままだと、index out of rangeが出そうなので、
「もし、indexがリストの中身より多かったら、indexを0にする」
というコードを記述してあげると、大丈夫でしょう。

0Like

Comments

  1. @Amber0229

    Questioner

    1個ずつ取り出す事に成功しました!
    ありがとうございます!

    50を入力したのち
    51を読み込んでしまって
    未定義のメッセージが出てしまったので
    出ないように出来ないか探ってみます。

    本当にありがとうございました!

Your answer might help someone💌