首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> VC >> VC 教學

Win32 控制台撲克牌大小猜測遊戲:C++ 入門實作教學

     編輯:VC 教學

前言:為何選擇控制台開發?

在程式設計論壇中,常能見到採用 MFC 開發的圖形化介面遊戲,這類程式功能強大、介面美觀且互動便利,非控制台程式所能比擬。然而,對於剛接觸 C/C++ 的初學者或大一、大二學生而言,短期內掌握 MFC 遊戲開發確有難度。因此,筆者採用 Win32 控制台專案,實作一個簡易的 C++ 小遊戲,期望能為初學者撰寫字元介面程式提供參考與啟發。

遊戲規則與流程設計

此遊戲命名為 Hi-Low,核心玩法如下:

遊戲流程

  1. 洗牌:每盤開始前,將撲克牌順序充分隨機化。
  2. 發牌:每局起始時,從未使用的牌堆中順序發給玩家 5 張明牌。
  3. 猜點:從剩餘牌堆取出一張作為莊家暗牌,玩家需判斷手中第一張牌與暗牌的大小關係。
  4. 積分與回收:玩家作答後翻開暗牌,根據正確與否給分並顯示提示,隨後將兩張已比較的牌回收至已用牌堆,玩家手中下一張牌成為新的比較基準。
  5. 重複比較:對玩家剩餘手牌重複步驟 3-4,直至手牌用盡,單局結束。
  6. 下一局判斷:若未用牌堆剩餘超過 10 張,進入下一局(回步驟 2);否則詢問是否繼續新盤(回步驟 1)。

牌面大小比較規則

  • 點數優先:若兩張牌點數不同,大小僅由點數決定,花色無關。順序為:2 < 3 < ... < 10 < J < Q < K < A。
  • 花色決勝:若點數相同,則比較花色,順序為:Club (梅花) < Diamond (方塊) < Heart (紅心) < Spade (黑桃)。

積分機制

  • 猜中 1 次得 1 分,猜錯不扣分。
  • 單局連續猜中 3 次額外獎勵 1 分;連續猜錯 3 次扣 1 分。
  • 單局全猜中額外獎勵 3 分;全猜錯扣 3 分。
  • 最低分數為 0,不出現負分。

類別架構設計

系統採用三大核心類別封裝邏輯:

1. Card 類別 - 撲克牌實體

定義牌面屬性(花色、點數)與顯示操作。關鍵屬性為 index(0~53),作為唯一標識:

  • 0~12:梅花 A~K
  • 13~25:方塊 A~K
  • 26~38:紅心 A~K
  • 39~51:黑桃 A~K
  • 52:小王、53:大王

index / 13 可得花色,index % 13 可得點數(大小王除外)。顯示屬性 face 以字串儲存,如 "C-A" 表梅花 A、"H-10" 表紅心 10。

2. Counter 類別 - 計分邏輯

封裝積分計算所需屬性與操作。核心為 sequence 連續標記:

  • sequence > 0:連續猜中次數
  • sequence < 0:連續猜錯次數
  • sequence = 0:無連續狀態

3. HiLow 類別 - 遊戲主控

依據玩法規則設計,管理撲克牌集合與輔助屬性:

  • usedIndex:已用牌索引,盤初始為 0,每取一牌遞增,範圍 0~51。
  • playIndex:玩家當前操作牌索引,局初始為 usedIndex+1,每次猜點後遞增,範圍 0~51。

圖一 Hi-Low 遊戲介面

圖二 Hi-Low 系統類別圖

完整原始碼實作請參考文末下載連結。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved