;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]))