0

グリッドを動的に生成する 3 文字の単語のリストがあります。

問題は、6x6 グリッドが必要なことです。6x6 (12 ワード) を容易にするのに十分な単語がリストにない場合、必要なサイズではなく、単語と同じ大きさのグリッドしかありません。

常に 6x6 グリッドを生成し、単語の位置をランダムに生成し、ギャップを空のセルで埋めるようにするにはどうすればよいですか?

var listOfWords = {};

var ul = document.getElementById("wordlist");

var i;
for(i = 0; i < ul.children.length; ++i){
listOfWords[ul.children[i].getAttribute("data-word")] = {
     "pic" : ul.children[i].getAttribute("data-pic"),
     "audio" : ul.children[i].getAttribute("data-audio")
};
}

 console.log(listOfWords);
 var shuffledWords = Object.keys(listOfWords).slice(0).sort(function() {
 return 0.5 - Math.random();
 }).slice(0, 12);
 var guesses = {}
console.log(shuffledWords);
var tbl = document.createElement('table');
tbl.className = 'tablestyle';
var wordsPerRow = 2;

for (var i = 0; i < Object.keys(shuffledWords).length - 1; i += wordsPerRow) {
var row = document.createElement('tr');

for (var j = i; j < i + wordsPerRow; ++j) {
    var word = shuffledWords[j];
    guesses[word] = [];

    for (var k = 0; k < word.length; ++k) {
        var cell = document.createElement('td');


        $(cell).addClass('drop').attr('data-word', word);
        cell.textContent = word[k];
        // IF FIREFOX USE cell.textContent = word[j]; INSTEAD
        row.appendChild(cell);
    }
}
tbl.appendChild(row);
}

document.body.appendChild(tbl);

私はこれを試しましたが、動作させることができません....

while(listOfWords.length < 12)
listOfWords.push("   ");
4

1 に答える 1

1

Did you try creating the table with the required size before, and then putting the word to a random td and tr?

于 2012-07-30T09:35:43.350 に答える