Я пытаюсь сделать перечисление до express ранга игральных карт, согласно следующим спецификациям:
Перечисление ранга должно иметь только три случая: .ace
, .numeric
и .face
. .ace
представляет Ace, .numeric
представляет номерную карту, а .face
представляет лицевую карту как JQK.
Мы также хотим иметь переменную order
, которая возвращает ранг целого числа для печать (например, «Q» вернет 12.
Перечисление выдает следующее:
var a = Rank.ace
var b = Rank.numeric(pipsCount: 7)
var c = Rank.face("Q")
print("\(a.order)") \\prints: 1
print("\(b.order)") \\prints: 7
print("\(c.order)") \\prints: 12
Пока что моя проблема в том, чтобы заставить его напечатать 12 для «Q».
Я использовал:
case ace
case numeric(pipsCount: Int)
case face(String)
Для изготовления чехлов
А потом переключатель для изготовления других вещей
switch self {
case .ace:
return 1
case .numeric(let pipsCount):
return pipsCount
case .face
return 0
}
Но я просто не уверен, как настроить care .face
, потому что я не уверен, как мне преобразовать входные данные из JQK в 11, 12 и 13 соответственно?