(完整word版)C++課程設(shè)計(jì)___21點(diǎn)紙牌游戲程序文件_第1頁
(完整word版)C++課程設(shè)計(jì)___21點(diǎn)紙牌游戲程序文件_第2頁
(完整word版)C++課程設(shè)計(jì)___21點(diǎn)紙牌游戲程序文件_第3頁
(完整word版)C++課程設(shè)計(jì)___21點(diǎn)紙牌游戲程序文件_第4頁
(完整word版)C++課程設(shè)計(jì)___21點(diǎn)紙牌游戲程序文件_第5頁
已閱讀5頁,還剩6頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、 #include#include#include#include#include#includeclass gamepublic:game()win=0,lose=0,draw=0,playerturns=0,cputurns=0,money=100,bet=0;player=0,cpu=0;char answer1=123456;strcpy(answer,answer1);char answer2=654321;strcpy(daan,answer2);void rules();/顯示規(guī)則void bet(); /下注void deal();/交易void run(game &);/進(jìn)行

2、異常處理void hit1();/拿下一張牌void hit2();/確保莊家不會爆莊并且點(diǎn)數(shù)大于 16void print();/打印出最后結(jié)果void results();/最后的勝利結(jié)果void check();/檢查是否爆莊game operator=(game &d);/運(yùn)算符重載void replay(char &ans);/是否進(jìn)行新一輪的游戲void clean();/清屏void wait(int);void pause();int getint(int,int);int random(long,long);private:int playerturns,cputurns,m

3、oney;int win,lose,draw,bet;float player,cpu;char answer7;char daan7;/-void game:wait(int milli). clock_t start;start=clock();while( ( clock()-start ) milli );/=void game: pause()coutpress any key to continueendl;getch();/=int game:getint(int l=0,int h=100)int ent;coutplease enter a number between l

4、and hent;while(enth)couterrorendl;coutvalue must be between l and hent;return(ent);/=int game:random(long hi,long lo)/隨機(jī)抽牌int ran;srand(unsigned)time(null);ran=rand()%(hi-(lo-1)+lo;return(ran);/=void game:rules()coutttt *歡迎使用 21點(diǎn)游戲軟件*endl;coutendl;coutendl;coutttt游戲規(guī)則: endl;. coutendl;couttttcoutttt

5、couttttcouttttcouttttcoutttt;pause();:每輪游戲你最多只可以有 5張牌。endl;:如果你的點(diǎn)數(shù)超過 21將輸?shù)暨@輪游戲。endl;:高級玩家可以看下一張牌。endl;:勝利者將得到 2倍的注金。endl;:莊家牌點(diǎn)數(shù)不會小于 16點(diǎn)。endl;/-void game:bet()/下注system(cls);/執(zhí)行系統(tǒng)命令 clscoutttt你的資本:$moneyendl;coutbet;if(bet=0)cout對不起,輸入有誤;exit(0);if(money-bet0)cout對不起,你沒有那么多錢!:(; /sees if your brokeex

6、it(0);money-=bet;/-void game:deal()/發(fā)前兩張牌int playercard1,playercard2,cpucard1,cpucard2;float ccard1,ccard2,pcard2,pcard1;playerturns=2;/開始給玩家發(fā)兩張牌cputurns=2;/莊家也發(fā)兩張牌playercard1=random(13,1);/在 1到 13中找出一個(gè)隨機(jī)數(shù)coutnttt正在洗牌,請稍候.endl;wait(500);playercard2=random(13,1);wait(500);coutplayercard1;coutplayerca

7、rd210)/大于十的牌點(diǎn)數(shù)全部置為 0.5pcard1=0.5,player=pcard1,playercard1=0;if(playercard210)/大于十的牌點(diǎn)數(shù)全部置為 0.5pcard2=0.5,player+=pcard2,playercard2=0;player+=playercard1+playercard2;/總點(diǎn)數(shù)coutttt你現(xiàn)在的點(diǎn)數(shù)為:playerendl;coutendl;cpucard1=random(13,1);/調(diào)用函數(shù)wait(350);cpucard2=random(13,1);/調(diào)用函數(shù)coutttt莊家有一張 cpucard1 為正面牌!endl

8、;cout* cpucard110)/大于十的牌點(diǎn)數(shù)全部置為 0.5ccard1=0.5,cpu=ccard1,cpucard1=0;if(cpucard210)/大于十的牌點(diǎn)數(shù)全部置為 0.5ccard2=0.5,cpu+=ccard2,cpucard2=0;cpu+=cpucard1+cpucard2;/總的點(diǎn)數(shù)coutendl;/-void game:run(game &c2)/進(jìn)行異常處理char ans;doint m=0;system(cls);/執(zhí)行系統(tǒng)命令 clsc2.clean();/進(jìn)行新的一輪游戲!c2.check();/檢驗(yàn)是否爆莊c2.bet(); /進(jìn)行下注c2.d

