SoliCards-iOS-iPadOS-MacOS/SoliCards/Models/GameVariant.swift
idev2025 de0da01f25 feat: SoliCards v1.2.0 — native SwiftUI solitaire for iOS, iPadOS, macOS
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>
2026-04-14 08:26:14 -04:00

66 lines
1.2 KiB
Swift

import Foundation
enum GameVariant: String, CaseIterable, Codable, Identifiable, Sendable {
case klondike
case spider
case freeCell
var id: String { rawValue }
var displayName: String {
switch self {
case .klondike: "Klondike"
case .spider: "Spider"
case .freeCell: "FreeCell"
}
}
var tableauCount: Int {
switch self {
case .klondike: 7
case .spider: 10
case .freeCell: 8
}
}
var foundationCount: Int {
switch self {
case .klondike: 4
case .spider: 8
case .freeCell: 4
}
}
var deckCount: Int {
switch self {
case .klondike, .freeCell: 1
case .spider: 2
}
}
var hasWaste: Bool {
switch self {
case .klondike, .spider: true
case .freeCell: false
}
}
var hasFreeCells: Bool {
self == .freeCell
}
var freeCellCount: Int {
switch self {
case .freeCell: 4
case .klondike, .spider: 0
}
}
var hasStock: Bool {
switch self {
case .klondike, .spider: true
case .freeCell: false
}
}
}