; Haralambos Papadakis
; Homework # 2
; Part 1



; This function draws the Tower to a PC
; It takes, in this order:
; the Position of the upper left corner of the Tower, as a posn structure
; the Color of the case of the Tower, as a symbol
; the Size of the Tower, as an integer percentage of the full size, which is 50 pixels wide by 150 pixels tall

; An example Usage of the function is as follows:
; (draw-pc-tower (make-posn 0 0) 'black 100)

(define (draw-pc-tower pos case-color size)
  (and
   (draw-solid-rect pos (ceiling (* size .5)) (ceiling (* size 1.5)) case-color)
   (draw-solid-rect (make-posn (+ (posn-x pos) (ceiling (* size .05))) (+ (posn-y pos) (ceiling (* size .05))))
                    (ceiling (* size .4)) (ceiling (* size .15)) 'gray)
   (draw-solid-rect (make-posn (+ (posn-x pos) (ceiling (* size .05))) (+ (posn-y pos) (ceiling (* size .25))))
                    (ceiling (* size .4)) (ceiling (* size .15)) 'gray)
   (draw-solid-rect (make-posn (+ (posn-x pos) (ceiling (* size .05))) (+ (posn-y pos) (ceiling (* size .45))))
                    (ceiling (* size .40)) (ceiling (* size .15)) 'gray)
   (draw-solid-disk (make-posn (+ (posn-x pos) (ceiling (* size .40))) (+ (posn-y pos) (ceiling (* size .7)))) (ceiling (* size .05)) 'blue)
   (draw-solid-rect (make-posn (+ (posn-x pos) (ceiling (* size .07))) (+ (posn-y pos) (ceiling (* size .7))))
                    (ceiling (* size .23)) (ceiling (* size .03)) 'red)
   (draw-solid-disk (make-posn (+ (posn-x pos) (ceiling (* size .25))) (+ (posn-y pos) (ceiling (* size 1.1)))) (ceiling (* size .2)) 'yellow)
   (draw-solid-disk (make-posn (+ (posn-x pos) (ceiling (* size .3))) (+ (posn-y pos) (ceiling (* size 1.1)))) (ceiling (* size .15)) 'orange)
   (draw-solid-disk (make-posn (+ (posn-x pos) (ceiling (* size .35))) (+ (posn-y pos) (ceiling (* size 1.1)))) (ceiling (* size .1)) 'red)))


; This function draws the LCD Monitor to a PC
; It takes, in this order:
; the Position of the upper left corner of the Monitor, as a posn structure
; the Color of the case of the Monitor, as a symbol
; the Size of the Monitor, as an integer percentage of the full size, which is 100 pixels wide by 95 pixels tall

; An example Usage of the function is as follows:
; (draw-pc-monitor (make-posn 0 0) 'black 100)

(define (draw-pc-monitor pos case-color size)
  (and
   (draw-solid-rect pos (ceiling (* size 1)) (ceiling (* size .75)) case-color)
   (draw-solid-rect (make-posn (+ (posn-x pos) (ceiling (* size .07))) (+ (posn-y pos) (ceiling (* size .07))))
                    (ceiling (* size .86)) (ceiling (* size .61)) 'white)
   (draw-solid-disk (make-posn (+ (posn-x pos) (ceiling (* size .92))) (+ (posn-y pos) (ceiling (* size .71)))) (ceiling (* size .02)) 'green)
   (draw-solid-disk (make-posn (+ (posn-x pos) (ceiling (* size .82))) (+ (posn-y pos) (ceiling (* size .71)))) (ceiling (* size .02)) 'red)
   (draw-solid-disk (make-posn (+ (posn-x pos) (ceiling (* size .95))) (+ (posn-y pos) (ceiling (* size .05)))) (ceiling (* size .02)) 'gray)
   (draw-solid-rect (make-posn (+ (posn-x pos) (ceiling (* size .40))) (+ (posn-y pos) (ceiling (* size .75))))
                    (ceiling (* size .20)) (ceiling (* size .15)) case-color)
   (draw-solid-rect (make-posn (+ (posn-x pos) (ceiling (* size .25))) (+ (posn-y pos) (ceiling (* size .90))))
                    (ceiling (* size .50)) (ceiling (* size .05)) case-color)))

;(start 400 400)
; (draw-pc-tower (make-posn 40 40) 'black 100)
; (draw-pc-monitor (make-posn 200 40) 'black 100)