9、eal(); /洗牌doif(playerturns=5)cout已達(dá)最大牌數(shù),不能再要牌了,請按任意鍵看你的總的點(diǎn)數(shù)!endl;. dotry/開始捕獲異常處理coutttt你愿意繼續(xù)嗎?(hit愿意,stay否):;m=0;/可以沒有的!但把下面的 if語句改一下就必須有了coutans;cin.ignore(20,n);/把輸入行中的其余字符取空,以便后面的輸入從新一輪開始if(ans=h)|(ans=h)|(ans=s)|(ans=s) break;else throw ans;/產(chǎn)生異常事件catch(char)/開始處理異常機(jī)制cout你的輸入有誤?。海ㄕ堉匦螺斎雃ndl;m=1;

10、catch(.)cout你的輸入有誤?。海ㄕ堉匦螺斎?)coutttt你不能多于 5張牌!endl;if(playerturns6)&(ans=h)coutendl;c2.hit1();while(ans=h)|(ans=h);for(;(cpu16)&(cputurns6);cputurns+)coutendl;coutttt莊家得到一張牌!endl;c2.hit2(); /calls hit functioncoutendl;. coutendl;coutttt莊家的點(diǎn)數(shù)為:cpuendl; /顯示莊家的總點(diǎn)數(shù)coutttt你的點(diǎn)數(shù)為:playerendl;/顯示玩家的總點(diǎn)數(shù)coutend

11、l;c2.results(); /看你是否贏了c2.replay(ans);while(ans=y)|(ans=y);void game:hit1()/取下一張并把它加入總和int card=0,copycard=0,bet1=0;float cards=0;card=random(13,1);copycard=card;char ans,s1100;cout如果您是普通玩家請按 n.endl;cout如果您是高級玩家或超級玩家請按y.ans;label1:if(ans=y|ans=y)cin.ignore(20,n);/把輸入行中的其余字符取空,以便后面的輸入從新一路輪開始cout請輸入特別

12、玩家的 6位密碼:;cin.getline(s1,7);/提取密碼if(!strcmp(s1,answer)coutttt這張牌是:copycardendl;coutans;if(ans=y|ans=y)cout你的現(xiàn)金還有$moneyendl;coutbet1;if(money-bet10)cout你沒有足夠的賭注;money=money-bet1;bet+=bet1;couttttelse你的總點(diǎn)數(shù)為 :playerendl;. if(cards=0.5)player-=cards;else player-=copycard;coutttt 你 的 總 點(diǎn) 數(shù)為 :playerendl;e

13、lseif(strcmp(s1,daan)=0)coutendl;cout 現(xiàn) 在 計(jì) 算 機(jī) 的 總 牌 點(diǎn)為:cpuendl;cout您的總牌點(diǎn)為:player10) card=0.5;cout下張牌面是:cardendl;coutcard;if(card10) card=0.5;coutendl;cout您要的牌為cardendl;player=player+card;/牌點(diǎn)總數(shù)cout總的牌面是 : playerendl;/輸出總點(diǎn)數(shù)coutendl;elsecout對不起,你輸入的密碼錯誤!不能看牌cout是 否 再 次 輸 入 密 碼 (yes or no)?endl;ans;if

14、(ans=y|ans=y)goto label1;else. coutttt 總 點(diǎn) 數(shù) 是 :player10)cards=0.5,card=0;player+=cards+card;coutttt總點(diǎn)數(shù)為 :playerendl;/-void game:hit2()/確保莊家不會爆莊并且點(diǎn)數(shù)大于 16int card=0,copycard=0;float cards=0;card=random(13,1);/調(diào)用函數(shù)copycard=card;cout這張牌是:10)cards=0.5,card=0;cpu=cpu+cards+card;if(cpu21)if(cards=0)cpu-=c

15、opycard;/當(dāng) card小于 10但總數(shù)大于 21時(shí)執(zhí)行else cpu-=cards;/當(dāng) card大于 10且點(diǎn)數(shù)大于 21時(shí)執(zhí)行coutttt總點(diǎn)數(shù)為:cpuendl;if(cpu16)/確保莊家點(diǎn)數(shù)大于等于 16cpu=16;coutttt總點(diǎn)數(shù)是:cpuendl;/-void game:results()/找出贏家. if(cpu=player)coutttt點(diǎn)數(shù)一樣,你們平了!21)coutttt啊哦,你爆了!:(endl;lose+;elseif(cpuplayer)cout21)coutttt恭喜你,莊家爆了!:)endl;if(player21)coutplayer)c

16、outttt不好意思,你輸了!:(win,lose=this-lose,draw=this-draw,playerturns=0,cputurns=0,money=this-money,bet=0,player=0,cpu=0;/-void game:replay(char &ans)/是否繼續(xù)游戲coutans;/-void game:check()if(money=0)/檢查錢的多少cout對不起,你輸光了,你不能玩了!:(endl; /sees if your broke/-void game:print()/打印最后結(jié)果void sign();couttttt贏 :winendl;couttttt負(fù):loseendl;couttttt平 :drawendl;couttttt余額 :moneyendl;couttttt謝謝使用endl;if(money=-1000)coutttt你輸?shù)恼鎽K啊!:(end

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論