100% tevredenheidsgarantie Direct beschikbaar na je betaling Lees online óf als PDF Geen vaste maandelijkse kosten 4.2 TrustPilot
logo-home
Samenvatting

Summary CPSC 110 PSET 3 SOLUTIONS - 2022

Beoordeling
-
Verkocht
-
Pagina's
6
Geüpload op
28-08-2022
Geschreven in
2022/2023

Solutions to cpsc 110 pset 3

Instelling
Vak









Oeps! We kunnen je document nu niet laden. Probeer het nog eens of neem contact op met support.

Geschreven voor

Vak

Documentinformatie

Geüpload op
28 augustus 2022
Aantal pagina's
6
Geschreven in
2022/2023
Type
Samenvatting

Onderwerpen

Voorbeeld van de inhoud

;; The first three lines of this file were inserted by DrRacket. They record
metadata
;; about the language level of this file in a form that our tools can easily
process.
#reader(lib "htdp-beginner-reader.ss" "lang")((modname pset-03-solution) (read-
case-sensitive #t) (teachpacks ()) (htdp-settings #(#t constructor repeating-
decimal #f #t none #f () #t)))
;; DO NOT PUT ANYTHING PERSONALLY IDENTIFYING BEYOND YOUR CWL IN THIS FILE.
;; YOUR CWLs WILL BE SUFFICIENT TO IDENTIFY YOU AND, IF YOU HAVE ONE, YOUR
;; PARTNER.
;;

(require 2htdp/image)
(require 2htdp/universe)
(require spd/tags)

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

;; Bounce a single ball around the screen.

;; IMPORTANT:
;; This problem set will form the basis for problem sets 4 and 5 as well.
;; You are strongly advised to put in the effort to do well on this
;; problem set so that you then have an easier time with problem sets
;; 4 and 5.
;;

;; For this problem set you must complete the design of a world program.
;; The complete program must have the following behaviour:
;; - there is a green background, with a single white ball
;; bouncing around inside that box
;; - when the ball hits the top/right/bottom/left of the box it
;; bounces in the usual way a ball would bounce off of a wall
;; - clicking the mouse replaces the ball with a new ball, at the
;; current mouse position, and with a small random x,y velocity
;;
;; Note that we are giving you significant help in the starter file.
;; There is a complete data design, some complete helper functions, as
;; well as a some wish list entries. You absolutely MUST
;; - not edit any of the complete design elements we give you
;; - complete the wish list entries we give you, and do so in a way
;; that is consistent with the rest of the design we give you
;; - must use the helpers we give you as part of your solution
;;
;; We recommend that you begin by first going through the entire file to
;; understand what is already complete and what you need to complete.
;;
(@problem 1)
(@htdw Ball)

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

(define BALL-RADIUS 10)

;;
;; Remember that [0, 100] has 101 pixels, so subtract 1 from both BOT and RIG!
;;

, (define TOP (+ 0 BALL-RADIUS)) ;these constants define the "inner box"
(define BOT (- HEIGHT BALL-RADIUS 1)) ;that constrains the center of the ball
(define LEF (+ 0 BALL-RADIUS)) ;
(define RIG (- WIDTH BALL-RADIUS 1)) ;

(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
(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)))


;; ===========================================================================
;; ===========================================================================
;; Functions:

(@htdf main)
(@signature Ball -> Ball)
;; start the game, call with (main B1)
;; <no tests for main functions>

(@template htdw-main)

(define (main b)
(big-bang b
(on-draw render-ball) ;Ball -> Image
(on-tick next-ball) ;Ball -> Ball
(on-mouse handle-mouse)));Ball Integer Integer MouseEvent -> Ball


(@htdf render-ball)
(@signature Ball -> Image)
;; place BALL on image at appropriate x, y coordinate
(check-expect (render-ball (make-ball 20 30 3 3))
(place-image BALL 20 30 MTS))
(check-expect (render-ball (make-ball (- WIDTH 4) (- HEIGHT 5) -2 -3))
(place-image BALL (- WIDTH 4) (- HEIGHT 5) MTS))
#;
(define (render-ball b) MTS)

Maak kennis met de verkoper

Seller avatar
De reputatie van een verkoper is gebaseerd op het aantal documenten dat iemand tegen betaling verkocht heeft en de beoordelingen die voor die items ontvangen zijn. Er zijn drie niveau’s te onderscheiden: brons, zilver en goud. Hoe beter de reputatie, hoe meer de kwaliteit van zijn of haar werk te vertrouwen is.
travissmith1 UBC
Volgen Je moet ingelogd zijn om studenten of vakken te kunnen volgen
Verkocht
97
Lid sinds
4 jaar
Aantal volgers
61
Documenten
36
Laatst verkocht
1 maand geleden

3,6

16 beoordelingen

5
6
4
6
3
0
2
0
1
4

Recent door jou bekeken

Waarom studenten kiezen voor Stuvia

Gemaakt door medestudenten, geverifieerd door reviews

Kwaliteit die je kunt vertrouwen: geschreven door studenten die slaagden en beoordeeld door anderen die dit document gebruikten.

Niet tevreden? Kies een ander document

Geen zorgen! Je kunt voor hetzelfde geld direct een ander document kiezen dat beter past bij wat je zoekt.

Betaal zoals je wilt, start meteen met leren

Geen abonnement, geen verplichtingen. Betaal zoals je gewend bent via Bancontact, iDeal of creditcard en download je PDF-document meteen.

Student with book image

“Gekocht, gedownload en geslaagd. Zo eenvoudig kan het zijn.”

Alisha Student

Veelgestelde vragen