首页 > 解决方案 > 向特定方向扩展数组

问题描述

我正在尝试实现 join5 游戏(此处提供了一个实现:https ://rosettacode.org/wiki/Morpion_solitaire )

如果玩家到达界限,我必须将棋盘向特定方向扩展。

因为我正在使用静态数组(没有 malloc 等),所以我无法重新分配它们。因此我必须将它们重新复制成更大的。我正在考虑制作一个枚举来让我选择方向。然后根据 IE 的方向重新复制元素,在第一行之前或最后一行之后添加一行或一列零。我设法做的是在所有方向上扩展矩阵,这意味着 2x2 矩阵变成 4x4 等......但我希望能够将方向作为参数传递并添加行、列等......

这是向各个方向扩展矩阵的代码。Tplateau 是一种具有高度、长度和二维数组的结构。

我的问题是:我怎样才能使数组在指定的方向扩展?

预先感谢您的帮助!

Tplateau * expandMatrixBy(Tplateau *jeu, int number) {

    Tplateau *jeu2;
    int i,j;
    jeu2->hauteur = jeu->hauteur+number;
    jeu2->longueur = jeu->longueur+number;

  for (int row = number; row < jeu2->hauteur; row++) {
    for (int col = number; col < jeu2->longueur; col++) {
      jeu2->plat[row][col] = jeu2->plat[row - number][col - number];
    }
  }
  return jeu2;
}```

标签: cmultidimensional-array

解决方案


推荐阅读