编程:Scala从牌组中抽出一张牌,直到它为空

时间:2018-05-11 11:02:15

标签: scala

我试图在斯卡拉做一个套牌。我有两位我的信息调查员:“西装”和“面子”。我有以下代码处理甲板类:

case class Card (suit: Suit, face: Face) //require("error") nereikia net naudoti cia, nes object naudojam

  class Deck(myCards: List[Card] = for(face <- Face.all; suit <- Suit.all) yield Card(suit, face))
  {
    val cards = if(myCards.size > 0 && myCards.size <= 52) myCards
    else throw new Exception("Nepavyko sukurti kortu kalades!")

    val shuffledCards = util.Random.shuffle(cards)

    val drawCard = (cards.head, cards.tail)
    val splitShuffled = if(myCards.size % 2 == 0) shuffledCards.sliding(26, 2).toList
    else throw new Exception("Kortu kiekis negali buti nelyginis, nesazininga!")
  }

我如何循环扔掉我的牌组并抽出每张牌?基本上我有一个全新的牌组,然后功能splitShuffled我将我的牌组拆分为两个较小的牌组,供两名玩家使用。我如何比较每张抽出的卡片?对我来说,这是函数式编程最令人沮丧的事情。我不明白!如果我的名单是不可变的,那么如果假设循环投掷这些卡怎么样? :D非常感谢你的帮助!! ^^

0 个答案:

没有答案