21點(diǎn)撲克牌游戲報告_第1頁
21點(diǎn)撲克牌游戲報告_第2頁
21點(diǎn)撲克牌游戲報告_第3頁
21點(diǎn)撲克牌游戲報告_第4頁
21點(diǎn)撲克牌游戲報告_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、實(shí)驗(yàn)報告課程名稱: C語言課程設(shè)計 實(shí)驗(yàn)項(xiàng)目: 21點(diǎn)撲克牌游戲 專業(yè)班級: 電子信息工程1001班 姓 名: 學(xué) 號: 實(shí)驗(yàn)室號: 實(shí)驗(yàn)組號: 4 實(shí)驗(yàn)時間: 2012/6/26 批閱時間: 指導(dǎo)教師: 成 績: 沈陽工業(yè)大學(xué)實(shí)驗(yàn)報告(適用計算機(jī)程序設(shè)計類)實(shí)驗(yàn)名稱:21點(diǎn)撲克牌游戲1. 實(shí)驗(yàn)?zāi)康模?1) 練習(xí)編寫大程序,實(shí)現(xiàn)眼球的功能(2) 熟悉函數(shù)的調(diào)用(3) 編寫函數(shù)實(shí)現(xiàn)程序功能2.實(shí)驗(yàn)內(nèi)容:(1)學(xué)習(xí)編寫實(shí)現(xiàn)想要功能的函數(shù)。(2)學(xué)習(xí)如何在主函數(shù)與其它函數(shù)中調(diào)用函數(shù)。(3)學(xué)習(xí)用輸入輸出函數(shù)設(shè)定輸出界面。(4)學(xué)習(xí)選擇與循環(huán)等在函數(shù)中的應(yīng)用。3. 實(shí)驗(yàn)方案(程序設(shè)計說明)(1)建立一

2、個主函數(shù),在其中實(shí)現(xiàn)對部分功能的函數(shù)調(diào)用。(2)編寫可以滿足功能的函數(shù)。(3)用輸入輸出函數(shù)來控制輸出的界面。4. 實(shí)驗(yàn)步驟或程序(經(jīng)調(diào)試后正確的源程序)主要步驟與程序代碼等。見附件A5程序運(yùn)行結(jié)果見附錄B6出現(xiàn)的問題及解決方法問題1:玩家要牌后程序會自動提示程序有誤,然后停止運(yùn)行解決辦法:重新編寫程序代碼,利用選擇、循環(huán)等結(jié)構(gòu)來實(shí)現(xiàn)玩家要牌與不要牌的處理問題2:程序在沒有提示玩家想往下進(jìn)行游戲的操作解決辦法:利用輸出函數(shù)輸出相關(guān)選擇信息,來提示往下的操作附件A 沈陽工業(yè)大學(xué)實(shí)驗(yàn)報告(適用計算機(jī)程序設(shè)計類)專業(yè)班級: 學(xué)號: 姓名: 實(shí)驗(yàn)步驟或程序:#include<time.h>

3、#include<ctype.h>#include<time.h>#include<stdio.h>#include<conio.h>#include<stdlib.h>#include<string.h>int Tag_f();/*是否開始游戲*/int Random_f(long ,long );/*返回兩個參數(shù)之間的隨機(jī)數(shù)*/void Hit_f(int *);/*發(fā)一張牌*/int Deal_f(int *,int *,int *,int *);/*雙方各發(fā)兩張牌*/void Bet_f(int *,int *);

4、/*接受下注的數(shù)目*/void Print_f(int ,int ,int ,int);/*打印結(jié)果*/void Rules_f();/*顯示游戲規(guī)則*/void Results_f(int ,int,int ,int *,int *,int *,int *);/*統(tǒng)計結(jié)果(輸贏平)*/void Pause_f();int main()int nPlayer=0,nCpu=0,nWin=0,nLose=0,nDraw=0,nPlayerTurns=0,nCpuTurns=0,nMoney=0,tag=1,nBet,nCpuCard1;/*nPlayer-玩家手中全部拍的點(diǎn)數(shù)之和,nPlayer

5、Turns-玩家手中牌的數(shù)量*/char chAnswer; char Answer20;system("cls");/*執(zhí)行系統(tǒng)命令“清屏”*/Rules_f();/*顯示游戲規(guī)則*/system("cls");printf("ttt你想要開始玩嗎?(開始:y/Y 結(jié)束:n/N) ");tag=Tag_f();if(tag=1)printf("nn");printf("ttt你的開始金額為$100n");nMoney=100;printf("ttt");Pause_f();

