Swift 生成52张扑克牌且不重复

88 阅读1分钟

代码

import Foundation

enum Suit: String, CaseIterable {
    case hearts = "♥"
    case diamonds = "♦"
    case clubs = "♣"
    case spades = "♠"
}

enum Rank: String, CaseIterable {
    case ace = "A"
    case two = "2", three = "3", four = "4", five = "5", six = "6", seven = "7", eight = "8", nine = "9", ten = "10"
    case jack = "J", queen = "Q", king = "K"
}

struct Card {
    let rank: Rank
    let suit: Suit
    
    var description: String {
        return "\(rank.rawValue)\(suit.rawValue)"
    }
}

var deck = [Card]()

// Generate the deck of cards
for suit in Suit.allCases {
    for rank in Rank.allCases {
        let card = Card(rank: rank, suit: suit)
        deck.append(card)
    }
}

// Shuffle the deck randomly
let shuffledDeck = deck.shuffled()

// Print the shuffled deck
for card in shuffledDeck {
    print(card.description)
}

运行结果

K♦
3623210♥
A♦
A♥
686210753810968♣
Q♦
1047♥
A♣
K♠
89♠
K♥
J♠
4♠
Q♥
5♥
Q♣
4♦
J♦
J♣
K♣
4352♥
A♠
Q♠
795♦
J♥
79