2016-11-03 15 views
-2

私が作成したクイズのpercentageCorrect関数を書きましたが、私の関数を呼び出すと間違ったパーセンテージを返しています。また、私は秒のタイマーを持っていますが、60秒ごとに分を増やす方法を理解することはできません。 if文、forループなどを試してみました。以下は、私のJqueryコードです。助けてください、ありがとう!Jqueryクイズのパーセンテージが正しくありません

var minutes = 0; 
var seconds = 0; 
var intervalId; 
var correct = 0; 
var incorrect = 0; 
var timeSpent; 

$(document).ready(function(){ 
    $("#results").addClass('hide'); 
    $('#questions').addClass('hide'); 
$('#startTrivia').on('click', function(){ 
    $('#questions').removeClass('hide'); 
    startTimer(); 
}); 

$("#submit").on('click', function(){ 
    $(".jumbotron").addClass('hide'); 
    $("#questions").addClass('hide'); 
    //get the number of correct... :checked is what the user checked 
    var numberCorrect = $('input[data-correct="correct"]:checked').length; 
    var numberIncorrect = 10 - numberCorrect; 
    //puts in the html what questions were correct vs incorrect 
    $('#correct').html(numberCorrect); 
    $("#incorrect").html(numberIncorrect); 
    timeSpent = "It took you " + minutes + " minutes and " + seconds + " seconds to complete the Thanksgiving Trivia!" 
    $("#timeTaken").html(timeSpent); 
    //calculating percentage of correct answers 
    $("#totalPercent").html("You got " + percentCorrect(numberCorrect, numberIncorrect) + "% on the test!"); 
    //results will show after pushing submit 
    $("#results").removeClass('hide'); 
}); 

//timer pauses after clicking pause timer 
$("#pauseGame").on('click', function(){ 
    pauseTimer(); 
    $("#questions").addClass('hide'); 
}); 

//timer resets after clicking reset timer 
$('#restart').on('click', function(){ 
    resetGame();   
    $("#questions").addClass('hide'); 
    $("#results").addClass('hide'); 
    $(".jumbotron").removeClass('hide'); 
    //clearing the checked radio buttons 
    $("input:checked").removeAttr("checked"); 
    }); 
}); 

// NOT GIVING CORRECT PERCENTAGE? 
function percentCorrect(x, y) { 
    return Math.round((x/y)*100); 
}; 

// CAN'T FIGURE OUT HOW TO MAKE MINUTES INCREASE EVERY 60 SECONDS? 
function totalTime() { 
    seconds++; 
    $('#seconds').html(seconds);  
}; 

function pauseTimer() { 
    clearInterval(intervalId); 
}; 

function startTimer() { 
    intervalId = setInterval(totalTime, 1000); 
}; 

function resetGame() { 
    seconds = -1; 
    totalTime(); 
    this.clearInterval(intervalId); 
}; 
+0

percentageCorrect = (totalCorrect/totalQuestions) * 100 

また、順番に分の数をカウントします。入力は何ですか?予想される出力は何ですか?あなたはどんな出力を得ていますか?間違った値を返す関数はどれですか? –

+0

あなたはあなたの 'percentCorrect'関数に間違った値を渡していると思います。 「y」は私が考える質問の総数でなければなりません。正しい質問が9つあり、1つが間違っていると答えてください(9/1)* 100 = 900、yが質問の合計数(10)のときは(9/10)* 100 = 90となります。 – putvande

答えて

0

あなたの割合が間違っているようです。それは次のようになります。それは二つの質問にこれを分割するのに役立つと計算に問題がある、まさに示すことになる

if(seconds % 60 == 0) minutes++; 
+0

ありがとう、私はそんなに困惑した。ただし、秒は60秒ごとに0にリセットする必要があります。パーセンテージが正しかった!関数の数学が正しかったので、私はそれを理解しようと多くの時間を費やしました。私は変数totalQuestions = 10を追加しました。これは修正されました。秒をリセットするにはどうすればいいですか?私はいくつかのことを試しましたが、まだそれを理解していません。 –

+0

私はそれを理解した、助けをもう一度感謝 –

関連する問題