Complete native rewrite of the web-based SoliCards game as a SwiftUI multiplatform app targeting iOS 17+, iPadOS 17+, and macOS 14+. Three solitaire variants (Klondike, Spider, FreeCell) with full game rules, drag & drop, smart zoom layout, 6 themes, 4 difficulty levels, SwiftData persistence, VoiceOver accessibility, and 57 unit tests. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
30 lines
553 B
Swift
30 lines
553 B
Swift
import Foundation
|
|
|
|
enum Suit: String, CaseIterable, Codable, Sendable {
|
|
case spades, hearts, diamonds, clubs
|
|
|
|
enum Color: Sendable {
|
|
case red, black
|
|
}
|
|
|
|
var color: Color {
|
|
switch self {
|
|
case .hearts, .diamonds: .red
|
|
case .spades, .clubs: .black
|
|
}
|
|
}
|
|
|
|
var symbol: String {
|
|
switch self {
|
|
case .spades: "♠"
|
|
case .hearts: "♥"
|
|
case .diamonds: "♦"
|
|
case .clubs: "♣"
|
|
}
|
|
}
|
|
|
|
var displayName: String {
|
|
rawValue.capitalized
|
|
}
|
|
}
|