オブジェクトをランダムに選択してビューコントローラに表示するようにコードを管理していますが、最初の配列から2番目の配列に格納されている選択されたものを削除して2回目に選択することはできませんが、これを自分のコードでどのようにするかわかりません。重複:別の配列をループするときに重複するオブジェクトが配列に格納されないようにする
@IBAction func drawCardsButtonPressed(_ sender: Any) {
cardsDrawnArray = []
if cardsDrawn == 1 {
let randomCards = cardsArray[Int(arc4random_uniform(UInt32(cardsArray.count)))]
cardsDrawnArray.append(randomCards.tarotImage)
tarotCardFive.image = cardsDrawnArray[0]
} else if cardsDrawn == 3 {
for _ in 0...2 {
let randomCards = cardsArray[Int(arc4random_uniform(UInt32(cardsArray.count)))]
cardsDrawnArray.append(randomCards.tarotImage)
}
tarotCardFour.image = cardsDrawnArray[0]
tarotCardFive.image = cardsDrawnArray[1]
tarotCardSix.image = cardsDrawnArray[2]
}
else if cardsDrawn == 5 {
for _ in 0...4 {
let randomCards = cardsArray[Int(arc4random_uniform(UInt32(cardsArray.count)))]
cardsDrawnArray.append(randomCards.tarotImage)
}
tarotCardTwo.image = cardsDrawnArray[0]
tarotCardFour.image = cardsDrawnArray[1]
tarotCardFive.image = cardsDrawnArray[2]
tarotCardSix.image = cardsDrawnArray[3]
tarotCardEight.image = cardsDrawnArray[4]
} else if cardsDrawn == 9 {
for _ in 0...8 {
let randomCards = cardsArray[Int(arc4random_uniform(UInt32(cardsArray.count)))]
cardsDrawnArray.append(randomCards.tarotImage)
}
tarotCardOne.image = cardsDrawnArray[0]
tarotCardTwo.image = cardsDrawnArray[1]
tarotCardThree.image = cardsDrawnArray[2]
tarotCardFour.image = cardsDrawnArray[3]
tarotCardFive.image = cardsDrawnArray[4]
tarotCardSix.image = cardsDrawnArray[5]
tarotCardSeven.image = cardsDrawnArray[6]
tarotCardEight.image = cardsDrawnArray[7]
tarotCardNine.image = cardsDrawnArray[8]
} else {
print(" Invalid Number")
}
}
これを解決する助けがあれば大歓迎です。
は多分に設定の代わりに、配列を使用すると、より良いオプションです。コレクションに固有の要素のみが含まれるようにします。 – chr0x