我正在尝试学习 scala,并决定创建一个扑克应用程序来了解一些类对象。我的套牌工作正常,但我已经到了需要抓 5 张牌的地步。到目前为止,我有:
import util.Random
case class Card(value: Int, color: String)
class Deck {
private var deck = newDeck
def draw(amount: Int): List[Card] = {
val ret = deck.take(amount)
deck = deck.drop(amount)
ret
}
def newDeck: List[Card] = {
Random.shuffle((1 to 13).map(x =>
List(Card(x, "D"), Card(x, "C"), Card(x, "H"), Card(x, "S"))).toList.flatten)
}
override def toString: String = "Deck has " + deck.length + " cards left."
}
这个抽奖功能似乎不太正确,有两个步骤 - 但我不确定我还能(或应该)拿走多少张牌,并使列表处于没有这些牌的状态?
(顺便说一句,如果有人对牌组创建/洗牌有更好的功能,我会全神贯注,这似乎也有点老套......但我的主要问题是列表状态)