2013-07-08 125 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

相关问题