使用多边形数组的锯齿

时间:2015-08-20 01:45:23

标签: c# multidimensional-array jagged-arrays

这里有新成员。有很多关于数组的帖子,但我没有看到这个,所以我想知道这是否可行。

我有一个11 x 10的游戏板。我有一个阵列来摆放正方形。顶行是[0] [0] - a [0] [10],底行是[9] [0] - [9] [10],中间是你想象的。

将董事会视为棋盘格。一块移动到一个正方形,并放置在该特定点的阵列中。扭曲的是你可以在一个正方形上堆叠一些碎片。这就是锯齿状阵列的用武之地,因为堆栈中的碎片数量可能会有所不同。

我的问题是,我可以在电路板上的每个点上将锯齿状数组嵌套在多维数组中吗?

我能想到的另一种方法就是拥有110个锯齿状阵列,每个位置都有一个没有多维数组的阵列。那会是这样做的吗?

我知道我有很多关于数组的知识,所以如果有人能够指出我应该查看的方向,那将非常感激。感谢。

1 个答案:

答案 0 :(得分:0)

如果堆栈中的碎片数量可以变化,在我看来你真正想要的是一个代表游戏板的二维数组,它包含堆栈的实例。这些可以是一些自定义数据类型,或者您可以使用List<T>(例如List<Piece>其中Piece是您的游戏片类型。)

例如:

List<Piece>[,] board = new List<Piece>[11,10];

for (int row = 0; row < 11; row++)
    for (int column = 0; column < 10; column++)
        board[row, column] = new List<Piece>();

在这里使用List<T>,您的电路板会在每个地方以空列表开头,您只需在列表中添加或删除它们即可添加或删除它们。

如果“堆栈”实际上是一个独立的游戏单元本身,那么将它们表示为自定义类型可能更有意义。在这种情况下(取决于游戏的工作方式),您实际上可能会在每个棋盘数组元素中重新分配堆栈。我不知道......你的问题中没有足够的信息可以深入了解实施细节。