Schafkopf-Server/Sources/App/Model/Card/Symbol.swift

77 lines
1.7 KiB
Swift
Raw Permalink Normal View History

2021-12-06 11:40:53 +01:00
import Foundation
extension Card {
enum Symbol: Int, CaseIterable, Comparable, Codable {
case ass = 1
case zehn = 2
case könig = 3
case ober = 4
case unter = 5
case neun = 6
case acht = 7
case sieben = 8
init?(id: Character) {
switch id {
case "A": self = .ass
case "Z": self = .zehn
case "K": self = .könig
case "O": self = .ober
case "U": self = .unter
case "9": self = .neun
case "8": self = .acht
case "7": self = .sieben
default:
return nil
}
}
var id: Character {
switch self {
case .ass: return "A"
case .zehn: return "Z"
case .könig: return "K"
case .ober: return "O"
case .unter: return "U"
case .neun: return "9"
case .acht: return "8"
case .sieben: return "7"
}
}
var points: Int {
switch self {
case .ass:
return 11
case .zehn:
return 10
case .könig:
return 4
case .ober:
return 3
case .unter:
return 2
default:
return 0
}
}
var isTrumpOrAce: Bool {
switch self {
case .ass, .ober, .unter:
return true
default:
return false
}
}
static func < (lhs: Card.Symbol, rhs: Card.Symbol) -> Bool {
lhs.rawValue < rhs.rawValue
}
}
}