Schafkopf-Server/Sources/App/Model/CardOrders/CardOrder.swift
Christoph Hagen 3db9652cad Sync push
2021-12-03 18:03:29 +01:00

50 lines
815 B
Swift

//
// File.swift
//
//
// Created by iMac on 03.12.21.
//
import Foundation
enum CardOrderType {
/// The sorting for most games, where heart is trump
case normal
case wenz
case geier
case soloEichel
case soloBlatt
case soloSchelln
}
protocol CardOrder {
static var trumpOrder: [Card] { get }
static var sortIndex: [Card : Int] { get }
}
extension CardOrder {
static func consecutiveTrumps(_ cards: [Card]) -> Int {
var count = 0
while cards.contains(trumpOrder[count]) {
count += 1
}
guard count >= 3 else {
return 0
}
return count
}
static func sort(_ cards: [Card]) -> [Card] {
cards.sorted { sortIndex[$0]! < sortIndex[$1]! }
}
}