В принципе, у меня есть массив, который перетасовывается. Массив является колода карт, как, например:Нет повторения результата после перетасовки массива
var rank = ["A","2","3","4","5","6","7","8","9","10","J","Q","K"]
var suit = ["♠", "♥","♦","♣"]
var deck = [String]()
У меня есть цикл, чтобы создать палубу с
for t in suit {
for r in rank {
deck.append("\(r)\(t)")
}
}
Я тогда в функции вызвать расширение, которое я создал, чтобы перетасовать колоду. (Это возвращает меня 52 карт ассорти случайным образом)
deck.shuffle()
Единственное в то время как результаты являются случайными, я не хочу карты повторить. Например, если результат равен 2 ♠, я бы не захотел 2 ♥, 2 ♦, 2 ♣, следуя в распечатанном списке.
Любая помощь приветствуется! Благодаря!
Вы считали, что просто перетасовываете эти 52 снова, пока не будет повторений? Есть «52! = 8.065 x 10^67' способы перетасовать колоду, так что ваш шанс, что количество раз, которое вы должны перетасовать, довольно мало –
Да, хотя происходит то, что UILabel печатает, что такое Deck.First, и перетасовывает потом. Моя единственная проблема заключается в том, что я никогда не хочу, чтобы заказ, напечатанный после перетасовки, имел повторение. –
Вы действительно не хотите, чтобы колода перепуталась? –