/BJEngine/src/Card.h

https://bitbucket.org/mild1/bj · C Header · 79 lines · 69 code · 10 blank · 0 comment · 1 complexity · 2fa92d9b39a6144815145b28e28b5bfa MD5 · raw file

  1. #ifndef _CARD_H_
  2. #define _CARD_H_
  3. #include <ostream>
  4. enum Card
  5. {
  6. CardFirst = 1,
  7. Card2,
  8. Card3,
  9. Card4,
  10. Card5,
  11. Card6,
  12. Card7,
  13. Card8,
  14. Card9,
  15. Card10,
  16. CardJ,
  17. CardQ,
  18. CardK,
  19. CardA,
  20. CardLast
  21. };
  22. struct Score
  23. {
  24. inline static unsigned int CardsScores(Card card)
  25. {
  26. static const unsigned int cardsScores[] =
  27. {
  28. 0, 0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 10, 11
  29. };
  30. return cardsScores[card];
  31. };
  32. inline static Card Score2Card(unsigned int scr)
  33. {
  34. static const Card int2Card[] =
  35. {
  36. CardLast,
  37. CardA,
  38. Card2,
  39. Card3,
  40. Card4,
  41. Card5,
  42. Card6,
  43. Card7,
  44. Card8,
  45. Card9,
  46. Card10,
  47. CardA
  48. };
  49. return int2Card[scr];
  50. }
  51. Score()
  52. {
  53. Reset();
  54. }
  55. unsigned int score;
  56. bool isSoft;
  57. void AddCard(Card card);
  58. void Reset();
  59. friend std::ostream& operator <<(std::ostream& os, const Score& score)
  60. {
  61. if(score.isSoft)
  62. os << "soft ";
  63. else
  64. os << "hard ";
  65. os << score.score;
  66. return os;
  67. };
  68. };
  69. #endif