100% satisfaction guarantee Immediately available after payment Both online and in PDF No strings attached
logo-home
Problem Set 11 - UBC 2023 - CPSC 110 CA$11.05
Add to cart

Class notes

Problem Set 11 - UBC 2023 - CPSC 110

3 reviews
 523 views  25 purchases

Completed file for problem set 11. Remember to copy the pdf file to Dr Racket for a better view. This file should be exactly identical except that the file has answers for each problems.

Preview 2 out of 6  pages

  • December 20, 2022
  • 6
  • 2022/2023
  • Class notes
  • Gregor kiczales
  • All classes
All documents for this subject (19)

3  reviews

review-writer-avatar

By: yysshh • 2 weeks ago

missing a question

review-writer-avatar

By: nopenope85 • 1 year ago

does not even include the full problem set/ assignment. I want my money back

reply-writer-avatar

By: tranghane • 1 year ago

oh, maybe they change the assignment for each year, sorry about that. Maybe you should tell Gregor to keep the assignment the same for every year :D

review-writer-avatar

By: bhumikakalra16 • 1 year ago

reply-writer-avatar

By: tranghane • 1 year ago

Sorry for any problem with the product, I wonder you can tell me what's wrong with the problem set

reply-writer-avatar

By: bhumikakalra16 • 1 year ago

The code does not work for me. It doesn’t contain the generate-room function or follow the format of function definition given above

avatar-seller
tranghane
;; 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 spd/tags)

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

;; Replace the first set of '???'s with your cwl.
;; If you have a partner, replace the second set of '???'s with their cwl.
;;
(@cwl ??? ???)

(@problem 1)
;;
;; In this problem set you will be working with a simple representation of a
;; secret castle. Unsurpringly, the rooms and doors in this castle form a
;; graph. The figure in:
;; https://cs110.students.cs.ubc.ca/psets/pset-11-image.png
;; shows a small castle with 5 rooms named A, B, C, D, and E. A has exits
;; that lead to rooms B, D and E. B has a single exit that leads to C, and
;; so on. The ovals (long circles) are locks; the number in the oval is the
;; number of the key required to open that lock. The underlined numbers are
;; keys.
;;
;; E has a lock that requires key # 1 to open. The lock at room D requires key
;; # 2 to open it. After you enter a room you automatically pickup any keys
;; that are there. So after you get into room B you automatically pickup key 2.
;; After you get into room C you automatically pickup key 1.
;;
;; Note that in general a door might have multiple locks, and a room might
;; provide multiple keys.
;;
;; Here are the data definitions we use.

;; Data definitions:

(@htdd Room)
(define-struct room (name locks keys exits))

, ;; Room is (make-room String (listof Natural) (listof Natural) (listof String))
;; interp. each room has
;; - a Name
;; - locks that require a key of the same number to open
;; - keys that open locks of the same number
;; - doors to other rooms, these are represented as a list
;; of strings where each string is the name of a room
;;
;; NOTE: The keys can be for any rooms in the castle, they do not have
;; to be for one of the rooms in exits.
;;
;; This is a generative graph problem. Note that a room has a list of the names
;; of the rooms it has exits to -- the names not the actual rooms. Therefore a
;; generative step has to take the name and generate the actual Room. To do
;; that we add a new opaque data definition for a type called Map. When
;; we say that Map is opaque we mean that you should not try to look inside
;; of it. It is a secret map of the castle. Instead we are providing a
;;function
;; called get-room that given a room name and a castle will generate the room.
;;

(@htdd Map)
;; Map is ???
;; interp. an opaque data type that represents a map from room names to rooms.
;; Only the provided function get-room knows how to work with a map.
;;

#|
Here is a partially blended template. It includes the Room and (listof String)
functions, as well as the generative step of calling get-room to get a
room from
a room name. But it doesn't include the trivial? test to terminate the
generative recursion or anything to prevent going in cycles. You must complete
the blending for your own purposes.

(define (fn-for-castle start castle)
(local [(define (fn-for-room r)
(... (room-name r)
(room-locks r)
(room-keys r)
(fn-for-los (room-exits r))))

The benefits of buying summaries with Stuvia:

Guaranteed quality through customer reviews

Guaranteed quality through customer reviews

Stuvia customers have reviewed more than 700,000 summaries. This how you know that you are buying the best documents.

Quick and easy check-out

Quick and easy check-out

You can quickly pay through credit card or Stuvia-credit for the summaries. There is no membership needed.

Focus on what matters

Focus on what matters

Your fellow students write the study notes themselves, which is why the documents are always reliable and up-to-date. This ensures you quickly get to the core!

Frequently asked questions

What do I get when I buy this document?

You get a PDF, available immediately after your purchase. The purchased document is accessible anytime, anywhere and indefinitely through your profile.

Satisfaction guarantee: how does it work?

Our satisfaction guarantee ensures that you always find a study document that suits you well. You fill out a form, and our customer service team takes care of the rest.

Who am I buying these notes from?

Stuvia is a marketplace, so you are not buying this document from us, but from seller tranghane. Stuvia facilitates payment to the seller.

Will I be stuck with a subscription?

No, you only buy these notes for CA$11.05. You're not tied to anything after your purchase.

Can Stuvia be trusted?

4.6 stars on Google & Trustpilot (+1000 reviews)

56326 documents were sold in the last 30 days

Founded in 2010, the go-to place to buy study notes for 14 years now

Start selling
CA$11.05  25x  sold
  • (3)
Add to cart
Added