Я пытаюсь реализовать игру 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;
}```