c++ - 从二维数组到一维数组的转换

标签 c++ c arrays

我有一个二维数组作为一个网格,可以被认为是一个游戏板。当棋盘初始化后游戏开始时,有四个人。它适用于 nxn 网格。举个例子

x o
o x

我使用二维数组来完成。现在,我尝试将数组转换为一维。我坚持如何将符号放在一维数组的网格上。

for(int i = 0; i < row; ++i)
    for(int j = 0; j < col; ++j)
    {
        //grid[i][j] = '.';
        grid[i * col + j] = '.'; // I've converted the part
    }

    int centerh = row / 2;
    int centerw = col / 2;

    // I'm stuck that part.

    grid[centerh][centerw] = 'o';
    grid[centerh - 1][centerw - 1] = 'o';

    grid[centerh][centerw - 1] = 'x';
    grid[centerh - 1][centerw] = 'x';

最佳答案

这会将您的 2D 网格转换为 1D :

grid1D[row*col];
grid2D[row][col];

for(int i = 0; i < row; ++i)
    for(int j = 0; j < col; ++j)
          grid1D[i * col + j] = grid2D[i][j];

关于c++ - 从二维数组到一维数组的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34176484/

相关文章:

c++ - c++11 for 循环的逗号运算符

c# - 在托盘栏中显示当前语言布局

c++ - 使用 Visual Studio 调试 GLU 的方法?

c - 读取损坏的文件,段错误

php - 将数组导入数据库时​​遇到问题

java - 如果数组长度为奇数,则删除中间的元素;如果长度为偶数,则删除中间的两个元素。

c++ - 无法使用Xcode通过boost成功编译

C++ Xcode 没有用于初始化 vector2d 类型的匹配构造函数

c++ - C/C++ 中的无限循环

c - 为什么数组接收的值可以超过它声明的值