number.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package cards
  2. import "fmt"
  3. const (
  4. Jack Number = 11
  5. Queen Number = 12
  6. King Number = 13
  7. Ace Number = 14
  8. Joker Number = 15
  9. )
  10. // порядок карты
  11. type Number byte
  12. // конвертация в строку
  13. func (s Number) String() string {
  14. return s.NameShort()
  15. }
  16. // полное наименование порядка
  17. func (s Number) Name() string {
  18. switch s {
  19. case 2, 3, 4, 5, 6, 7, 8, 9, 10:
  20. return fmt.Sprint(int(s))
  21. case Jack:
  22. return "Jack"
  23. case Queen:
  24. return "Queen"
  25. case King:
  26. return "King"
  27. case Ace:
  28. return "Ace"
  29. case Joker:
  30. return "Joker"
  31. default:
  32. return "Undefined"
  33. }
  34. }
  35. // краткое наименование порядка
  36. func (s Number) NameShort() string {
  37. switch s {
  38. case 2, 3, 4, 5, 6, 7, 8, 9, 10:
  39. return fmt.Sprint(int(s))
  40. case Jack:
  41. return "J"
  42. case Queen:
  43. return "Q"
  44. case King:
  45. return "K"
  46. case Ace:
  47. return "A"
  48. case Joker:
  49. return "JR"
  50. default:
  51. return ""
  52. }
  53. }
  54. // проверка, корректно ли объявлен порядок
  55. func (s Number) IsValid() bool {
  56. return s >= 2 && s <= Joker
  57. }