【发布时间】:2016-07-26 11:26:47
【问题描述】:
我有一个自定义的struct,用于创建、洗牌和发牌。
struct Card {
let pip : Pip
let suit : Suit
var isFaceCard : Bool {
return pip.rawValue > 10
}
var color : CardColor {
return suit.color
}
}
其次,我有一个玩家字典,每个玩家都有一个卡片集合。
var Players = ["Scott": [Card](), "Bob": [Card](), "John": [Card]()]
为了有效地从我已经洗好的牌组中发牌,我计划循环翻阅玩家字典两次,每次发一张牌,就像现场一样。
是否可以简单地将 Card 类型附加到 Card 集合中?我的尝试似乎没有奏效。 d 是 卡片 类型的洗牌 Deck(Collection)。
Players["Scott"].append(d.deal())
编辑1
通过为每个玩家使用结构,我添加了这个
struct Player {
let name : String
var cards : [Card]
}
var Players = [Player]()
Players.append(Player(name:"Scott"))
我必须在初始化时给玩家他们的“牌”还是我可以稍后再发牌?由于上面的代码会产生错误。
Players.append(Player(name:"Scott", cards: [Card]()))
上面说的对吗?
【问题讨论】:
-
如果一个玩家可以拥有一个卡片数组,那么一个 Player 应该是一个结构体并且它应该包含一个卡片数组作为属性。我建议在这里完全不要使用字典。
-
这是个好主意,我会尝试并反馈
-
请记住,如果需要,您可以edit您的问题。 :)
-
我在垃圾评论中也有同样的想法:P