#include <stdio.h>
#include "image.h"

#define TEN 10

#define HOUSE_X  200
#define HOUSE_Y  150
#define HOUSE_WIDTH 300
#define HOUSE_HEIGHT 200

#define DOOR_WIDTH 60
#define DOOR_X HOUSE_X+ HOUSE_WIDTH/2 - DOOR_WIDTH/2
#define DOOR_Y 280
#define DOOR_HEIGHT HOUSE_Y+HOUSE_HEIGHT - DOOR_Y

#define SUN_X 70
#define SUN_Y 70
#define SUN_RADIUS 50

#define WINDOW_WIDTH 70
#define WINDOW_HEIGHT 70
#define WINDOW_FRAME 5


int main() {
 char image[HEIGHT][WIDTH][COLORS];
 char sunColor[COLORS], houseColor[COLORS];
 char doorColor[COLORS], windowColor[COLORS];
 char roofColor[COLORS], white[COLORS]; 
 char color[COLORS];
 int i,y;

  setColor(white, 255,255,255);  
  blankImage(image, white);                        /* white background */
   
  setColor(color, 0,200,0);
  putRectangle(image,250,0,150, WIDTH, color);
  setColor(color, 200,200,255);
  putRectangle(image,0,0,250, WIDTH, color);
  

  setColor(sunColor, 255, 255,0);
  putCircle(image, SUN_Y,SUN_X, SUN_RADIUS,sunColor); /* yellow sun */
  
  setColor(houseColor,150,50,0);
  putRectangle(image,HOUSE_Y, HOUSE_X, HOUSE_HEIGHT, HOUSE_WIDTH, houseColor);  /* main house */


  setColor(doorColor,0,0,0);                                                   /* door */
  putRectangle(image, DOOR_Y, DOOR_X, DOOR_HEIGHT, DOOR_WIDTH, doorColor);

  setColor(windowColor,200,200,200);                                           /* window frame  */
  putRectangle(image, HOUSE_Y+30, HOUSE_X+30, WINDOW_HEIGHT, WINDOW_WIDTH,windowColor);
  putRectangle(image, HOUSE_Y+30, HOUSE_X+HOUSE_WIDTH -30-WINDOW_WIDTH, 
                                  WINDOW_HEIGHT, WINDOW_WIDTH, windowColor);
  putRectangle(image, HOUSE_Y+120, HOUSE_X+30, WINDOW_HEIGHT, WINDOW_WIDTH,windowColor);
  putRectangle(image, HOUSE_Y+120, HOUSE_X+HOUSE_WIDTH -30-WINDOW_WIDTH, 
                                  WINDOW_HEIGHT, WINDOW_WIDTH, windowColor);
  putCircle(image, HOUSE_Y+60, HOUSE_X+HOUSE_WIDTH/2, 20, windowColor);

  setColor(windowColor,60,60,60);                                              /* window insides  */
  putRectangle(image, HOUSE_Y+30+WINDOW_FRAME, HOUSE_X+30+WINDOW_FRAME,
                      WINDOW_HEIGHT- 2*WINDOW_FRAME, WINDOW_WIDTH-2*WINDOW_FRAME,windowColor);
  putRectangle(image, HOUSE_Y+30+WINDOW_FRAME, HOUSE_X+HOUSE_WIDTH -30-WINDOW_WIDTH+WINDOW_FRAME, 
                                  WINDOW_HEIGHT-2*WINDOW_FRAME, WINDOW_WIDTH-2*WINDOW_FRAME, windowColor);
 
 putRectangle(image, HOUSE_Y+120+WINDOW_FRAME, HOUSE_X+30+WINDOW_FRAME,
                      WINDOW_HEIGHT- 2*WINDOW_FRAME, WINDOW_WIDTH-2*WINDOW_FRAME,windowColor);
  putRectangle(image, HOUSE_Y+120+WINDOW_FRAME, HOUSE_X+HOUSE_WIDTH -30-WINDOW_WIDTH+WINDOW_FRAME, 
                                  WINDOW_HEIGHT-2*WINDOW_FRAME, WINDOW_WIDTH-2*WINDOW_FRAME, windowColor);
 
    
  putRing(image, HOUSE_Y+60, HOUSE_X+HOUSE_WIDTH/2, 25, 20, windowColor);


  setColor(roofColor, 40, 40,0);
  y = HOUSE_Y -1;  

  for (i = -20; i<=HOUSE_WIDTH/2; i=i+2) {
    putLine(image, y, HOUSE_X+i, y, HOUSE_X+HOUSE_WIDTH-i, roofColor);
    y--;
  }


  drawImage(image); 

return 0;

}