Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- NOTA: A los profesores les copa más que ponga todas las condiciones del cond juntas en vez de un if adentro del cond. Me enteré de eso a partir del ejercicio 4.
- Preguntas: Qué pasa si aumentamos el crecimiento de n? Crece más rápido
- Qué pasa si metemos dos on-tick? Tira error
- Qué pasa si sacamos la condición en decrementar? Tira error al llegar a n negativo.
- EJERCICIO 1:
- (define (pantalla n) (cond [(<= n 50) (place-image (circle n "solid" "yellow") 150 150 (empty-scene 300 300))]
- [(<= n 100) (place-image (circle n "solid" "red") 150 150 (empty-scene 300 300))]
- [else (place-image (circle n "solid" "green") 150 150 (empty-scene 300 300))]))
- (define (incrementar n) (if (= n 150) 0 (+ n 1)))
- (define (decrementar n) (if (= n 0) 100 (- n 1)))
- (define (radio n tecla) (cond
- [(char-numeric? (string-ref tecla 0)) (* (string->number tecla) 10)]
- [else n]))
- (big-bang 100 ; estado inicial del sistema
- [to-draw pantalla]
- [on-tick incrementar]
- [on-key radio]
- )
- EJERCICIO 2:
- (define ANCHO 400)
- (define ALTO 200)
- (define RADIO 20)
- (define DELTA 20)
- (define (pantalla n) (place-image (circle RADIO "solid" "magenta") (/ ANCHO 2) n (empty-scene ANCHO ALTO)) )
- (define (mover n tecla) (cond
- [(key=? tecla "up") (if (>= n (* 2 RADIO)) (- n DELTA) n)]
- [(key=? tecla "down") (if (<= n (- ALTO (* 2 RADIO))) (+ n DELTA) n)]
- [(key=? tecla " ") (/ ALTO 2)]
- [else n]))
- (define (mouse-handler n x y event) (cond [(string=? event "button-down") y]
- [else n]))
- (big-bang (/ ALTO 2)
- [to-draw pantalla]
- [on-key mover]
- [on-mouse mouse-handler]
- )
- EJERCICIO 3:
- (place-image/align (text "Arriba a la izquierda" 20 "indigo") 0 0 "left" "top" (empty-scene 800 60))
- (define (mostrar_texto n) (place-image/align (text n 20 "indigo") 0 0 "left" "top" (empty-scene 800 60)) )
- (define (agregar_caracter n tecla) (cond
- [(key=? tecla " ") (string-append n tecla)]
- [(and (char-alphabetic? (string-ref tecla 0)) (= (string-length tecla) 1)) (string-append n tecla)]
- [(and (char-numeric? (string-ref tecla 0)) (= (string-length tecla) 1)) (string-append n tecla)]
- [(and (key=? tecla "\b") (> (string-length n) 0) ) (substring n 0 (- (string-length n) 1) )]
- [else n]) )
- (big-bang ""
- [to-draw mostrar_texto]
- [on-key agregar_caracter]
- )
- EJERCICIO 4:
- (define AUTO .);Pastebin no acepta la imagen que va en esta linea.
- (define LARGO_AUTO (image-width AUTO))
- (define DIST_MIN (+ (/ LARGO_AUTO 2) 5) )
- (define LARGO 450)
- (define ALTO 100)
- (define (pantalla n) (place-image AUTO n (/ ALTO 2) (empty-scene LARGO ALTO)) )
- (define (incrementar n) (if(<= n (- LARGO DIST_MIN) ) (+ n 3) n ) )
- (define (teclado n tecla) (cond [(key=? tecla " ") DIST_MIN]
- [(and (key=? tecla "right") (< n (- LARGO DIST_MIN)) ) (+ n 20) ]
- [(and (key=? tecla "left") (> n (+ 20 DIST_MIN)) ) (- n 20)]
- [else n] ) )
- (define (clickear n x y evento) (cond [(string=? evento "button-down") x]
- [else n]))
- (big-bang DIST_MIN
- [to-draw pantalla]
- [on-tick incrementar]
- [on-key teclado]
- [on-mouse clickear]
- )
- EJERCICIO 5:
- ;No apto para seres humanos
- (define LARGO 600)
- (define ALTO 600)
- (define COLOR_CIELO "black")
- (define FONDO (rectangle LARGO ALTO "solid" COLOR_CIELO) )
- (define TAMANO_ESTRELLA 20)
- (define COLOR_ESTRELLA "white")
- (define ESTRELLA (star TAMANO_ESTRELLA "solid" COLOR_ESTRELLA) )
- (define (pantalla n) (place-image n (/ LARGO 2) (/ ALTO 2) (empty-scene LARGO ALTO)) )
- (define (agregar_estrella n x y event) (cond [(and (string=? event "button-down") (> y (/ (image-height (scale (+ 1 (* 4 (/ x LARGO))) ESTRELLA)) 2) ) (< y (- LARGO (/ (image-height (scale (+ 1 (* 4 (/ x LARGO))) ESTRELLA)) 2) )) (> x (/ (image-width (scale (+ 1 (* 4 (/ x LARGO))) ESTRELLA)) 2) ) (< x (- LARGO (/ (image-width (scale (+ 1 (* 4 (/ x LARGO))) ESTRELLA)) 2) )) ) (place-image (scale (+ 1 (* 4 (/ x LARGO))) ESTRELLA) x y n)]
- [else n]) )
- (define (resetear n tecla) (cond [(key=? tecla " ") FONDO]
- [else n]) )
- (big-bang FONDO
- [to-draw pantalla]
- [on-mouse agregar_estrella]
- [on-key resetear]
- )
Add Comment
Please, Sign In to add comment