0

スクランブルされた単語がフラッシュされ、ユーザーはスクランブルされた単語が何であるかを入力します。

これまでのところ、私はこのコードを持っています。これはシャッフルと表示用です。

document.getElementById("shuffle").value = shuffle(document.getElementById("word").value);
var shuffledword = document.getElementById("shuffle").value;
var z = shuffledword.split("").join('    ');
var x=document.getElementById("demo");
x.innerHTML=z;

var str=document.getElementById("demo").innerHTML; 
var n=str.replace(charcode,"...");
document.getElementById("demo").innerHTML=n;

私が欲しいのは、ユーザーがシャッフルされた単語と同じ数字の文字を入力するように制限することです。例: 単語は「DOOMED」です。ユーザーが文字 D と O を 3 回クリックできず、1 回か 2 回だけクリックできるようにしたいと考えています。シャッフルされた単語の文字数に応じて、他の文字についても同じです。

これは可能ですか?

4

1 に答える 1

0
// Set an object with each letters of the (shuffled) word and their count
var letters = {};
for (var i=0 ; i<word.length ; i++) {
  var c = word.charAt(i);
  if ( ! letters[c]) letters[c] = 1;
  else letters[c]++;
}

...

function process_user_char(K) {
  // When user enter letter K
  if ( ! letters[K]) {
    alert("You cannot enter " + K);
    return false;
  }
  else {
    letters[K]-- ;
    return true;
  }
}

....

// To check wether user entered all letters, returns Yes or No
function check_if_user_entered_all_letters() {
  for (var o in letters) {
    if (letters[o]) return "No";
  }
  return "Yes";
}

edit onkeypressedreturn true / falseに統合するために process_user_char に追加されました。

ここにjsfiddleがあります。

于 2013-01-23T05:58:46.800 に答える