Bobby Vecchione Curtis Quintal December 3, 2014

This is the classic game of Uno. There is one human player, and 3 computer players. Each player is dealt 7 cards to start. You can only discard a card if it matches the color or value of the top card in the discard pile. Wild cards may be placed on any card, and any card may be placed on a wild card. The first player to discard their hand wins.


Concepts Demonstrated

Concepts that were used for this project were lists to hold the players hands of cards, as well as lambdas within the creation of the GUI.

External Technology and Libraries

racket/gui/base games/cards

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.:

Bobby Vecchione:

(define (player-draw) 
             (send table move-cards-to-region (cons (car deck) '()) player)
             (send table flip-card (car deck))
             (send (car deck) snap-back-after-move true)
             (set! player-hand (cons (car deck) player-hand))
             (send table move-cards-to-region player-hand player)
             (set! deck (remove (car deck) deck)))
This code is the procedure that deals a card from the top of the deck to the players hand, flipping it allowing the player to see the card. There are similar procedure that perform this action for the three computer players as well.

Curtis Quintal:

(define (next-player)
  (if (= direction 0)
      (set! active-player (modulo (+ active-player 1) 4))
      (set! active-player (modulo (- active-player 1) 4))))

(define (reverse-direction)
    (if (= direction 1)
      (set! direction 0)
      (set! direction 1)))
This code is simple, but makes handling reverses/skips very easy in other areas of the code.

Technology Used Block Diagram

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.

The total write-up, including screen shot and block diagram, should be two to three pages in length (when printed).