2013-07-08 64 views
0

我正在爲使用sqlite開發android測驗遊戲,並且我想提出一個問題:嘗試最小化問題重複的最佳方法是什麼?我嘗試隨機化查詢的結果並選擇一個,但這不是最好的方法。最大限度地減少結果重複的最佳方式

關於幫助

+0

通過RAND()或類似的順序選擇您的問題,然後循環直到測驗結束。 – Randy

+0

@Randy:RAND保證每條記錄只被選中一次嗎? –

回答

0

您可以閱讀問題並將其存儲在列表中。然後使用Collections.shuffle方法對收集進行洗牌。現在一次刪除一個問題。這確保每次都有獨特的隨機問題

+0

是的,這是真的,但在超過1場比賽 ?一個問題的頻率是否是一個好主意? – mistic

0

取決於您的設置有多大,爲什麼不只是跟蹤遊戲實例與數據庫中添加的列之間所謂的什麼?

當問題被調用時,用一些簡單的事情跟蹤他們的id號 - 就像數組列表一樣。使用這個來避免兩次調用相同的問題。然後在遊戲結束時,或者爲了追蹤多個會話onPause或onStop,請更新數據庫中的列以反映之前是否調用過某個問題。

您可以使用它來:(1)保證同一qustions沒有叫過與財產以後多個會話像

SELECT * FROM TABLE_NAME WHERE KEY_WAS_USED = 0 

,或者如果你想獲得創意 - 爲您提示在您的評論你可以跟蹤每個問題被調用的次數,然後平衡重複次數。

+0

但如果我使用頻率的方法可能問題將永遠選擇相同的順序...例如:如果我有第一次玩3個問題將是一個隨機選擇:如果我選擇1在下一輪我可以選擇2或3,如果我選擇2在下次我會選擇某些3 ..除了這一步,我總是選擇1,2,3 ...任何解決方案呢? – mistic

+0

如果你按照你描述的方式來做 - 是的。但我不一定會使用嚴格的選擇模型。如果您使用平均模式或加權平均模式 - 即選擇的問題時間越少顯示的次數越多 - 您可以平衡頻率,因此您一次又一次地調用較少的相同問題。但是在你的例子中,對於一個小問題基礎來說,正確選擇那些已經選定的選項會讓你失去選擇餘地。 – Rarw

相關問題