расширить массив в определенном направлении - PullRequest
0 голосов
/ 11 апреля 2019

Я пытаюсь реализовать игру join5 (реализация доступна здесь: https://rosettacode.org/wiki/Morpion_solitaire)

и я должен расширить доску в определенном направлении, если игрок достигает границы.

так как я работаю со статическими массивами (без malloc и т. Д.), Я не могу перераспределить их. Поэтому я должен скопировать их в более крупные. Я думаю о создании перечисления, чтобы заставить меня выбрать направление. Затем скопируйте элементы в соответствии с направлением I.E, добавив строку или столбцы с нулями до первой или после последней строки. что мне удалось сделать, это расширить матрицу во всех направлениях, что означает, что матрица 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;
}```

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...