遊戲規則摘要
- 洗牌 → 發 5 張明牌 → 莊家暗牌 → 玩家猜大小 → 翻牌計分
- 連猜 3 對/錯 獎懲 1 分、全對/全錯 獎懲 3 分、分數不低於 0
- 點數大小:2<3<...<K<A;同點數比花色:梅花<方塊<紅心<黑桃
三大核心類別設計
1. Card - 單張撲克牌
class Card {
int m_index; // 0-53:0-12♣A-K, 13-25♦, 26-38♥, 39-51♠, 52小王, 53大王
char m_face[8]; // "C-A", "D-10", "H-Q"...
public:
void SetIndex(int idx); // 自動計算花色、點數、面字串
int GetIndex() const;
const char* GetFace() const;
int Compare(const Card& other) const; // 回傳 1/0/-1
};
2. Counter - 計分邏輯封裝
class Counter {
int m_score, m_sequence; // sequence>0連對, <0連錯, =0中斷
int m_roundCorrect, m_roundTotal;
public:
void OnGuess(bool correct);
void OnRoundEnd();
int GetScore() const;
};
3. HiLow - 遊戲主控流程
class HiLow {
Card m_deck[54];
int m_usedIdx, m_playIdx;
Counter m_counter;
public:
void Shuffle();
void PlayRound();
void PlayGame();
};
類別關係圖

介面展示

教學價值
- 純 C++ 標準庫實作,無 MFC/STL 依賴,適合大一/二學生
- 展示物件導向封裝:資料與行為綁定、單一職責原則
- 亂數洗牌、狀態機流程控制、主控台文字介面排版