Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdbool.h>
- #include <stdlib.h>
- typedef struct {
- int width;
- int height;
- bool *bricks;
- } wall_t;
- void build_wall(wall_t *wall);
- void print_wall(wall_t *wall);
- int main() {
- wall_t wall;
- if (scanf("%d %d", &wall.width, &wall.height) != 2) {
- fprintf(stderr, "Error: Wrong input!");
- return 100;
- }
- build_wall(&wall);
- print_wall(&wall);
- free(wall.bricks);
- return 0;
- }
- void build_wall(wall_t *wall) {
- int pixels = wall->width * wall->height;
- wall->bricks = malloc(pixels * sizeof(bool));
- int w = wall->width;
- for (int r = 0; r < wall->height; r++) {
- for (int c = 0; c < w; c++) {
- if (r%3 == 0 || r%3 == 1) {
- if (r%6 == 0 || r%6 == 1) {
- if (c%5 == 4) {
- wall->bricks[r*w + c] = false;
- }
- else {
- wall->bricks[r*w + c] = true;
- }
- }
- else if (r%6 == 3 || r%6 == 4) {
- if (c%5 == 2) {
- wall->bricks[r*w + c] = false;
- }
- else {
- wall->bricks[r*w + c] = true;
- }
- }
- }
- else if (r%3 == 2) {
- wall->bricks[r*w + c] = false;
- }
- }
- }
- }
- void print_wall(wall_t *wall) {
- int brick = wall->width * wall->height;
- int w = wall->width;
- for (int b = 0; b < brick; b++) {
- if (wall->bricks[b] == true) printf("##");
- else printf(" ");
- if (b%w == w-1) printf("\n");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement