【发布时间】:2017-01-23 01:17:48
【问题描述】:
我正在制作一个纸牌游戏,我首先将所有纸牌放在一个分配有数字 1-52 的元组数组中。但是通过使用随机数生成器来挑选卡片,从牌组中移除卡片变得很困难,因为我无法从我的随机数生成器中专门移除该数字。任何帮助表示赞赏。
func createDeck(){
deck.append((name: "ace1", number: 1))
deck.append((name: "ace2", number: 2))
deck.append((name: "ace3", number: 3))
deck.append((name: "ace4", number: 4))
deck.append((name: "two1", number: 5))
deck.append((name: "two2", number: 6))
deck.append((name: "two3", number: 7))
deck.append((name: "two4", number: 8))
deck.append((name: "three1", number: 9))
deck.append((name: "three2", number: 10))
deck.append((name: "three3", number: 11))
deck.append((name: "three4", number: 12))
deck.append((name: "four1", number: 13))
deck.append((name: "four2", number: 14))
deck.append((name: "four3", number: 15))
deck.append((name: "four4", number: 16))
deck.append((name: "five1", number: 17))
deck.append((name: "five2", number: 18))
deck.append((name: "five3", number: 19))
deck.append((name: "five4", number: 20))
deck.append((name: "six1", number: 21))
deck.append((name: "six2", number: 22))
deck.append((name: "six3", number: 23))
deck.append((name: "six4", number: 24))
deck.append((name: "seven1", number: 25))
deck.append((name: "seven2", number: 26))
deck.append((name: "seven3", number: 27))
deck.append((name: "seven4", number: 28))
deck.append((name: "eight1", number: 29))
deck.append((name: "eight2", number: 30))
deck.append((name: "eight3", number: 31))
deck.append((name: "eight4", number: 32))
deck.append((name: "nine1", number: 33))
deck.append((name: "nine2", number: 34))
deck.append((name: "nine3", number: 35))
deck.append((name: "nine4", number: 36))
deck.append((name: "ten1", number: 37))
deck.append((name: "ten2", number: 38))
deck.append((name: "ten3", number: 39))
deck.append((name: "ten4", number: 40))
deck.append((name: "jack1", number: 41))
deck.append((name: "jack2", number: 42))
deck.append((name: "jack3", number: 43))
deck.append((name: "jack4", number: 44))
deck.append((name: "queen1", number: 45))
deck.append((name: "queen2", number: 46))
deck.append((name: "queen3", number: 47))
deck.append((name: "queen4", number: 48))
deck.append((name: "king1", number: 49))
deck.append((name: "king2", number: 50))
deck.append((name: "king3", number: 51))
deck.append((name: "king4", number: 52))
}
func randomNumber(){
random = arc4random_uniform(52) + 0;
print(random)
}
func deal(){
var aces = Set<Int>(arrayLiteral:1, 2, 3,4)
var twos = Set<Int>(arrayLiteral:5, 6, 7,8)
var threes = Set<Int>(arrayLiteral:9, 10, 11,12)
var fours = Set<Int>(arrayLiteral:13, 14, 15,16)
var fives = Set<Int>(arrayLiteral:17, 18,19,20)
var sixes = Set<Int>(arrayLiteral:21, 22, 23,24)
var sevens = Set<Int>(arrayLiteral:25, 26, 27,28)
var eights = Set<Int>(arrayLiteral:29, 30, 31,32)
var nines = Set<Int>(arrayLiteral:33, 34, 35,36)
var tens = Set<Int>(arrayLiteral:37, 38, 39,40)
var jacks = Set<Int>(arrayLiteral:41, 42, 43,44)
var queens = Set<Int>(arrayLiteral:45, 46, 47,48)
var kings = Set<Int>(arrayLiteral:49, 50, 51,52)
if aces.contains(Int(random)){
playern1 = Int(random)
aces.removeFirst()
}
if twos.contains(Int(random)){
twos.removeFirst()
...
【问题讨论】:
-
它是如何“变得困难”的? 挑选或移除一张牌与制作一副牌有什么关系?展示你的代码并解释你想要什么以及实际发生了什么。
-
好的,你去吧
-
你在开玩笑吗?关于什么的建议?你没有按照我的要求去做。你没有解释你想要什么以及实际发生了什么。相信我,看着你提供的代码,我不知道你想做什么。提示我。
-
您创建了一个
deck,但您从不使用它。你定义了randomNumber,你从不调用它。你的代码没有做任何事情! -
不管其他什么,你都应该了解数组,没有理由要进行 50 次
append调用。