(C++)动态分配的井字游戏数组



我正在尝试使用对象、类等制作井字游戏。但是,用户可以输入一个选项,以便他/她可以设置电路板的尺寸。目前,它只能做方形(3x3、4x4 等)。

我在白板上画了一个图表来解释我接下来要谈论的内容(忽略右侧关于订单和原始轴的内容,这是为了别的东西。此外,真正需要关注的是表格和代码):http://d.pr/i/5CY8

游戏板的宽度和高度由用户导入的大小(逐个数字)设置。然后,我有两个 for 循环来每次创建一个指向新正方形的指针。数组列表将保存我们的方块。但是,由于数组列表的位置(它在标题中),我无法在创建二维数组时分配其大小。因此,我需要动态分配大小,以便我可以设置数组的大小,以便在输入大小时数组列表包含正方形。但是,我不知道该怎么做。

我在 Pastebin 和 Visual Studio 2012 中都有代码。我相信查看Visual Studio文件会更容易,因为会有很多Pastebin链接。

Pastebin 上的 Visual Studio 文件/代码链接列表(对不起,我达到了链接限制!):http://pastebin.com/spH3JaHP

看起来您正在使用 10x10 数组(不同于 arraylist/vector)来存储您的板状态。在运行时声明二维数组的正确方法是new[]运算符。例如:

// header file
Square::SquareState ** boardArray;
// array generation
int height, width;
// get height, width
boardArray = new Square::SquareState*[height];
for (int i = 0; i < height; i ++)
    boardArray[i] = new Square::SquareState[width];

然后,您可以将boardArray用作任何旧的2D数组。

最新更新