1. I need a handler, a key handler, a draw handler(since a non-image model)
2.A model is a number indicating the x-coordinate of the picture.
3. ; handle-draw : model->image (draw handlers)
; handle-draw : model->image
key handlers: ; handle-key :model key->model
mouse handlers: ; handle-mouse :model number(mouse-x)
event->model
4.Write the draw handler: calendar-at-x
5.Write the mouse handler:
; add1-on-mouse : number(x)
; number(mouse-x) number(mouse-y)
; event -> number
(check-expect (add1-on-mouse 3 29 348 "blarg") 4)
(check-expect (add1-on-mouse 15 503 6 "glink") 16)
(define (add1-on-mouse x mouse-x mouse-y event) (+ x 1) or (add1 x)
; x number
; mouse-x number (ignore)
; mouse-y number (ignore)
; event whatever (ignore)6.Write the key handler:
; sub4-on-key : number (x) key -> number
(check-expect (sub4-on-key 7 "dummy argument") 3)
(check-expect (sub4-on-key 4 "whatever") 0)
(define (sub4-on-key x key) (- x 4))
; x number
; key whatever (ignore)7.Initial model: Let’s start halfway across the window, at an x coordinate of 250.
8.Call big-bang: (big-bang 250 (check-with number?) (on-draw calendar-at-x)
(on-mouse add1-on-mouse) (on-key sub4-on-key))
I am done!
没有评论:
发表评论