允许用户第二次尝试获得正确的答案

时间:2012-07-24 10:06:59

标签: javascript jquery jquery-ui

在我的拖放拼写游戏中,我设计了它,所以当正确的字母被拖到相应的单词上时,会应用一种风格(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');
}


});

1 个答案:

答案 0 :(得分:3)

目前您只需填充数组以检查单词是否正确。但这还不够。说我想解决“顶部”,但我很懒,从“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);
    }
}