2012-10-09 91 views
0

我創建了一個拼寫遊戲,用戶通過單擊字母拼寫單詞。爲了向用戶顯示他們有多少錯誤,我計算了顯示正確和錯誤消息的次數並將其打印給用戶。顯示錯誤答案

這適用於正確答案,但不適用於錯誤答案。有人能告訴我爲什麼嗎?

這是正確答案的腳本(正常工作)...

var completeLetters = $('.wordglow2').length; 
var completeWords = (completeLetters/3); 

    if ($(right).show()) { 
     $('.counter').html("Right Answers = " + completeWords).show(); 
    } 

這裏是一個不正確的答案(完全相同的邏輯,但都不行!)...

var incompleteLetters = $('.wordglow4').length; 
var incompleteWords = (incompleteLetters/3); 

    if ($(wrong).show()) { 
     $('.counter2').html("Wrong Answers = " + incompleteWords).show(); 
    } 

因此,基本上「wordglow4」是在拼寫錯誤時添加到信件的樣式,「wordglow2」是添加到正確拼寫字母的樣式。

的言語,都是3個字母長,hense了「(incompleteLetters/3)」

這裏是一個小提琴,以幫助http://jsfiddle.net/smilburn/Dxxmh/34/

+3

警告:有聲音在的jsfiddle,所以一定要確保你的揚聲器沒有設置高體積雷了! –

+0

對不起@Jan Sommer – m0onio

回答

1

始終只一個通過在板上指示錯誤答案給你的行爲類012的表格單元格,而不是正確的答案,它們被正確猜測後維持.wordglow2類。

所以.wordglow2計數永遠是正確的,而中.wordglow4計數將永遠只能是3

你應該移動計數變量外.click()事件,並增加它當一個字猜不正確。

因此,在您的示例代碼中,添加...

var animation = false; 
var incompleteWords = 0; // <-- this line 
$('.drag').on('click', function(e) { 

,改變

var incompleteWords = (incompleteLetters/3); 

incompleteWords += (incompleteLetters/3); 
+0

感謝隊友。我不認爲你可以幫助我解決另一個問題。基本上這種方法只適用於3個字母的單詞。我將如何改變它以使用更大的單詞4-6個字母? @andyb – m0onio

+0

首先,您需要更改「正確的單詞」計數器,使其與上述不完整的單詞計數器一樣工作。您還必須更改檢測代碼以僅檢查當前單詞(即不搜索頁面上的所有「.wordglow2」條目),並重構您的邏輯,以便不再需要知道每個單詞中有多少個字母(即擺脫'completeLetters/3'的東西) –

+0

@logicalChimp描述了一個很好的方法,使它可以處理不同數量的字母 – andyb

2

的「完整的單詞」櫃檯的工作,因爲你永遠離開了」。單詞完成時表格單元格中的「wordglow2」風格。爲此$(」。wordglow2' )。長度總是返回總完成字母(因此字)

但是,不正確的話就不行,因爲只要用戶得到它的權利,風格(從'.wordglow4'改爲'.wordglow2' - ps你可能想要考慮使用更多的描述性類名 - 例如'.correctLetter'和'.wrongLetter')。因此,你永遠不會有超過3」 .wordglow4' 在屏幕上的字母,所以incompleteWords計數器將永遠不會過去1

爲了讓不正確的字計數器工作,你需要申報反功能外,並且這樣做:

var incompleteLetters = $('.wordglow4').length; 
incompleteWords += (incompleteLetters/3); 

這應該再繼續以前的失敗的軌跡,並且要

+0

完全同意 「$(this).removeClass('wordglow4')」似乎是你的問題應該是一個計數器而不是「計數班級存在的次數」。 – P6345uk

+0

+1即將發佈相同的答案。 'incompleteWords'需要在'.click()'之外聲明,並且在裏面增加。 – andyb

+0

我仍然無法正常工作。你有可能更新我的問題或提供小提琴嗎? @logical黑猩猩 – m0onio