版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> VC++課程設(shè)計(jì)報(bào)告</p><p> 姓名 學(xué)號(hào) 班級(jí) </p><p> 任課教師 時(shí)間 </p><p> 所選課題 對(duì)抗游戲 評(píng)定難易級(jí)別 B </p><p> 實(shí)驗(yàn)報(bào)告成績
2、 </p><p><b> 程序功能介紹:</b></p><p> 一個(gè)對(duì)抗游戲,根據(jù)隨機(jī)產(chǎn)生的數(shù)字決定雙方的輸贏。</p><p><b> 程序設(shè)計(jì)要求:</b></p><p> 當(dāng)雙方進(jìn)行對(duì)抗時(shí),游戲者可根據(jù)自身的牌點(diǎn)決定是否繼續(xù)下注,例如拿到A,把握增大,則在計(jì)
3、算機(jī)的牌點(diǎn)出來之前加大賭注,但不超過5點(diǎn)。</p><p> 將雙方牌點(diǎn)的比較擴(kuò)大為兩張牌點(diǎn)之和,若出現(xiàn)一組對(duì)子,則對(duì)子牌點(diǎn)大于任何單牌,若雙方均為對(duì)子,則比較牌點(diǎn)之和。</p><p><b> 源程序結(jié)構(gòu)設(shè)計(jì)圖:</b></p><p><b> ?。?lt;/b></p><p> 主要程序及
4、功能實(shí)現(xiàn):</p><p> ?。?)、首先創(chuàng)建如下一個(gè)類:</p><p> class CCard</p><p> {int nCard1,nCard2; //兩張牌</p><p> static int nLoop; //出牌次數(shù),游戲結(jié)束時(shí)給出總的出牌次數(shù)</p>&
5、lt;p> static int nScore; //總分</p><p> static int nWin,nLose;</p><p> static int nDraw; //輸、贏、平的次數(shù)</p><p> int nBet; //賭注</p>&l
6、t;p><b> public:</b></p><p> CCard(); //構(gòu)造函數(shù)</p><p> void SetCard(); //出兩張牌</p><p> void Show(); //顯示牌點(diǎn)</p>
7、<p> int AddBet(int); //增加賭注,失敗返回0</p><p> int CheckScore(); //返回玩者的分?jǐn)?shù)</p><p> void friend Compare(CCard&,CCard&); //友元函數(shù),比較牌點(diǎn)的大小,并顯示結(jié)果</p>&
8、lt;p> void friend ShowResult(CCard&,CCard&); //友元函數(shù),輸出輸贏結(jié)果及最后積分</p><p><b> };</b></p><p> ?。?)、對(duì)靜態(tài)成員以及利用構(gòu)造函數(shù)進(jìn)行初始化: </p><p> int CCard::nLoop=0;</p>
9、<p> int CCard::nWin=0;</p><p> int CCard::nLose=0;</p><p> int CCard::nDraw=0;</p><p> int CCard::nScore=52;</p><p> CCard::CCard()</p><p> {
10、 nCard1,nCard2=0;}</p><p> ?。?)、隨機(jī)產(chǎn)生牌點(diǎn):</p><p> void CCard::SetCard()</p><p> { nCard1=rand()%MAX+2;</p><p> nCard2=rand()%MAX+2;</p><p><b> }&
11、lt;/b></p><p> ?。?)、建立其余成員函數(shù):</p><p> void CCard::Show() //顯示雙方的牌</p><p> { if(nCard1==11)</p><p> cout<<"J"<<'
12、\t';</p><p> else if(nCard1==12)</p><p> cout<<"Q"<<'\t';</p><p> else if(nCard1==13)</p><p> cout<<"k"<<
13、9;\t';</p><p> else if(nCard1==14)</p><p> cout<<"A"<<'\t';</p><p><b> else</b></p><p> cout<<nCard1<<'
14、;\t';</p><p> if(nCard2==11)</p><p> cout<<"J"<<endl;</p><p> else if(nCard2==12)</p><p> cout<<"Q"<<endl;</p>
15、<p> else if(nCard2==13)</p><p> cout<<"k"<<endl;</p><p> else if(nCard2==14)</p><p> cout<<"A"<<endl;</p><p><
16、;b> else</b></p><p> cout<<nCard2<<endl;</p><p><b> }</b></p><p> int CCard::AddBet(int a) //下賭注</p><p> { i
17、f(a>=1&&a<=5)</p><p><b> return a;</b></p><p> else return 0;</p><p><b> }</b></p><p> int CCard::CheckScore()</p><
18、p> { return nScore;}</p><p> ?。?)、建立友元函數(shù):</p><p> void Compare(CCard&player,CCard&comp) //比較牌的大小</p><p> { int a=player.nCard1+player.nCard2;</p><p&
19、gt; int b=comp.nCard1+comp.nCard2;</p><p><b> if(a>b) </b></p><p> { cout<<"恭喜!你贏了!"<<endl;</p><p> player.nScore+=c;</p><p>
20、if(c==0)player.nScore++;</p><p> ++player.nWin;</p><p><b> }</b></p><p> else if(a<b)</p><p> { cout<<"很遺憾,你輸了!"<<endl;</p&g
21、t;<p> player.nScore-=c;</p><p> if(c==0)player.nScore--;</p><p> ++player.nLose;</p><p><b> }</b></p><p><b> else </b></p>&
22、lt;p> { cout<<"勢(shì)均力敵"<<endl;</p><p> ++player.nDraw;</p><p><b> }</b></p><p><b> }</b></p><p> void ShowResult(CCa
23、rd&player,CCard&comp) //輸出最后的結(jié)果和最后積分</p><p> { if(player.nCard1==player.nCard2)</p><p> { if(comp.nCard1!=comp.nCard2)</p><p> { cout<<"恭喜!你贏了!"
24、<<endl;</p><p> player.nScore+=c;</p><p> if(c==0)player.nScore++;</p><p> ++player.nWin;</p><p><b> }</b></p><p> if(comp.nCard1==c
25、omp.nCard2)</p><p> Compare(player,comp);</p><p><b> }</b></p><p><b> else</b></p><p> { if(comp.nCard1==comp.nCard2)</p><p>
26、{cout<<"很遺憾,你輸了!"<<endl;</p><p> player.nScore-=c;</p><p> if(c==0)player.nScore--; </p><p> ++player.nLose;</p><p><b> }</b></
27、p><p> else Compare(player,comp);</p><p><b> }</b></p><p> cout<<"你贏了"<<player.nWin<<"回"<<endl;</p><p> cout<
28、;<"你平局了"<<player.nDraw<<"回"<<endl;</p><p> cout<<"你輸了"<<player.nLose<<"回"<<endl;</p><p> cout<<"
29、你的最后積分是:"<<player.nScore<<"分"<<endl; </p><p> cout<<"你用了"<<++player.nLoop<<"輪"<<endl;</p><p><b> }</b>&
30、lt;/p><p> ?。?)、設(shè)計(jì)主程序,創(chuàng)建兩個(gè)類對(duì)象代表玩家和計(jì)算機(jī)并通過類對(duì)象調(diào)用CCard類:</p><p> void main()</p><p><b> { int a;</b></p><p> CCard player;CCard comp;</p><p> sra
31、nd(time(NULL));</p><p> cout<<endl<<"準(zhǔn)備開始!"<<endl<<endl;</p><p> player.SetCard();</p><p> comp.SetCard();</p><p> cout<<&qu
32、ot;你的牌是兩張";</p><p> player.Show();</p><p> cout<<"你可以增加賭注,但不超過5點(diǎn),放棄請(qǐng)輸入不在范圍內(nèi)的任意數(shù)字,請(qǐng)輸入:"<<endl;</p><p><b> cin>>a;</b></p><p
33、> c=player.AddBet(a);</p><p> cout<<"計(jì)算機(jī)有兩張";</p><p> comp.Show();</p><p> ShowResult(player,comp);</p><p> switch(player.CheckScore())</p>
34、;<p> { case 0:</p><p><b> case 52:</b></p><p> cout<<endl<<"游戲結(jié)束!謝謝參與."<<endl;break;</p><p><b> default:</b></p&g
35、t;<p> cout<<endl<<"繼續(xù)1[退出0]"<<endl;</p><p><b> cin>>x;</b></p><p> if(x==1) main();</p><p> break; </p><p>
36、;<b> }</b></p><p><b> 五、反思與總結(jié):</b></p><p> 1、通過C++的課程實(shí)踐,我對(duì)于課本上抽象的概念有了進(jìn)一步的了解,如一開始我直接在類外引用類中的私有成員,就是沒有對(duì)類的封裝性有一個(gè)很好的認(rèn)識(shí)。通過這個(gè)錯(cuò)誤,我真正對(duì)類的特性有了切身的體驗(yàn);</p><p> 2、增強(qiáng)了我
37、的自主學(xué)習(xí)能力。對(duì)抗游戲的程序中大量涉及到友元函數(shù),這一知識(shí)老師剛剛講解完,沒有實(shí)際編程的經(jīng)驗(yàn),這促使我不得不深入了解并掌握這些相關(guān)知識(shí)。而且在做這個(gè)設(shè)計(jì)之前,要對(duì)書中提供的所有源代碼都要有一定的理解,這樣才能完成最初的選題工作;</p><p> 3、激發(fā)了我學(xué)習(xí)C++的興趣。上學(xué)期學(xué)的都是基礎(chǔ)概念,使我不能感覺到C++真正的作用。但是這次的編程讓我看到了C++強(qiáng)大的功能和在軟件世界里無可替代的作用,從而喚醒
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- vc++課程設(shè)計(jì)報(bào)告----對(duì)抗游戲
- vc++課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告---對(duì)抗游戲
- vc++課程設(shè)計(jì)報(bào)告
- vc++軟件課程設(shè)計(jì)報(bào)告
- vc++課設(shè)課程設(shè)計(jì)報(bào)告
- mfc課程設(shè)計(jì)———利用vc++程序編寫掃雷游戲
- vc++課程設(shè)計(jì)報(bào)告---球員管理系統(tǒng)
- vc++課程設(shè)計(jì)報(bào)告---橫向繪制余弦曲線
- vc++俄羅斯方塊課程設(shè)計(jì)報(bào)告
- vc++庫函數(shù)課程設(shè)計(jì)
- vc++課程設(shè)計(jì)-- 餐飲管理系統(tǒng)
- vc++課程設(shè)計(jì)--工資管理
- vc++網(wǎng)絡(luò)聊天軟件課程設(shè)計(jì)
- vc++課程設(shè)計(jì)--工資管理
- vc++課程設(shè)計(jì)報(bào)告--圖書館管理系統(tǒng)
- 漢諾塔課程設(shè)計(jì)--基于vc++的漢諾塔游戲設(shè)計(jì)
- VC++課程設(shè)計(jì)--工資管理.doc
- vc++數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告---外賣訂餐平臺(tái)
- vc++課程設(shè)計(jì)報(bào)告 paint board 簡易畫圖板
- vc++課程設(shè)計(jì)報(bào)告-小型超市商品管理系統(tǒng)
評(píng)論
0/150
提交評(píng)論