我正在创建一个琐事游戏,我正在运行一个函数数组中的问题的随机函数,但我不希望该函数再次被选中。有没有办法做到这一点?
这是我的数组:…
创建一个用0,1,2,3,…初始化的整数数组,直到你的问题数组中的元素数量 - 在你的例子中只有0,1,2。
然后将shuffle算法应用于此数组,以便随机化值的顺序。
然后通过从混洗数组中按照它们在该数组中出现的顺序选择索引来选择问题。
我假设这是某种游戏循环。无论如何,我发现两种不同的策略:
第一个策略:声明一个单独的函数指针,它只是继续你的游戏循环。调用特定函数后,使用continue函数更新数组。结果是每次从阵列中选择已经运行的项目时,它都会触发重做。对于用户来说,它看起来总是会调用一个新问题。您需要记录已调出的问题数量,以便了解游戏何时结束。
第二个策略:每次调用函数时,移动数组中的所有元素以替换刚刚调用的元素。因此,如果你的数组是[f1,f2,f3,f4]并且你调用f2,你将向上移动元素,这样你的数组现在看起来像[f1,f3,f4]。每次调用函数时,您需要跟踪需要调用的函数数量并减少该索引,以便知道,(1)调用函数的范围(0..3变为0..2)下一次)和(2)知道什么时候你没有问题,游戏结束了。
我相信还有其他很多其他策略。