#include <stdio.h>
#include <stdlib.h>
#define ROWS 19
#define COLS 16
char* get_line(int index) {
static char box[ROWS][COLS] = {
{ '#', '.', '.', '.', '#', '.', '.', '.', '#', '.', '.', '.', '#', '.', '.', '.' },
{ '#', '#', '#', '#', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.' },
{ '.', '#', '.', '.', '#', '#', '.', '.', '.', '#', '.', '.', '.', '.', '.', '.' },
{ '.', '#', '.', '.', '#', '#', '#', '.', '.', '.', '.', '.', '.', '.', '.', '.' },
{ '#', '.', '.', '.', '#', '#', '.', '.', '#', '.', '.', '.', '.', '.', '.', '.' },
{ '#', '#', '#', '.', '.', '#', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.' },
{ '#', '#', '.', '.', '#', '#', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.' },
{ '.', '#', '.', '.', '.', '#', '.', '.', '#', '#', '.', '.', '.', '.', '.', '.' },
{ '.', '.', '#', '.', '#', '#', '#', '.', '.', '.', '.', '.', '.', '.', '.', '.' },
{ '#', '#', '.', '.', '#', '.', '.', '.', '#', '.', '.', '.', '.', '.', '.', '.' },
{ '#', '.', '.', '.', '#', '#', '#', '.', '.', '.', '.', '.', '.', '.', '.', '.' },
{ '#', '.', '.', '.', '#', '.', '.', '.', '#', '#', '.', '.', '.', '.', '.', '.' },
{ '.', '#', '.', '.', '#', '#', '.', '.', '#', '.', '.', '.', '.', '.', '.', '.' },
{ '.', '#', '#', '.', '#', '#', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.' },
{ '#', '.', '.', '.', '#', '#', '.', '.', '.', '#', '.', '.', '.', '.', '.', '.' },
{ '#', '#', '.', '.', '.', '#', '#', '.', '.', '.', '.', '.', '.', '.', '.', '.' },
{ '#', '#', '#', '.', '.', '.', '#', '.', '.', '.', '.', '.', '.', '.', '.', '.' },
{ '#', '#', '#', '.', '#', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.' },
{ '#', '#', '.', '.', '.', '#', '.', '.', '.', '#', '.', '.', '.', '.', '.', '.' }
};
return box[index];
}
int main(void) {
char** box = (char*)malloc(ROWS * sizeof(char*));
int i, j;
for (i = 0; i < ROWS; ++i) box[i] = get_line(i);
for (i = 0; i < ROWS; ++i) {
for (j = 0; j < COLS; ++j) putchar(box[i][j]);
putchar('\n');
}
free(box);
getchar();
return 0;
}
что значит посчитать количество соседей? как я и сказал я думал ты так и советовал делать
Но тебе ж надо отвалидировать не только сами тетраминки, а лишние символы.
Сначала считывая ГНЛом проверяешь, равно ли количество считаемых символов 4, и каждый 5-ый должен быть равен 0, думаю сам понимаешь почему.
Как проверил что все норм, ты сохраняешь эти тетраминки в двойной указатель. Там ты проверяешь:
- на лишние символы, ничего кроме # и точки.
- количество решеток вообще в фигурке, не должно превышать 4.
- сами тетраминки, их соседей должно быть 6 или 8(исключение для квадрата) вроде бы.
Подсчет соседей это берешь # и смотришь вверх вниз вправо влево, есть ли около него еще одна #, если есть одна или несколько, то плюсуешь столько то раз.