如何随机化数组
How can I randomize an array?
这是我遇到问题的程序部分:
// precondition: board is initialized
// postcondition: board is shuffled by randomly swapping 20 values
void shuffle(int board[][NCOLS]) {
int num = rand();
num = num %6 + 1;
for (int i = 0; i < 20; i++) {
}
}
很确定我已经错了,我想我可能需要rand
函数,但我不确定for
循环将如何工作。
基本上有 6 张图片,它们分为 4 列,这是一个记忆游戏,截至目前它们停留在同一个地方。我需要使它们是随机的,并在你看不到它们的一侧翻转,但我无法弄清楚。
我不知道如何随机化列,尤其是当它们以简单的董事会和NCOLS
的名义时。
我明白为什么这很难 - random_shuffle
更喜欢 1D 数组,而您有一个 2D 数组。幸运的是,由于数组是连续的,这意味着 2D 数组也可以作为 1D 数组访问 - 它只是内存中的NCOLS x NROWS
元素:
auto begin = &(board[0][0]);
auto end = begin + NCOLS*NROWS;
相关文章:
- C++使用整数的压缩数组初始化对象
- C++17中函数模板中的静态数组初始化(MSVC 2019)
- 从另一个静态常量数组初始化静态常量数组(只需少量计算)
- 在 Python 和 c++ 2d 数组初始化之间.这是怎麽?为什么呢?
- 字节数组初始化会导致 DirectX 崩溃
- 使用 new 和 值进行数组初始化,但没有显式数量的元素
- 运行时C++数组初始化问题
- 使用带有参数包的数组的成员数组初始化类
- 仅通过C++中数组初始化的不同方法,即可在同一输入上获得两个不同的答案
- C++ 2 个指针数组初始化 C2440
- C++结构字符数组初始化
- C++中的多维数组初始化
- constexpr数组初始化
- C++引物动态数组初始化程序的数目超过大小
- 使用std::index_sequence对std::数组初始化进行包扩展
- 当 std 数组初始化太小时,C++会引发错误吗?
- 如何确定结构数组初始化的大小?
- Qt并发错误:数组初始化需要大括号括起来的初始值设定项列表
- 此代码中的数组初始化样式是什么?这是标准的吗?
- 将多维数组随机化(随机播放)为另一个 2D 数组