suit.go 921 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package cards
  2. const (
  3. // червы
  4. Hearts Suit = iota
  5. // бубны
  6. Diamonds
  7. // крести
  8. Clubs
  9. // пики
  10. Spades
  11. // значение не определено (корректно только для джокера)
  12. Undefined
  13. )
  14. // масть карты
  15. type Suit byte
  16. // полное наименование масти
  17. func (s Suit) Name() string {
  18. switch s {
  19. case Hearts:
  20. return "Hearts"
  21. case Diamonds:
  22. return "Diamonds"
  23. case Clubs:
  24. return "Clubs"
  25. case Spades:
  26. return "Spades"
  27. default:
  28. return "Undefined"
  29. }
  30. }
  31. // краткое наименование масти
  32. func (s Suit) NameShort() string {
  33. switch s {
  34. case Hearts:
  35. return "♥"
  36. case Diamonds:
  37. return "♦"
  38. case Clubs:
  39. return "♣"
  40. case Spades:
  41. return "♠"
  42. default:
  43. return ""
  44. }
  45. }
  46. // проверка, корректно ли объявлена масть
  47. func (s Suit) IsValid() bool {
  48. return s <= Spades
  49. }