Skip to content

Instantly share code, notes, and snippets.

@KushalP
Created February 16, 2014 19:44
Show Gist options
  • Save KushalP/9039573 to your computer and use it in GitHub Desktop.
Save KushalP/9039573 to your computer and use it in GitHub Desktop.
import scala.util.Random
object Suit extends Enumeration {
type Suit = Value
val Diamonds, Spades, Hearts, Clubs = Value
}
object Rank extends Enumeration {
type Rank = Value
val Ace, Two, Three, Four, Five, Six, Seven, Eight, Nine, Ten, Jack, Queen, King = Value
}
import Suit._
import Rank._
case class Card(suit: Suit, rank: Rank)
val cards = for (suit <- Suit.values; rank <- Rank.values) yield Card(suit, rank)
val shuffledCards = Random.shuffle(cards)
println("Shuffled Cards: ", shuffledCards)
$ scala cards.scala
(Shuffled Cards: ,Set(Card(Spades,Nine), Card(Hearts,Six), Card(Clubs,Queen), Card(Spades,Six), Card(Clubs,Ten), Card(Diamonds,Three), Card(Diamonds,Ace), Card(Clubs,Jack), Card(Clubs,Five), Card(Diamonds,Jack), Card(Hearts,Jack), Card(Diamonds,Ten), Card(Clubs,Two), Card(Diamonds,Eight), Card(Hearts,Ace), Card(Diamonds,Four), Card(Clubs,Ace), Card(Spades,Seven), Card(Spades,Queen), Card(Diamonds,Six), Card(Clubs,Seven), Card(Hearts,Nine), Card(Spades,King), Card(Spades,Two), Card(Clubs,Six), Card(Spades,Jack), Card(Spades,Ten), Card(Clubs,King), Card(Spades,Five), Card(Hearts,Seven), Card(Diamonds,Nine), Card(Diamonds,Five), Card(Hearts,Ten), Card(Clubs,Three), Card(Diamonds,King), Card(Spades,Four), Card(Hearts,Three), Card(Hearts,Eight), Card(Hearts,Five), Card(Clubs,Eight), Card(Diamonds,Queen), Card(Diamonds,Two), Card(Hearts,Queen), Card(Clubs,Four), Card(Spades,Eight), Card(Hearts,Four), Card(Spades,Three), Card(Hearts,Two), Card(Spades,Ace), Card(Clubs,Nine), Card(Diamonds,Seven), Card(Hearts,King)))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment