Sorry,
But I don't understand what the modulo and my solution work together.
Roelof
On 12/03/12, Matthias Felleisen <matth...@ccs.neu.edu> wrote:
But I don't understand what the modulo and my solution work together.
Roelof
On 12/03/12, Matthias Felleisen <matth...@ccs.neu.edu> wrote:
#lang racket(require 2htdp/image 2htdp/universe); main : CarState -> CarState; launch the program from some initial state(define (main r)(big-bang 0 (on-tick tock r) (to-draw render)))(define wheel-radius 5)(define cab(beside (rectangle (* 6 wheel-radius)(* 4 wheel-radius) "solid" "red")(right-triangle (* 2 wheel-radius) (* 4 wheel-radius) "solid" "red")))(define body(rectangle (* 20 wheel-radius) (* 6 wheel-radius) "solid" "red"))(define top(above/align "right" cab body))(define tire(circle wheel-radius "solid" "black"))(define bot(beside tire(rectangle (* 5 wheel-radius) (* 2 wheel-radius) "solid" "white")tire))(define auto(above top bot))(define WIDTH 1000)(define SPEED (* 0.54 (image-width auto)))(define Y-CAR 50)(define BACKGROUND (empty-scene WIDTH 200)); CarState -> CarState; the clock ticked; move the car by three pixels; example:; given: 20, expected 23; given: 78, expected 81(define (tock ws)(modulo (+ ws SPEED) WIDTH)#;(if (< ws (-(image-width BACKGROUND) (* 0.54 (image-width auto))))(+ ws 3)( - ws (image-width BACKGROUND)))); PositiveNumber -> Image; run the animation at the specified rate [1/28 is decent, try 1/100 too](define (render ws)(place-image auto ws Y-CAR BACKGROUND))On Mar 12, 2012, at 10:24 AM, ROELOF WOBBEN wrote:Hello,____________________
I have tried to make a function which display a car running on a empty-screen.
When the car is at the end. The car has to begin at the beginning.
I have made this :
(define wheel-radius 5)
(define cab (beside (rectangle (* 6 wheel-radius)(* 4 wheel-radius) "solid" "red")(right-triangle (* 2 wheel-radius) (* 4 wheel-radius) "solid" "red")))
(define body (rectangle (* 20 wheel-radius) (* 6 wheel-radius) "solid" "red"))
(define top (above/align "right" cab body))
(define tire (circle wheel-radius "solid" "black"))
(define bot (beside tire (rectangle (* 5 wheel-radius) (* 2 wheel-radius) "solid" "white") tire))
(define auto (above top bot))
(define Y-CAR 50)
(define BACKGROUND (empty-scene 1000 200))
; CarState -> CarState
; the clock ticked; move the car by three pixels
; example:
; given: 20, expected 23
; given: 78, expected 81
(define (tock ws)
(if (< ws (-(image-width BACKGROUND)(* 0.54 (image-width auto))))(+ ws 3) ( - ws (image-width BACKGROUND))))
; CarState -> Image
; place the car into a scene, according to the given world state
(define (render ws)
(place-image auto ws Y-CAR BACKGROUND))
; main : CarState -> CarState
; launch the program from some initial state
(define (main ws)
(big-bang ws (on-tick tock) (to-draw render)))
But now I wonder if I can do the same with setting the variable ws to zero.
So like this : If ws is smaller then the image-width increase with the half width of the car. then ws = ws+ 3 else ws = 0
Regards,
Roelof
Racket Users list:
http://lists.racket-lang.org/users
____________________ Racket Users list: http://lists.racket-lang.org/users