5

私は子供向けの「モグラたたき」スタイルの教育ゲームを作成しています。このゲームでは、質問が出され、表示されている右側の数字をクリックする必要があります。たとえば、「2 + 2」のような合計が与えられた場合、子供は「4」が表示されるのを待ってクリックする必要があります。正解がヒットするたびに質問が変わりますが、問題は、新しい質問が表示されたときに正解がなく、クリックするすべての数字が間違ったスコアに追加されることです。なぜこれが起こり続けるのか誰かに教えてもらえますか?

合計の場合は次のとおりです。

function correctlabels() {
    switch (Math.ceil(Math.random() * 9)) {
        case 1:
            check = sum1;
            $('#target').html('0 + 1 = ?');
            break;
        case 2:
            check = sum2;
            $('#target').html('1 + 1 = ?');
            break;
        case 3:
            check = sum3;
            $('#target').html('2 + 1 = ?');
            break;
        case 4:
            check = sum4;
            $('#target').html('2 + 2 = ?');
            break;
        case 5:
            check = sum5;
            $('#target').html('2 + 3 = ?');
            break;
        case 6:
            check = sum6;
            $('#target').html('3 + 3 = ?');
            break;
        case 7:
            check = sum7;
            $('#target').html('2 + 5 = ?');
            break;
        case 8:
            check = sum8;
            $('#target').html('2 + 6 = ?');
            break;
        case 9:
            check = sum9;
            $('#target').html('2 + 5 = ?');
            break;
    }

これが私の意味を示すフィドルです。http://jsfiddle.net/pUwKb/8/

4

1 に答える 1

3

「正しい」クラスを再度追加しないからだと思います。これを変更してみてください:

    $('.character').each(function (index, character) {
        if (!check(parseInt(this.getAttribute("value")))) {
            $(this).addClass("wrong");
            $(this).removeClass("right");
        }
    });

これに:

    $('.character').each(function (index, character) {
        if (!check(parseInt(this.getAttribute("value")))) {
            $(this).addClass("wrong");
            $(this).removeClass("right");
        } else {
            $(this).addClass("right");
            $(this).removeClass("wrong");
        }
    });

いいゲームところで:)

于 2013-01-02T09:34:03.890 に答える