2

在我的拖放拼写游戏中,我设计了它,因此当将正确的字母拖到相应的单词上时,会应用一种样式(wordglow2),使其消失并显示背后的图片 - 这是游戏的目标。问题是,当用户输入错误的单词时,他/她没有第二次尝试该单词,因此它停留在网格中,这意味着游戏无法完成。将样式应用于错误的单词(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”开头,因为我的鼠标指针靠近这个特定的字母。然后数组将由单个字母组成,['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 回答