2

私のドラッグアンドドロップスペルゲームでは、正しい文字を対応する単語にドラッグすると、スタイルが適用され(wordglow2)、それが消えて背後の画像が表示されるように設計されています。これがゲームの目的です。問題は、ユーザーが単語を間違えた場合、その単語に対して2回目の試行が行われないため、グリッドにとどまり、ゲームを完了できないことです。スタイルが間違った単語(wordglow)に適用された後、もう一度試すことができるようにする必要があります。誰か助けてもらえますか?

$(".drop").droppable({
drop: function(event, ui) {
    word = $(this).data('word');

    guesses[word].push($(ui.draggable).attr('data-letter'));
    console.log($(event));
    console.log($(ui.draggable).text());

    console.log('CHECKING : ' + $(this).text() + ' against ' + $(ui.draggable).text().trim());


    if ($(this).text() == $(ui.draggable).text().trim()) {

        $(this).addClass('wordglow3');
    } else {
        $(this).addClass('wordglow');
    }
    console.log('CHECKING : ' + $(this).text() + ' against ' + $(ui.draggable).text().trim());


    console.log(guesses);

    if (guesses[word].length == 3) {
        if (guesses[word].join('') == word) {
            $('td[data-word=' + word + ']').addClass("wordglow2");

        } else {
            $('td[data-word=' + word + ']').addClass("wordglow4");

        }
    }


},

activate: function(event, ui) {
    word = $(this).data('word');

    // try to remove the class
    $('td[data-word=' + word + ']').removeClass('wordglow').removeClass('wordglow4').removeClass('wordglow3');
}


});
4

1 に答える 1

3

現在、単語が正しいかどうかを確認するために配列を埋めるだけです。しかし、これだけでは十分ではありません。「top」を解きたいのですが、マウスポインタがこの特定の文字の近くにあるので、怠惰で「p」から始めます。その場合、配列は1文字['p']で構成され、単語は解決できなくなります。

代わりに、現在操作している文字を確認、文字を正しい位置に保存して、。の代わりに3で固定された配列を使用してArray.pushください。

ただし、ユーザーが間違った順序を指定できないようにする場合は、古い推測を削除するだけです(を参照splice)。

if (guesses[word].length == 3) {
    if (guesses[word].join('') == word) {
        $('td[data-word=' + word + ']').addClass("wordglow2");

    } else {
        $('td[data-word=' + word + ']').addClass("wordglow4");
        guesses[word].splice(0,guesses[word].length);
    }
}
于 2012-07-24T10:18:43.697 に答える