6、else return 0;dosystem("cls");if(nMoney<=0)printf("nnnnnn");printf("tttt你不夠錢了!n");printf("tttt游戲結(jié)束!n");getchar();return 0;Bet_f(&nBet,&nMoney);/*接受下注的數(shù)目*/nCpuCard1=Deal_f(&nPlayer,&nCpu,&nPlayerTurns,&nCpuTurns);/*雙方各發(fā)兩張牌*/printf(&qu

7、ot;ttt你想繼續(xù)要牌嗎?(要牌:y/Y 不要牌:n/N):t");while(1)gets(Answer);if(strlen(Answer)<2)if(Answer0='y')|(Answer0='Y')if(nPlayerTurns>4)/*看是否允許再要牌*/printf("ttt你的牌不能超過5張");break;if(nPlayerTurns<5)&&(Answer0='y')|(Answer0='Y')nPlayerTurns+;/*計算總牌數(shù)*/ p

8、rintf("n");printf("*");Hit_f(&nPlayer);/*為玩家再發(fā)一張牌*/printf("*nnn"); if(nPlayer>21)printf("ttt你的牌爆了n");tag=0;break;printf("ttt你想繼續(xù)要牌嗎?(要牌:y/Y 不要牌:n/N):t");elseif(Answer0='n')|(Answer0='N')break;elseprintf("nn");printf(&

9、quot;ttt輸入有誤,請從新輸入:");elseprintf("nn");printf("ttt輸入有誤,請從新輸入:"); if(tag=0) printf("ttt你輸了n"); nLose +; else for(;(nCpu<=18)&&(nCpuTurns<5);nCpuTurns+)/*莊家要牌的條件*/ printf("n");printf("*");printf("ttt為莊家發(fā)一張牌n");Hit_f(&nC

10、pu);/*為莊家發(fā)一張牌*/printf("nnn");printf("*nn");printf("nn");printf("莊家的底牌為:");printf("【%d】n",nCpuCard1);printf("ttt莊家的總點(diǎn)數(shù):%dn",nCpu);/*顯示總點(diǎn)數(shù)*/printf("ttt你的的總點(diǎn)數(shù):%dn",nPlayer);printf("n");Results_f(nPlayer,nCpu,nBet,&nMone

11、y,&nDraw,&nWin,&nLose);/*計算最后的結(jié)果(統(tǒng)計輸贏平的局?jǐn)?shù))*/printf("nttt是否想要重來一局?('y/Y or n/N') ");tag=Tag_f();/*是否再來一局*/while(tag);Print_f(nWin,nLose,nDraw,nMoney);/*打印最后的結(jié)果*/printf("nn");printf("tttt按任意鍵退出");getchar();void Rules_f() /* 這個函數(shù)顯示游戲規(guī)則 */ printf("t

12、tt歡迎來玩21點(diǎn) 撲克牌游戲n"); printf("ttt下面是一些游戲規(guī)則n");printf("ttt1你手中最多允許有5張牌n");printf("ttt2超過21點(diǎn)玩家就輸n");printf("ttt3莊家在16點(diǎn)以后一般不再要牌n");printf("ttt4如果你贏了,你贏得賭注以及與賭注相等的錢n");printf("ttt5如果是平局,你可以拿回你的賭注n");printf("ttt6如果你輸了,你就會輸?shù)裟愕馁€注n");p

13、rintf("tttt");printf("按任意鍵繼續(xù)");getchar();void Bet_f(int * npBet,int * npMoney) /* 該函數(shù)接受玩家下注,并計算賭資的總數(shù) */ system("cls");printf("ttt你有:$%dn",*npMoney);printf("ttt你想賭多少:");doscanf("%d",npBet);if( * npBet<0)printf("ttt輸入格式錯誤,請重新下注:"

14、);elseif(* npBet>* npMoney)printf("ttt賭注大于擁有金額,請重新下注:");else break;while(1); * npMoney= * npMoney-(* npBet);printf("你的下注金額為:%dn",* npBet);printf("你的剩余金額為:%dn",* npMoney);printf("nn");int Deal_f(int * npPlayer,int * npCpu,int * npPlayerReturns,int * npCpuRet

15、urns)/* 該函數(shù)是給計算機(jī)與玩家個發(fā)兩張牌 */ int nPlayerCard1,nPlayerCard2,nCpuCard1,nCpuCard2;* npPlayerReturns=2;* npCpuReturns=2;printf("nnttt開始發(fā)牌,每人兩張牌nnn");getchar();nCpuCard1=Random_f(13,1);Pause_f();nCpuCard2=Random_f(13,1);Pause_f();nPlayerCard2=Random_f(13,1);Pause_f();nPlayerCard1=Random_f(13,1);

16、if(nPlayerCard1>=10)nPlayerCard1=10;if(nPlayerCard2>=10)nPlayerCard2=10;if(nCpuCard1>=10)nCpuCard1=10;if(nCpuCard2>=10)nCpuCard2=10;* npPlayer=nPlayerCard1+nPlayerCard2;* npCpu=nCpuCard1+nCpuCard2;printf("*");printf("ttt你的點(diǎn)數(shù)之和:%dn", * npPlayer);printf("你的兩張牌為&quo

17、t;);printf("【%d】",nPlayerCard1);printf("【%d】",nPlayerCard2);printf("n");printf("ttt莊家的底牌未知n");printf("莊家的兩張牌為");printf("【*】【%d】",nCpuCard2);printf("n");printf("*");printf("n");return nCpuCard1;void Hit_f(int *

18、npTotal)/*發(fā)一張牌,返回點(diǎn)數(shù)之和*/int nCard;nCard=Random_f(13,1);if(nCard>=10)nCard=10;* npTotal=* npTotal+nCard;printf("nnttt這張牌的點(diǎn)數(shù)為:nn");printf("ttt【%d】n",nCard)void Results_f(int nPlayer,int nCpu,int nBet,int * npMoney,int * npDraw,int * npWin,int * npLose)if(nCpu=nPlayer)printf("

19、;ttt達(dá)成平手n");+ * npDraw;*npMoney=*npMoney+nBet;elseif(nCpu<nPlayer)printf("ttt你贏了n");* npMoney=* npMoney+(nBet*2);+* npWin;if(nCpu>21)printf("ttt莊家的點(diǎn)數(shù)爆了n");if(nPlayer<=21)printf("ntt你贏了n");+* npWin;* npMoney=* npMoney+(nBet*2);elseif(nCpu>nPlayer)printf("ntt你輸了n");+ * npLose;void Print_f(int nWins,int nLose,int nDraw,int nMoney)system("cls");printf("nnnnnnn");printf("tttt贏的次數(shù):%dn", nWins);printf("tttt輸?shù)拇螖?shù):%dn", nLose);printf("tttt平手次數(shù):%dn", nDraw);printf("tttt最后的錢:%dn", nMoney

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論