-
- ;define points->image
- (define (points->image a-size points foreground background)
- (local [(define (row->image y)
- (xs->image a-size (xs (row points y)) foreground background))]
- (apply above (map row->image (range 0 size 1)))))
-
- ;define variables
- (define kat (render (scale . 1/4)))
-
- (define (draw-all a-maze kat-point click-point)
- (align-overlay "left" "top"
- (above (rectangle 0 (* (height barrier) (Y kat-point)) "solid" "transparent")
- (beside (rectangle (* (width barrier) (X kat-point)) 0 "solid" "transparent")
- kat))
- (overlay (points->image size (path a-maze kat-point click-point) highlight invisible)
- (points->image size a-maze invisible barrier)
- (scale ground size))))
- ;in-grid?
- (define (in-grid? a-point)
- (if [(< (X a-point) 0) #false]
- [(< (Y a-point) 0) #false]
- [(> (- size (X a-point))0) #true]
- [(> (- size (Y a-point))0) #true]
- [(< (X a-point) size) #true]
- [(< (Y a-point) size) #true]
- [else #false]))
-
- ;check-expect
- (check-expect (in-grid? (point -1 0))
- (if [(< -1 0) #false]
- [(< 0 0) #false]
- [(> (- size -1)0) #true]
- [(> (- size 0)0) #true]
- [(< -1 size) #true]
- [(< 0 size) #true]
- [(< -1 0) #false]
- [(< 0 0) #false]
- [else #false]))
-