25 lines
655 B
R
25 lines
655 B
R
pips <- c("2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack", "Queen", "King", "Ace")
|
|
suit <- c("Clubs", "Diamonds", "Hearts", "Spades")
|
|
# Create a deck
|
|
deck <- data.frame(pips=rep(pips, 4), suit=rep(suit, each=13))
|
|
|
|
shuffle <- function(deck)
|
|
{
|
|
n <- nrow(deck)
|
|
ord <- sample(seq_len(n), size=n)
|
|
deck[ord,]
|
|
}
|
|
|
|
deal <- function(deck, fromtop=TRUE)
|
|
{
|
|
index <- ifelse(fromtop, 1, nrow(deck))
|
|
print(paste("Dealt the", deck[index, "pips"], "of", deck[index, "suit"]))
|
|
deck[-index,]
|
|
}
|
|
|
|
# Usage
|
|
deck <- shuffle(deck)
|
|
deck
|
|
deck <- deal(deck)
|
|
# While no-one is looking, sneakily deal a card from the bottom of the pack
|
|
deck <- deal(deck, FALSE)
|