###色を格納した配列の数字をランダムにかつ任意のタイミングで変化させたい
ランダムな色が付いた「色の名前」に対して、付いている色の頭文字をキー入力するゲーム( 脳トレのようなもの)を作っています。
おそらくランダムな数字が常に変化しているので、正しいキーを入力しても認識できない
JavaScript
1let correct = randomcolor().slice(0,1); //9行目 2 console.log(correct); 3 document.onkeydown = () => { 4 if(event.key === correct){ 5 console.log('ok'); 6 }else{ 7 console.log('no'); 8 } 9 }
該当のソースコード
JavaScript
1'use strict'; 2const gameDivided = document.getElementById('game-area'); 3const startButton = document.getElementById('start'); 4 5startButton.onclick = () =>{ 6 if(window.confirm('Ready?')){ 7 gameDivided.innerHTML = randomname(); 8 gameDivided.style.color = randomcolor(); 9 let correct = randomcolor().slice(0,1); 10 console.log(correct); 11 document.onkeydown = () => { 12 if(event.key === correct){ 13 console.log('ok'); 14 }else{ 15 console.log('no'); 16 } 17 } 18 document.onkeyup = () => {//キーを離すたび名前と色が変わる 19 gameDivided.innerHTML = randomname(); 20 gameDivided.style.color = randomcolor(); 21 let correct = randomcolor().slice(0,1); 22 console.log(correct); 23 } 24const samplecolor = [ 25 'red', 'blue', 'green', 'yellow', 'purple', 'orange', 'white' 26]; 27 28const colorname = [ 29 '赤', '青', '緑', '黄', '紫', '橙', '白' 30];//R, B, G, Y, P, O, Wが正解 31 32function randomcolor(){//ランダムに色を変更する関数 @param {} @return{string} 色の名前 33 let now = new Date(); 34 let random1 = Math.floor(now.getTime())%7; 35 return samplecolor[random1]; 36} 37 38function randomname() {//ランダムに色の名前を表示する関数 @param {} @return{string} 色 39 var random2 = Math.floor(Math.random() * 7); 40 return colorname[random2]; 41}
試したこと
付いている色の頭文字を答えさせたいので、randomcolor関数のランダムな数字の作り方がネックで、時刻やMath.random()のような常に変わるものが使いにくい?というところまで考えました。何か規則的でなくかつ常に変化しないランダムな数字(0~6の整数)の決め方があれば教えて頂きたいです。
補足情報(FW/ツールのバージョンなど)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/22 01:06
2021/06/22 02:36
2021/06/22 13:59