100% de satisfacción garantizada Inmediatamente disponible después del pago Tanto en línea como en PDF No estas atado a nada 4.2 TrustPilot
logo-home
Examen

CPSC110 Pset5 solution

Puntuación
-
Vendido
-
Páginas
17
Grado
A
Subido en
16-11-2025
Escrito en
2025/2026

This is the correct and the latest solution for pset 5.

Institución
Grado










Ups! No podemos cargar tu documento ahora. Inténtalo de nuevo o contacta con soporte.

Escuela, estudio y materia

Institución
Estudio
Grado

Información del documento

Subido en
16 de noviembre de 2025
Número de páginas
17
Escrito en
2025/2026
Tipo
Examen
Contiene
Preguntas y respuestas

Temas

Vista previa del contenido

;​; DO NOT PUT ANYTHING PERSONALLY IDENTIFYING BEYOND YOUR CWL IN THIS​
​FILE.​
​;; YOUR CWLs WILL BE SUFFICIENT TO IDENTIFY YOU.​
​(require 2htdp/universe)​
​(require 2htdp/image)​
​(require spd/tags)​

​(@assignment psets/pset-05);Do not edit or remove this tag​

​;; Bounce any number of balls around the screen.​


;​;​
​;; In this problem set you are given our official solution to problem​
​;; set 4 (with a few additional things added) as a starting point.​
​;; We have given you some more constants, helper function called​
​;; touch-paddle? which you may use, and a new data defintion called Game.​
​;; You need to revise the program so that:​
​;; - the game includes a paddle that moves back and forth across the​
​;; bottom of the screen​
​;; - the paddle is controlled by the left and right arrow keys​
​;; - when a ball hits the paddle it disappears​
​;; - as before the mouse can be used to add balls to the game​
​;;​
​;; As stated above, we have given you a new data definition called Game.​
​;; You MUST revise the program so that it uses Game as the world state.​
​;; You MUST NOT change the Game data definition in anyway (though you are​
​;; allowed to add more Game constants).​
​;;​
​;; We suggest you work in three distinct phases, making sure your program​
​;; works correctly at the end of each phase before going on to the next.​
​;; - change the program's world state to Game​
​;; - provide left/right arrow key control over the paddle​
​;; - make it so that when a ball hits the paddle it disappears​
​;;​
​;; In each of these phases you should follow the design recipes! Re-work​
​;; the domain analysis for changing and constant information, update the​
​;; data definitions, revise the main function, and so on. Make sure that​
​;; your tags are correct and that all your tests work correctly before you​
​;; proceed to the next phase.​
​;;​
​;; NOTE: Your on-tick function MUST be designed as a composition of two other​
​;; functions called game-with-next-balls and game-with-caught-balls.​
​;;​
​;; Note that we are giving you significant help in the starter file.​
​;; You absolutely MUST USE OUR STARTER AS THE BASIS FOR YOUR WORK.​
​;;​
​;; We recommend that you begin by printing this file and planning out what​

,;​; needs to change, what needs to be added, and what will be unchanged.​
​;;​
​(@problem 1)​
​(@htdw Game)​

;​; Constants:​
​(define WIDTH 605)​
​(define HEIGHT 535)​

(​ define PADDLE-WIDTH 60)​
​(define PADDLE-THICKNESS 10)​
​(define PADDLE (rectangle PADDLE-WIDTH PADDLE-THICKNESS "solid" "white"))​
​(define PADDLE-CTR-Y (- HEIGHT 40))​
​(define PADDLE-MOVE-PER-KEY 10)​

​(define BALL-RADIUS 10)​

(​ define TOP BALL-RADIUS)​
​(define BOT (- HEIGHT 1 BALL-RADIUS))​
​(define LEF BALL-RADIUS)​
​(define RIG (- WIDTH 1 BALL-RADIUS))​

​(define BALL (circle BALL-RADIUS "solid" "white"))​

​(define MTS (rectangle WIDTH HEIGHT "solid" "green"))​


;​;​
​======================================================================​
​=====​
​;;​
​======================================================================​
​=====​
​;; Data definitions:​


(​ @htdd Ball)​
​(define-struct ball (x y dx dy))​
​;; Ball is (make-ball Number Number Number Number)​
​;; interp. (make-ball x y dx dy) is ball​
​;; - position x, y in screen coordinates​
​;; - velocity dx, dy in pixels/tick​
​;; CONSTRAINT: x is in [LEF, RIG]; y is in [TOP, BOT]​
​(define B1 (make-ball (/ WIDTH 2) (/ HEIGHT 2) 4 -3))​

​(@dd-template-rules compound)​

​(define (fn-for-ball b)​

, ​(... (ball-x b)​
​(ball-y b)​
​(ball-dx b)​
​(ball-dy b)))​

(​ @htdd ListOfBall)​
​;; ListOfBall is one of:​
​;; - empty​
​;; - (cons Ball ListOfBall)​
​;; interp. a list of balls​
​(define LOB1 empty)​
​(define LOB2 (cons B1 empty))​

​(@dd-template-rules one-of​
​atomic-distinct​
​compound​
​ref​
​self-ref)​

​(define (fn-for-lob lob)​
​(cond [(empty? lob) (...)]​
​[else​
​(... (fn-for-ball (first lob))​
​(fn-for-lob (rest lob)))]))​

(​ @htdd Game)​
​(define-struct game (balls paddle))​
​;; Game is (make-game ListOfBall Number)​
​;; interp. the current state of a game, with all the balls in play,​
​;; as well as the x-position of the paddle in screen coordinates​
​(define G0 (make-game empty (/ WIDTH 2)))​
​(define G1 (make-game (cons B1 empty) (/ WIDTH 2)))​

​(@dd-template-rules compound ref)​

​(define (fn-for-game g)​
​(... (fn-for-lob (game-balls g))​
​(game-paddle g)))​




;​;​
​======================================================================​
​=====​
​;;​
​======================================================================​
​=====​
​;; Functions:​
$10.06
Accede al documento completo:

100% de satisfacción garantizada
Inmediatamente disponible después del pago
Tanto en línea como en PDF
No estas atado a nada

Conoce al vendedor
Seller avatar
06shyun1211

Conoce al vendedor

Seller avatar
06shyun1211 University of British Columbia
Seguir Necesitas iniciar sesión para seguir a otros usuarios o asignaturas
Vendido
Nuevo en Stuvia
Miembro desde
3 semanas
Número de seguidores
0
Documentos
8
Última venta
-

0.0

0 reseñas

5
0
4
0
3
0
2
0
1
0

Recientemente visto por ti

Por qué los estudiantes eligen Stuvia

Creado por compañeros estudiantes, verificado por reseñas

Calidad en la que puedes confiar: escrito por estudiantes que aprobaron y evaluado por otros que han usado estos resúmenes.

¿No estás satisfecho? Elige otro documento

¡No te preocupes! Puedes elegir directamente otro documento que se ajuste mejor a lo que buscas.

Paga como quieras, empieza a estudiar al instante

Sin suscripción, sin compromisos. Paga como estés acostumbrado con tarjeta de crédito y descarga tu documento PDF inmediatamente.

Student with book image

“Comprado, descargado y aprobado. Así de fácil puede ser.”

Alisha Student

Preguntas frecuentes