Playing cards: Difference between revisions
Content added Content deleted
(fix swap in m4) |
(Added R code) |
||
Line 1,349: | Line 1,349: | ||
self.shuffle() # Can't tell what is next from self.deck |
self.shuffle() # Can't tell what is next from self.deck |
||
return self.deck.pop(0) |
return self.deck.pop(0) |
||
</lang> |
|||
=={{header|R}}== |
|||
<lang 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) |
|||
</lang> |
</lang> |
||