在壇子裡經常能看到MFC編制的GUI游戲,功能強大,界面美觀,人機交互便利等優點是控制台程序是無可比擬的.但對於剛初步了解 C/C++的朋友們是無法短期內能學會編寫MFC游戲的。於是小弟采用 Win32 控制台 項目做了一個C++的小游戲,希望對於那些朋友,對大一, 大二的學生編寫字符界面的小程序有所幫助。
該游戲的名稱不妨命名為Hi(gh)-Low,其玩法和規則如下:
1、玩法
2、規則
1)、猜中1次,積1分;猜錯1次,不積分。
2)、1局中連續猜中3次,除正常積分外獎勵1分;連續猜錯3次,罰1分。
3)、1局全部猜中,除正常積分外獎勵3分;1局全部猜錯,罰3分。
4)、玩家的最低積分為0,即不出現負分。
確定兩張撲克牌牌面大小的規則有兩條:
2 < 3 < 4 < 5 < 6 < 7 < 8 < 9 < 10 < J < Q < K < A
程序運行後主界面如下:
圖一 Hi_Low游戲界面
分析得知,我設計了三個類,分別是:
0 - 12對應梅花Club的A 2 3 4 5 6 7 8 9 10 J Q K;
13 - 25對應方塊Diamond的A 2 3 4 5 6 7 8 9 10 J Q K;
26 - 38對應紅心Heart的A 2 3 4 5 6 7 8 9 10 J Q K;
39 - 51對應黑桃Spade的A 2 3 4 5 6 7 8 9 10 J Q K。
52對應小王牌L Trump,53對應大王牌B Trump
顯然,index除以13所得到的整數商可以表示花色,而index模13所得到的余數恰恰是牌點(大小王牌的index值除外) 牌面顯示屬性face:在圖形用戶界面的應用程序中該屬性是描述牌面圖形的 復雜圖形類;而在控制台文本界面的應用程序中該屬性是字符數組類型,用於存放描述牌面的字符串。例如:“C-A”表示梅花A,“D-6”表示方塊6,“H-10” 表示紅心10,“S-Q”表示黑桃Q。
連續猜中時,sequence > 0(連續猜中的次數);
連續猜錯時,sequence < 0(連續猜錯的次數);
即未連續猜中,也未連續猜錯時,sequence = 0。
綜上,系統類圖如下:
圖二 Hi_Low系統類圖
至於具體的編碼實現請參考源代碼例子。
本文示例代碼或素材下載