Grundsätzlich habe ich ein Array, das gemischt ist. Das Array ist ein Kartenspiel als solche:Keine Wiederholung des Ergebnisses nach einem Shuffle eines Arrays
var rank = ["A","2","3","4","5","6","7","8","9","10","J","Q","K"]
var suit = ["♠", "♥","♦","♣"]
var deck = [String]()
ich eine for-Schleife haben das Deck zu schaffen, mit
for t in suit {
for r in rank {
deck.append("\(r)\(t)")
}
}
ich dann in einer Funktion eine Erweiterung nennen, die ich das Deck mischen erstellt. (Das bringt mich zurück 52 Karten sortiert zufällig)
deck.shuffle()
Die einzige Sache ist, während Ergebnisse zufällig sind, ich will nicht, Karten zu wiederholen. Zum Beispiel, wenn das Ergebnis eine 2 ist, möchte ich nicht 2 ♥, 2 ♦, 2 ♣ in der gedruckten Liste folgen.
Jede Hilfe wird geschätzt! Vielen Dank!
Haben Sie darüber nachgedacht, diese 52 wieder zu mischen, bis keine Wiederholung mehr stattfindet? Da sind '52! = 8.065 x 10^67' Möglichkeiten, ein Deck zu mischen, so ist Ihre Chance, wie oft Sie shuffle ist ziemlich klein –
Ja, obwohl, was passiert, ist, dass ein UILabel, welches Deck gedruckt wird.First ist, und schlurft danach. Mein einziges Problem ist, dass ich nie möchte, dass die Reihenfolge nach dem Mischen gedruckt wird, um Wiederholungen zu erhalten. –
Sie wollen nicht wirklich das Deck gemischt? –