0

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

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

游戏板的宽度和高度由用户输入的大小(逐个数字)设置。然后我有两个 for 循环来每次创建一个指向新 Square 的指针。一个数组列表将保存我们的正方形。但是由于数组列表的位置(它在标题中),我无法在创建二维数组时分配它的大小。因此,我需要动态分配大小,以便我可以设置数组的大小,以便在输入大小时保存正方形的数组列表。但是,我无法弄清楚如何做到这一点。

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

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

4

1 回答 1

0

看起来您正在使用 10x10 数组(不同于数组列表/向量)来存储您的电路板状态。在运行时声明二维数组的正确方法是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 数组。

于 2013-02-02T02:22:49.960 回答