Anonymous user
Deal cards for FreeCell: Difference between revisions
→{{header|Swift}}
Line 3,138:
=={{header|Swift}}==
Swift 4.2. Largely based on the Objective-C example.
<lang Swift>
case clubs = "C", diamonds = "D", hearts = "H", spades = "S"
var seed : Int▼
mutating func next() -> Int {▼
self.seed = (self.seed * 214013 + 2531011) % (Int(Int32.max)+1)▼
return self.seed >> 16▼
}▼
var description: String {
return self.rawValue
Line 3,155 ⟶ 3,145:
}
enum Rank : Int, CustomStringConvertible, CaseIterable {
case ace=1, two, three, four, five, six, seven
case
var description: String {
let d : [Rank:String] = [.ace:"A", .king:"K", .queen:"Q", .jack:"J", .ten:"T"]
Line 3,174 ⟶ 3,153:
}
struct Card : CustomStringConvertible {
let rank : Rank, suit : Suit
var description : String {
return String(describing:self.rank) + String(describing:self.suit)
Line 3,191 ⟶ 3,169:
for i in (0..<52).reversed() {
self.cards.append(Card(sequence:i))
▲ }
struct MicrosoftLinearCongruentialGenerator {
▲ var seed : Int
▲ mutating func next() -> Int {
▲ self.seed = (self.seed * 214013 + 2531011) % (Int(Int32.max)+1)
▲ return self.seed >> 16
}
}
var r = MicrosoftLinearCongruentialGenerator(seed: seed)
|