#include <stdio.h>
#define N 15
#define M 13
void transform(int *buffer, int **matrix, int rows, int cols);
void make_picture(int **picture, int rows, int cols);
void reset_picture(int **picture, int rows, int cols);
void output_picture(int **picture, int rows, int cols);
int main(void) {
int picture_data[N][M];
int *picture[N];
transform(&picture_data[0][0], picture, N, M);
make_picture(picture, N, M);
output_picture(picture, N, M);
return 0;
}
void transform(int *buffer, int **matrix, int rows, int cols) {
for (int i = 0; i < rows; i++) {
matrix[i] = buffer + i * cols;
}
}
void make_picture(int **picture, int rows, int cols) {
int frame_w[] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
int frame_h[] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
int tree_trunk[] = {7};
int tree_foliage[] = {3};
int sun_data[6][5] = {{0, 6, 6, 6, 6},
{0, 0, 6, 6, 6},
{0, 0, 6, 6, 6},
{0, 6, 0, 0, 6},
{0, 0, 0, 0, 0},
{0, 0, 0, 0, 0}};
reset_picture(picture, rows, cols);
for (int j = 0; j < cols; j++) {
picture[0][j] = frame_w[j];
picture[7][j] = frame_w[j];
picture[rows - 1][j] = frame_w[j];
}
for (int i = 0; i < rows; i++) {
picture[i][0] = frame_h[i];
picture[i][6] = frame_h[i];
picture[i][cols - 1] = frame_h[i];
}
for (int i = 0; i < 6; i++) {
for (int j = 0; j < 5; j++) {
if (sun_data[i][j] != 0) {
picture[i + 1][j + 7] = sun_data[i][j];
}
}
}
for (int i = 2; i < 6; i++) {
for (int j = 2; j < 6; j++) {
picture[i][j] = tree_foliage[0];
}
}
picture[2][2] = 0;
picture[5][2] = 0;
picture[2][5] = 0;
picture[5][5] = 0;
for (int i = 6; i < 10; i++) {
if (i != 7) {
picture[i][3] = tree_trunk[0];
picture[i][4] = tree_trunk[0];
}
}
for (int j = 2; j < 6; j++) {
picture[10][j] = tree_trunk[0];
}
}
void reset_picture(int **picture, int rows, int cols) {
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
picture[i][j] = 0;
}
}
}
void output_picture(int **picture, int rows, int cols) {
for (int i = 0; i < rows; i++) {
if (i > 0) {
printf("\n");
}
for (int j = 0; j < cols; j++) {
if (j > 0) {
printf(" ");
}
printf("%d", picture[i][j]);
}
}
}