版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、#include #include #include #include using namespace std;#define YES 1#define NO 0 void menu();void instruction();void setgame();void startgame();void CreateFile1(char *filename); /新建一個文本文件存放所有猜出單詞的玩家記錄void CreateFile2(char *filename); /新建一個文本文件存放前五名玩家的游戲排名void playrecord(char *filename); /供玩家查看自己的成績
2、記錄void Topfive(); /該函數(shù)用于排名,記錄前五名void Topfiverefer(char *filename); /供玩家查看前五名成績,在Topfive()中進(jìn)行調(diào)用class player /定義一個玩家類,記錄玩家的排名、姓名以及成績public:char name20;float score;int rank;player(char *a=,float b=0,int c=0)strcpy(name,a);score=b;rank=c;void Setname(char *a=)strcpy(name,a);void Setscore(float b)score=b
3、;void Setrank(int c)rank=c;pl1000;static int x; /定義一個靜態(tài)的全局變量void main()int choice;menu(); /顯示菜單coutendl;while(choice)coutchoice;switch(choice)case 1:instruction(); /游戲說明menu();break;case 2:startgame(); /開始游戲x+;menu();break;case 3:playrecord(playrecord.txt); /玩家記錄menu();break;case 4:Topfive(); /前五名記錄
4、menu();break;case 5:coutGame is over! Goodbyeendl; /退出系統(tǒng)exit(0); choice=0;default:coutError input!endl; void menu() /顯示菜單coutendl;cout*歡送進(jìn)入猜單詞游戲系統(tǒng)*endl;cout*菜單如下,請選擇:*endl;coutendl;cout*1:游戲說明*endl;cout*2:開始游戲*endl;cout*3:玩家記錄*endl;cout*4:前五名記錄*endl;cout*5:退出系統(tǒng)*endl;void instruction() /游戲說明 coutendl
5、;cout游戲規(guī)那么如下:endl;cout系統(tǒng)有200個已設(shè)置好了的單詞,游戲開始后,系統(tǒng)將隨機(jī)從中抽取,玩家每次從鍵盤輸入一個字母進(jìn)行猜想,如果這個字母不在單詞中系統(tǒng)提示玩家不對,玩家繼續(xù)猜想,猜詞次數(shù)由玩家自行設(shè)置,直到玩家在規(guī)定的次數(shù)里猜出來了單詞中的所有字母或者超出游戲次數(shù),那么游戲結(jié)束,成績指標(biāo)設(shè)定為單詞長度/猜詞次數(shù)/猜詞時(shí)間.endl;coutendl;void startgame() /開始游戲FILE *fp1;char c;int i=0,j=0;int lenth=0;char str20010; /定義一個二維數(shù)組,存放200個單詞char word10; /定義一個
6、一維數(shù)組,存放抽取到的單詞char ch;int try_count; /由玩家自行設(shè)置猜詞次數(shù),記為try_countint flag10; /單詞的總長度不超過10,故標(biāo)志的最大長度不超過10int have,win,all_one;int right=0,wrong=0; /記錄玩家一個單詞中猜對字母的次數(shù)time_t ts,te; /時(shí)間變量couttry_count;while(try_count10)couttry_count;coutendl;if(fp1=fopen(D:word.txt,r)=NULL) /讀單詞文件coutcan not open file word.txt
7、endl;exit(0);c=fgetc(fp1);while(c!=EOF)if(c!=n)strij=c;/coutstrij; /假設(shè)要檢查文件中的所有單詞,去掉雙斜杠即可j+;elsestrij=0;coutendl;i+;j=0;c=fgetc(fp1);srand(unsigned int)time(NULL); /產(chǎn)生隨機(jī)數(shù)int n=rand()%200;n=rand()%200;cout取得的隨機(jī)數(shù)是第n個單詞endl;for(i=0;strn-1i!=0;i+)wordi=strn-1i;/coutwordi; /去除雙斜杠可查看系統(tǒng)隨機(jī)抽中的單詞lenth+;cout所抽
8、中的單詞長度為:lenthendl;coutendl;win=NO; all_one=YES;for(i=0;ilenth;i+) flagi=0;cout*Game starting*endl;cout0&win=NO)coutYou have try_count chances leaving!endl;coutThe word looks like this:;for(i=0;ilenth;i+)if(flagi=1) putchar(wordi);else putchar(_); putchar( ); coutendl;coutPlease enter a latter to gue
9、ss:;ch=getchar();getchar();for(i=0;ilenth;i+)if(flagi=0&ch=wordi)flagi=1;have=YES; /have 用來標(biāo)識字母是否猜對right+;try_count-;if(have!=YES) coutch Wrong!endl; /提示玩家沒有猜對,只要玩家輸入的不是對應(yīng)的正確的字母那么報(bào)錯,包括無效輸入try_count-;wrong+;else coutYou guess it! ch is in the word!endl; /提示玩家該字母猜對了coutendl;have=NO;for(i=0;ilenth;i+)i
10、f(flagi!=1)all_one=NO; /all_one 用來標(biāo)識玩家是否把整個單詞都猜對了break;if(all_one) win=YES;all_one=YES;system(pause); /游戲結(jié)束,結(jié)束計(jì)時(shí)te=time(NULL);if(win=YES) coutCongratulations! You win!endl; /恭喜玩家整個單詞都猜對了coutThe word is ;for(i=0;ilenth;i+) /顯示正確單詞 coutwordi; coutendl;plx.score=(float)lenth/try_count/(te-ts)*1000; /成績
11、指標(biāo)計(jì)算公式cout您的猜單詞成績指數(shù)為: plx.scoreendl; /顯示玩家的成績指標(biāo)CreateFile1(playrecord.txt); /假設(shè)玩家猜出單詞,那么記入文件 elsecoutYou lose! You have no record!endlThe word is ; /提示玩家單詞沒有完全猜對,告訴玩家正確的單詞for(i=0;ilenth;i+) coutwordi; coutendl;cout您總共猜對了 right 次endl; /顯示玩家每個單詞猜對與猜錯次數(shù)等統(tǒng)計(jì)信息cout猜錯了 wrong 次endl;cout您猜單詞共用了 te-ts秒endl;co
12、utendl;void CreateFile1(char *filename) /新建一個文本文件存放所有猜出單詞的玩家記錄ofstream outf(filename,ios:app);cout請輸入您的姓名以便您查詢成績:; ;outfplx.scoreendl;outf.close();void playrecord(char *filename) /供玩家查看自己的成績記錄char ch;ifstream in(filename);in.get(ch); while(!in.eof() coutch; in.get(ch); in.close(
13、);void Topfive() /該函數(shù)用于排名,記錄前五名class player yy;int i,j;coutx= xendl;for(i=0;ix;i+)for(j=i+1;jpli.score)yy=pli;pli=plj;plj=yy;for(i=0;ix;i+)pli.rank=i+1; CreateFile2(Topfive record.txt);Topfiverefer(Topfive record.txt);void CreateFile2(char *filename) /新建一個文本文件存放前五名玩家的游戲排名int i;ofstream outf(filename,ios:app);for(i=0;i5;i+)outf
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 高鐵新城土地中介合同
- 2025至2030年中國描甲筆數(shù)據(jù)監(jiān)測研究報(bào)告
- 2025至2030年中國復(fù)合陶瓷彎管數(shù)據(jù)監(jiān)測研究報(bào)告
- 2025至2030年中國單軸臥式混合機(jī)數(shù)據(jù)監(jiān)測研究報(bào)告
- 電商平臺招商居間協(xié)議
- 2025年中國懸繩器總成市場調(diào)查研究報(bào)告
- 2025年中國咖啡酸市場調(diào)查研究報(bào)告
- 2025年中國一體化PID自整定儀表市場調(diào)查研究報(bào)告
- 2025至2031年中國爐箱體行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025至2030年中國高速引燃爐數(shù)據(jù)監(jiān)測研究報(bào)告
- 2019級水電站動力設(shè)備專業(yè)三年制人才培養(yǎng)方案
- 室內(nèi)裝飾裝修施工組織設(shè)計(jì)方案
- 洗浴中心活動方案
- 送電線路工程施工流程及組織措施
- 肝素誘導(dǎo)的血小板減少癥培訓(xùn)課件
- 韓國文化特征課件
- 抖音認(rèn)證承諾函
- 清潔劑知識培訓(xùn)課件
- 新技術(shù)知識及軍事應(yīng)用教案
- 高等數(shù)學(xué)(第二版)
- 肺炎喘嗽的中醫(yī)護(hù)理常規(guī)
評論
0/150
提交評論