diff options
author | Vegard Storheil Eriksen <zyp@jvnv.net> | 2010-12-11 05:52:32 +0100 |
---|---|---|
committer | Vegard Storheil Eriksen <zyp@jvnv.net> | 2010-12-11 05:52:32 +0100 |
commit | 95afa341a9cc098538d799d3691e3bafa09068ac (patch) | |
tree | d41fceded1e11a04ce0f5109b85edc0da8547039 /server | |
parent | 18dc83a5e528bf3b5f2b3129a25832854b42780c (diff) |
Seperate han into yaku and dora.
Diffstat (limited to 'server')
-rw-r--r-- | server/score.cpp | 18 | ||||
-rw-r--r-- | server/score.h | 13 |
2 files changed, 22 insertions, 9 deletions
diff --git a/server/score.cpp b/server/score.cpp index 1af1d63..4589efe 100644 --- a/server/score.cpp +++ b/server/score.cpp @@ -8,28 +8,32 @@ inline int max(int x, int y) { return x > y ? x : y; } -Score::Score(int han_, int fu_) : han(han_), fu(fu_) { +Score::Score(int yaku_, int fu_, int dora_) : yaku(yaku_), fu(fu_), dora(dora_) { } +int Score::han() { + return yaku + dora; +} + int Score::base_points() { - if(han < 5) { + if(han() < 5) { // Normal hand. - return max(roundup(fu, 10) << (2 + han), 2000); + return max(roundup(fu, 10) << (2 + han()), 2000); - } else if(han <= 5) { + } else if(han() <= 5) { // Mangan. return 2000; - } else if(han <= 7) { + } else if(han() <= 7) { // Haneman. return 3000; - } else if(han <= 10) { + } else if(han() <= 10) { // Baiman. return 4000; - } else if(han <= 12) { + } else if(han() <= 12) { // Sanbaiman. return 6000; diff --git a/server/score.h b/server/score.h index 7c5ca17..677fde8 100644 --- a/server/score.h +++ b/server/score.h @@ -3,11 +3,20 @@ class Score { public: - int han; + //! Points (doubles). + int yaku; + + //! Minipoints. int fu; + //! Bonus points. + int dora; + //! Constructor. - Score(int han_ = 0, int fu_ = 0); + Score(int yaku_ = 0, int fu_ = 0, int dora_ = 0); + + //! Calculate han. (yaku + dora) + int han(); //! Calculate base points. int base_points(); |