Jeffrey Jolicoeur
Andrew Pel
December 3, 2014


King's Cup. A classic drinking card game. Have drinks and get to know the group you're with all at the same time. No deck of cards? Grab your laptop.


Concepts Demonstrated

1/6 of the project grade is based on which concepts from OPL are demonstrated in your project. Please identify them here. Be brief; a simple list and one-sentence explanation for each concept should be adequate; e.g.:

  • Data abstraction is used to provide access to the values of each card and the accompanied rules.
  • "Applying Simple procedures with internal definitions" There are several global variables defined in the game and other internal procedures/lambdas with their own local state variables and procedures. Some of these alter or use the global variables for their own separate outputs.
  • Modeling with mutable data eg the separate cards values are used to update the status pane, and the deck of cards is a list of cards that is queried for the top card each round.

External Technology and Libraries

The cards library is used for this project. It has the methods and classes needed to create each card and alter its member data. Other functions are used to recreate the playing atmosphere of a card game. All of these are bundled within the library.

Favorite Lines of Code

Each partner should identify a favorite line of code, Scheme expression, or entire procedure written by himself / herself in the entire project, and explain what it does. E.g.:

  • Jeffrey Jolicoeur:
           (send table card-to-front check);;bring card to top
            (send table move-card check (+ MARGIN cw cw cw cw) (- h ch ch ));;move top card over to play
            (send table card-face-up check);;flip card face up
            (update-status-pane (send check get-value))
            (send check user-can-flip #t);;can flip current card
            (set! deck (cdr deck));;deck var is now rest of deck list
     This code begins a transaction. It takes the top card from the deck and moves it to the very top of the game pile, turns it face up, updates the       
     status pane with the correlating rule, makes the game card user flippable and reassigns the rest of the deck.

     Also some of the documentation for the rules of the game. In the doc.txt 
       eg. "Drink heartily! For tonight we party in hell! *insert photo of Leonidas from 300 here*
  • Andrew Pel:
    (define gauge (new gauge%
                       (label "Kings Cup")
                        (parent table)
                        (range 4)))

This block of code reads in a regular expression and uses it to match against a pre-existing hash-map named *words*.

Technology Used Block Diagram

Create a simple block diagram of your software system that illustrates the major technical components and how they interact. Indicate which partner did which part of the work by putting an individual's initials inside the component(s) for which that person was primarily responsible. E.g.:

Additional Remarks

Please use this area to include any additional information you would like to include that did not fit into any of the previous categories.