tasks a-s

This commit is contained in:
Ingy döt Net 2013-04-10 23:57:08 -07:00
parent 47bf37c096
commit b83f433714
12433 changed files with 156208 additions and 123 deletions

View file

@ -0,0 +1,34 @@
#lang racket
;; suits:
(define suits '(club heart diamond spade))
;; ranks
(define ranks '(1 2 3 4 5 6 7 8 9 10 jack queen king))
;; cards
(define cards
(for*/list ([suit suits] [rank ranks])
(list suit rank)))
;; a deck is a box containing a list of cards.
(define (new-deck)
(box cards))
;; shuffle the cards in a deck
(define (deck-shuffle deck)
(set-box! deck (shuffle (unbox deck))))
;; deal a card from tA 2 3 4 5 6 7 8 9 10 J Q K>;
enum Suit he deck:
(define (deck-deal deck)
(begin0 (first (unbox deck))
(set-box! deck (rest (unbox deck)))))
;; TRY IT OUT:
(define my-deck (new-deck))
(deck-shuffle my-deck)
(deck-deal my-deck)
(deck-deal my-deck)
(length (unbox my-deck))