Deal cards for FreeCell: Difference between revisions

(Add Factor example)
Line 3,108:
}
</lang>
 
=={{header|Scala}}==
<lang scala>object Shuffler extends App {
 
private val colors = Array("C", "D", "H", "S")
private val values = Array("A", "2", "3", "4", "5", "6", "7", "8", "9", "T", "J", "Q", "K")
private val deck = values.flatMap(v => colors.map(c => s"$v$c"))
 
private var seed: Int = _
 
private def random() = {
seed = (214013 * seed + 2531011) & Integer.MAX_VALUE
seed >> 16
}
 
private def getShuffledDeck = {
val d = deck.map(c => c)
for(i <- deck.length - 1 until 0 by -1) {
val r = random() % (i + 1)
val card = d(r)
d(r) = d(i)
d(i) = card
}
d.reverse
}
 
def deal(seed: Int): Unit = {
this.seed = seed
getShuffledDeck.grouped(8).foreach(e => println(e.mkString(" ")))
}
 
deal(1)
println
deal(617)
}</lang>
 
{{out}}
<pre>
JD 2D 9H JC 5D 7H 7C 5H
KD KC 9S 5S AD QC KH 3H
2S KS 9D QD JS AS AH 3C
4C 5C TS QH 4H AC 4D 7S
3S TD 4S TH 8H 2C JH 7D
6D 8S 8D QS 6C 3D 8C TC
6S 9C 2H 6H
</pre>
<pre>
7D AD 5C 3S 5S 8C 2D AH
TD 7S QD AC 6D 8H AS KH
TH QC 3H 9D 6S 8D 3D TC
KD 5H 9S 3C 8S 7H 4D JS
4C QS 9C 9H 7C 6H 2C 2S
4S TS 2H 5D JC 6C JH QH
JD KS KC 4H
</pre>
 
=={{header|Seed7}}==
Anonymous user