随机选择一个 0 到 8 之间的数字,直到没有数字可以选择,然后重新开始



我不是真正的程序员。我边走边学。我对C++不够熟悉,不知道该怎么做,所以我在这里问:

我想要一个逻辑,可以随机选择0到8的数字。一旦选择一个数字,就不应该再次选择它,直到程序遍历从 0 到 8 的所有数字。然后,一旦消除了所有数字,程序就会"重置"数字列表并无休止地重新启动相同的过程。

我知道我可能需要做一个枚举(因为我会将其他变量与这些数字匹配),但我不确定我将如何设置这个程序。

您要查找的是随机将数字列表从 0 随机洗牌到 8,按顺序打印出来,然后重新执行。例如:

#include <algorithm>
#include <iostream>
#include <vector>
int main() {
    while (true) {
        std::vector<int> nums {0, 1, 2, 3, 4, 5, 6, 7, 8};
        std::random_shuffle(nums.begin(), nums.end());
        for (auto num : nums) {
            std::cout << num << " ";
        }
        std::cout << "n";
        // some kind of continuation detection
    }
    return 0;
}

您可以创建一个值为:{0,1,2,3,4,5,6,7,8} 的向量

然后,如果一个 for 循环 {

在 1 和 vector.length() 之间选择一个随机数 N(或大小,我不记得名字了)

选取向量

[N-1]并从向量中删除第 N-1 个元素。

}

最新更新