tasks a-s
This commit is contained in:
parent
47bf37c096
commit
b83f433714
12433 changed files with 156208 additions and 123 deletions
34
Task/Playing-cards/Racket/playing-cards.rkt
Normal file
34
Task/Playing-cards/Racket/playing-cards.rkt
Normal 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))
|
||||
Loading…
Add table
Add a link
Reference in a new issue