版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> VC++課程設(shè)計(jì)報告</p><p><b> ——猜單詞游戲</b></p><p> VC++課程設(shè)計(jì)報告</p><p><b> 功能:</b></p><p> 課程設(shè)計(jì)題目的功能:</p><p> 一個猜單詞游戲。兩人游戲時,由一
2、個玩家給出一個單詞,在人與計(jì)算機(jī)游戲時,由計(jì)算機(jī)給出一個單詞,另一個玩家根據(jù)組成單詞的字母個數(shù)猜出單詞,猜的次數(shù)可以指定,若猜不中,顯示一個上吊的人形。</p><p> 將猜單詞的函數(shù)與相應(yīng)的數(shù)據(jù)封裝到類中,并改寫主程序,使程序簡化。</p><p> 根據(jù)所猜單詞的字母個數(shù),給出指定幾率的提示字母,顯示于單詞中的正確位置。</p><p> 在進(jìn)入猜單詞的
3、過程后,首先顯示菜單詢問是開始猜單詞還是修改設(shè)置,默認(rèn)的修改次數(shù)為4,默認(rèn)顯示字符的幾率為20%,若要修改這個設(shè)置,在顯示菜單中選擇設(shè)置選項(xiàng)進(jìn)行修改。</p><p> 在人人對抗時,一個玩家給出單詞時,單詞不顯示在屏幕上,字符用“*”顯示。</p><p> 猜單詞時,輸入一個單詞,判斷函數(shù)改為判斷輸入單詞的字符是否與所猜單詞一一對應(yīng),將猜中的字符顯示出來。</p>&
4、lt;p> 在人機(jī)對抗時,可以隨機(jī)讀取單詞,也可以選擇向單詞庫輸入單詞,同時,將單詞庫中單詞的個數(shù)顯示出來,并根據(jù)單詞庫中單詞個數(shù)的多少決定隨機(jī)選取的范圍。</p><p> 程序設(shè)計(jì)的思想和方法</p><p><b> 類的封裝</b></p><p> 畫上吊人形的類已經(jīng)封裝起來,這部分程序基本不用改了,主要是對人人對抗和人
5、及對抗操作部分類的封裝。可以定義一個類的兩個對象,也可以定義為一個基本類和一個派生類的對象,成員函數(shù)可根據(jù)對象的不同分別調(diào)用,數(shù)據(jù)結(jié)構(gòu)如下:</p><p> Class CGuess</p><p><b> {</b></p><p><b> private:</b></p><p>
6、 string Word; //欲猜的單詞</p><p> double Proba; //顯示字符的概率0—1</p><p> int GuessNum;//總共可猜的次數(shù)</p><p> int WrongNum;//猜錯的次數(shù)</p><p> string DisplayWord;//欲顯示的單詞</p>
7、<p> string GuessWord;//第二個玩家輸入猜想的單詞</p><p> int nLen;//輸入單詞的長度</p><p><b> public:</b></p><p> CGuess();//構(gòu)造函數(shù)</p><p> void InitialSet();//修改設(shè)置值&
8、lt;/p><p> void InputWord();//輸入單詞并初始化成員函數(shù)</p><p> void InputGuess();//接收用戶所猜的單詞</p><p> int Judge();//判斷是否猜中,猜中返回0,猜不中返回1或-(death)</p><p> int ShowDisplay();//顯示單詞及上吊
9、人形,程序結(jié)束返回1</p><p> int OpenWordFile();//打開單詞庫,隨機(jī)取出一個單詞賦給Word,成功返回1</p><p> int SaveWordFile();//向單詞庫輸入新單詞,正確返回1</p><p><b> 程序主體結(jié)構(gòu)的設(shè)置</b></p><p> 該設(shè)置基本上全
10、部修改了原程序的結(jié)構(gòu),在main函數(shù)中分別定義人人對抗和人機(jī)對抗的對象。在鍵入對應(yīng)的菜單選項(xiàng)后,進(jìn)入操作函數(shù),操作函數(shù)的參數(shù)即是對應(yīng)對象的引用。同樣,若有下級菜單的函數(shù)一樣用該對象的引用參數(shù),這樣,可保證對象的唯一性。</p><p><b> 主菜單:</b></p><p> 人人對抗(以人人對抗對象的引用作為參數(shù)調(diào)用子程序)</p><p
11、> 人機(jī)對抗(以人機(jī)對抗對象的引用作為參數(shù)調(diào)用子程序)</p><p><b> 人人對抗菜單</b></p><p><b> 開始猜單詞</b></p><p> 設(shè)置系統(tǒng)(即設(shè)置顯示字符的概率和允許猜錯的次數(shù))</p><p><b> 退出</b><
12、;/p><p><b> 人機(jī)對抗</b></p><p><b> 開始猜單詞</b></p><p> 設(shè)置系統(tǒng)(即設(shè)置顯示字符的概率和允許猜錯的次數(shù))</p><p><b> 向單詞庫中添加單詞</b></p><p><b>
13、退出</b></p><p> 人人對抗時輸入欲猜單詞的隱藏</p><p> 一個玩家給出單詞時,單詞不顯示在屏幕上,字符用“*”號顯示。本程序在基礎(chǔ)上還要有些限制條件,就是接收的字符必須是字母,當(dāng)字幕為大寫時還要轉(zhuǎn)化為小寫。如果輸入的不是字母要提示重新輸入。</p><p> C++用于處理字符串變量的新的數(shù)據(jù)類型——字符串類型(string類
14、型)</p><p> 在原程序字符串的操作中用了一種新的數(shù)據(jù)類型——String,該類型是一個字符串類,可以定義對象。它在使用方法上和char,int類型一樣,可以用來定義字符串變量,即用一個名字代表一個字符序列。</p><p><b> 程序設(shè)計(jì)的特點(diǎn)</b></p><p> 增設(shè)了單詞庫,并且輸入50個單詞,以便使用。</
15、p><p> 人人對抗和人機(jī)對抗時顯示是否有重復(fù)字母</p><p> 課程設(shè)計(jì)的詳細(xì)設(shè)計(jì):</p><p> 程序主體結(jié)構(gòu)圖如下:</p><p><b> 程序詳細(xì)結(jié)構(gòu):</b></p><p><b> 1.主菜單程序:</b></p><p
16、> void CGuess::GetChoice(){</p><p> cout<<endl<<endl<<endl;</p><p> cout << " 猜單詞游戲 " << endl << endl;</p&
17、gt;<p> cout <<" 制作者:劉健瑩 " << endl << endl;</p><p> cout << "***********************************************************&quo
18、t; << endl;</p><p> cout << endl;</p><p> cout << " 按1 人人對抗模式" << endl;</p><p> cout << " 按2 人機(jī)對抗模式"
19、 << endl;</p><p> cout << " 按3 退出" << endl;</p><p> cout << endl;</p><p> cout << "***********************************
20、************************" << endl << endl;</p><p> cout<<" 請您選擇: ";</p><p> cin>>Choice;// 得到用戶選擇</p><p> while (!c
21、in||Choice <1 || Choice >3)// 簡查是否無效</p><p><b> {</b></p><p> cout << " 無效輸入" << endl</p><p> << "
22、 請?jiān)佥斎? ";</p><p> Flush(cin);</p><p> cin>>Choice;</p><p> }// 完成簡查, 得到有效輸入,m_Choice變量的值被修改,清屏</p><p> system("cls");</p><p
23、><b> }</b></p><p><b> 2.子菜單程序:</b></p><p> int CGuess::InitialSet()</p><p><b> {</b></p><p> int exit=0;</p><p>
24、; if(Choice==1)</p><p><b> {</b></p><p> cout<<" 人人對抗"<<endl;</p><p> cout << "**************************
25、*********************************" << endl;</p><p> cout<<"按1開始玩游戲"<<endl;</p><p> cout<<"按2修改設(shè)置值"<<endl;</p><p> cout<&
26、lt;"按3退出"<<endl;</p><p> cout<<endl;</p><p> cout<<"*************************************************************"<<endl;</p><p> cout
27、<<" 你的選擇:"<<endl<<endl;</p><p> cin>>Choice2;}</p><p><b> else</b></p><p><b> {</b></p><p&
28、gt; cout<<" 人機(jī)對抗"<<endl;</p><p> cout << "***********************************************************" << endl;</p><p>
29、 cout<<"按1開始玩游戲"<<endl;</p><p> cout<<"按2修改設(shè)置值"<<endl;</p><p> cout<<"按3向單詞庫輸入單詞"<<endl;</p><p> cout<<&qu
30、ot;按4退出"<<endl;</p><p> cout<<endl;</p><p> cout << "***********************************************************" << endl;</p><p> cout<
31、<" 你的選擇:"<<endl<<endl;</p><p> cin>>Choice2;</p><p><b> }</b></p><p> while(!cin||Choice2 < 1 || Choice2 > 4)&l
32、t;/p><p><b> {</b></p><p> cout<< " 無效輸入" << endl</p><p> << " 請?jiān)佥斎? ";</p><p> Flush(
33、cin);</p><p> cin>>Choice2;</p><p><b> }</b></p><p> system("cls");</p><p> if(Choice2==1) cout<<GuessNum<<endl;</p>
34、<p> if(Choice2==2){</p><p> cout<<" 你要幾次猜詞機(jī)會(4 - 10): ";</p><p> cin>>GuessNum;//輸入猜詞次數(shù)</p><p> while (!cin||G
35、uessNum < 4 || GuessNum > 10)</p><p><b> {</b></p><p> cout << " 無效輸入" << endl</p><p> << "
36、 請?jiān)佥斎? 你要幾次猜詞機(jī)會(4 - 10): ";</p><p> Flush(cin);</p><p> cin >>GuessNum;</p><p><b> }</b></p><p><b> }</b></p><p
37、> while(!cin||Choice2 < 1 || Choice2 > 4)</p><p><b> {</b></p><p> cout<< " 無效輸入" << endl</p><p> << "
38、 請?jiān)佥斎? ";</p><p> Flush(cin);</p><p> cin>>Choice2;</p><p><b> }</b></p><p> system("cls");</p><p> if(Choi
39、ce2==1) cout<<Proba<<endl;</p><p> if(Choice2==2){</p><p> cout<<" 你要百分之幾的字母顯示出來(10 - 80): ";</p><p> cin>>Proba;
40、//輸入顯示字母百分?jǐn)?shù)</p><p> while (!cin||Proba < 10 || Proba > 80)</p><p><b> {</b></p><p> cout << " 無效輸入" << endl</p
41、><p> << " 請?jiān)佥斎? 你要百分之幾的字母顯示出來(10 - 80): ";</p><p> Flush(cin);</p><p> cin >>Proba;</p><p><b> }</b></p><p&g
42、t;<b> }</b></p><p> if(Choice2==3)</p><p><b> {</b></p><p> if(Choice==1)</p><p><b> {</b></p><p><b> exit=
43、1;</b></p><p><b> }</b></p><p><b> else </b></p><p><b> {</b></p><p> SaveWordFile();</p><p> InitialSet();&
44、lt;/p><p><b> }</b></p><p><b> }</b></p><p> if(Choice2==4)</p><p><b> {</b></p><p><b> exit=1;</b></p
45、><p><b> }</b></p><p> return exit;</p><p> }3.修改默認(rèn)設(shè)置程序:</p><p> if(Choice2==1) cout<<GuessNum<<endl;</p><p> if(Choice2==2){<
46、;/p><p> cout<<" 你要幾次猜詞機(jī)會(4 - 10): ";</p><p> cin>>GuessNum;//輸入猜詞次數(shù)</p><p> while (!cin||GuessNum < 4 || GuessNum &g
47、t; 10)</p><p><b> {</b></p><p> cout << " 無效輸入" << endl</p><p> << " 請?jiān)佥斎? 你要幾次猜詞機(jī)會(4 - 10
48、): ";</p><p> Flush(cin);</p><p> cin >>GuessNum;</p><p><b> }</b></p><p><b> }</b></p><p> while(!cin||Choice2 <
49、; 1 || Choice2 > 4)</p><p><b> {</b></p><p> cout<< " 無效輸入" << endl</p><p> << " 請?jiān)佥斎? ";</
50、p><p> Flush(cin);</p><p> cin>>Choice2;</p><p><b> }</b></p><p> system("cls");</p><p> if(Choice2==1) cout<<Proba<
51、<endl;</p><p> if(Choice2==2){</p><p> cout<<" 你要百分之幾的字母顯示出來(10 - 80): ";</p><p> cin>>Proba;//輸入顯示字母百分?jǐn)?shù)</p><
52、;p> while (!cin||Proba < 10 || Proba > 80)</p><p><b> {</b></p><p> cout << " 無效輸入" << endl</p><p> << &qu
53、ot; 請?jiān)佥斎? 你要百分之幾的字母顯示出來(10 - 80): ";</p><p> Flush(cin);</p><p> cin >>Proba;</p><p><b> }</b></p><p> 4.默認(rèn)的游戲設(shè)置程序:</p>
54、<p> Proba=20;//顯示單詞字母個數(shù)百分比</p><p> GuessNum=4;//玩家猜詞的機(jī)會</p><p> 5.將單詞輸入進(jìn)單詞庫中的函數(shù):</p><p> void GuessGame::saveWordFile()</p><p><b> {</b></
55、p><p> int n=50,i,j;</p><p> ofstream out;</p><p> out.open("words.txt");</p><p><b> if(!out) </b></p><p><b> {</b><
56、;/p><p> cout<<"不能打開單詞庫"<<endl;</p><p><b> }</b></p><p> cout<<"單詞庫中有50個單詞"<<endl;</p><p> cout<<"向單
57、詞庫中輸入多少個單詞"<<endl;</p><p><b> cin>>j;</b></p><p> cout<<"請向單詞庫中輸入"<<j<<"個單詞"<<endl;</p><p> for ( i = 0;
58、i < j; i++)</p><p> {string word; // 輸入單詞</p><p> getline(cin,word);</p><p><b> n=n+1; </b></p><p> out<< word;</p><p> cout&
59、lt;<"單詞庫中有"<<n<<"個單詞"<<endl;</p><p><b> }</b></p><p> out.close();</p><p><b> }</b></p><p> 6.顯示猜對的
60、單詞:</p><p> void GuessGame::test(string word, char letter, int& numwrong, string& temp)</p><p><b> {</b></p><p> static int m;</p><p> int check
61、2 = 0;// 判斷輸入的字符是否為組成單詞的字符,正確為1</p><p> if (letter == word.at(m)) //若單詞中有這一個字符</p><p><b> {</b></p><p> temp.replace(m, 1, 1, letter);</p><p> check2
62、 = 1;</p><p><b> }</b></p><p> if (check2 == 0) //若單詞中沒有這一個字符</p><p><b> {</b></p><p> cout << endl;</p><p> c
63、out << "Wrong letter" << endl;</p><p> system("pause");</p><p> numwrong++;</p><p><b> }</b></p><p> if(m<(word.lengt
64、h()-1)){m++;}</p><p><b> else m=0;</b></p><p><b> }</b></p><p> 7.輸出給定幾率的字母:</p><p> for (i = word.length() * Proba; i < word.length();
65、i++)</p><p><b> {</b></p><p> temp.replace(i, 1, 1,'*'); </p><p><b> }</b></p><p> 8.游戲程序主體運(yùn)行:</p><p> int CGuess::Run
66、(){</p><p> int exit = 0;//主循環(huán)是否退出的變量,1時退出</p><p> do {//主循環(huán)</p><p> system("cls");// 執(zhí)行系統(tǒng)命令清屏</p><p> GetChoice();// 給出說明并得到選擇</p>
67、;<p> switch(Choice)</p><p><b> {</b></p><p><b> case 1:</b></p><p> Game();// 與人對戰(zhàn)</p><p><b> break;</b></p>&
68、lt;p><b> case 2: </b></p><p> Game();// 與電腦對戰(zhàn)</p><p><b> break;</b></p><p><b> case 3:</b></p><p> cout << "
69、 再見" << endl<<endl;// 退出</p><p><b> exit = 1;</b></p><p><b> break;</b></p><p><b> default:</b></p><
70、;p> cout << " 無效輸入 - 請?jiān)佥斎?quot; << endl; // 無效輸入</p><p><b> }</b></p><p> } while (exit != 1);//退出主循環(huán)</p><p> system("pau
71、se");// 執(zhí)行系統(tǒng)命令:暫停</p><p><b> return 0;</b></p><p> }9.在人人對抗時,一個玩家給出單詞時,單詞不顯示在屏幕上,字符用“*”號顯示。</p><p> #define N 13 //為任意一個字符(包括空白字符)的ASC||碼值</p><p
72、> void CGuess::password()</p><p><b> { </b></p><p> char str[20];</p><p><b> char ch;</b></p><p> int i=0,a=0,j=0;</p><p
73、> string word,Word,worD;</p><p> cout<<"請第二位玩家輸入單詞: "<<endl;</p><p> cout.flush(); //請輸出緩沖區(qū)</p><p> ch=getch();</p><p> while(ch!=
74、13)</p><p><b> {</b></p><p> str[i]=ch;</p><p> if(str[i]>=97&&str[i]<=122)</p><p><b> {</b></p><p> cout<<
75、;'*';j++;</p><p> cout.flush();</p><p> ch=getch();</p><p><b> }</b></p><p> else if(str[i]>=65&&str[i]<=90)</p><p>&
76、lt;b> {</b></p><p> str[i]=str[i]+32;j++;</p><p> cout<<'*';</p><p> cout.flush();</p><p> ch=getch();</p><p><b> }</
77、b></p><p> else if(str[i]<=65||(str[i]>=90&&str[i]<=97)||str[i]>=112)</p><p><b> {</b></p><p> cout<<"*";</p><p>
78、 cout.flush();</p><p> ch=getch();</p><p><b> }</b></p><p><b> i++;</b></p><p> }a=j;for(i=0;i<a;i++)</p><p><b> {<
79、;/b></p><p> word.replace(i, 1, 1, str[i]);</p><p><b> }</b></p><p> Word=word;word=worD;</p><p> int wordcheck;</p><p> do {// 檢查用
80、戶輸入單詞是否有誤</p><p> wordcheck = 0;</p><p> for (int i = 0; i <Word.length(); i++)</p><p> if (!isalpha(Word.at(i)))//isalpha();word.at();</p><p><b> {&
81、lt;/b></p><p> wordcheck = 1;</p><p><b> }</b></p><p> if (wordcheck == 1){</p><p> cout << " 無效 - 請第二位玩家重新輸入: "
82、;</p><p> password();Word=word;word=worD;</p><p><b> }</b></p><p> } while (wordcheck == 1);</p><p><b> w=ch;</b></p><p><b&
83、gt; }</b></p><p> int CGuess::UserWord()</p><p><b> { </b></p><p> cout<<" 人人對戰(zhàn)"<<endl;</p>&l
84、t;p> cout<< " ---------------------------------------" << endl << endl;</p><p> cout<<" 猜詞機(jī)會:"<<GuessNum<<
85、endl;</p><p> cout<<" 顯示字母:"<<Proba<<'%'<<endl;</p><p> password();</p><p> Length=Word.length();</p><
86、p><b> return 1;</b></p><p><b> }</b></p><p> 10.主體的類的定義</p><p> class CGuess{</p><p><b> private:</b></p><p>
87、string Word,word,worD;//要猜的單詞</p><p> string DisplayWord;//用戶所見的單詞</p><p> char*pWord1;</p><p> char*pWord2;</p><p> int Proba;//顯示單詞字母個數(shù)百分比</p>&l
88、t;p> int GuessNum;//玩家猜詞的機(jī)會</p><p> int WrongNum;//玩家猜錯的次數(shù)</p><p> intChosenCounter;//玩家猜過的字母個數(shù)</p><p> stringLetterChosen;//玩家已經(jīng)猜過的字母</p><p> intChoi
89、ce;//玩家的選擇</p><p> intShowNum;//顯示字母個數(shù)</p><p> int Length;//所猜單詞的長度</p><p> intLetterNum;//單詞中的字母個數(shù)</p><p> inti;//循環(huán)的記數(shù)變量,使每次游戲都不一樣</p><p&g
90、t; intCheck;//用戶輸入字母是否正確</p><p> int Choice2;</p><p><b> int w;</b></p><p><b> public:</b></p><p><b> CGuess();</b></p>
91、;<p> intInitialSet();</p><p> intSaveWordFile();</p><p> intUserWord();//玩家出詞</p><p> intRndWord();//電腦出詞</p><p> voidReplaceWord();</p&g
92、t;<p> voidisChosen(char);</p><p> voidJudge(char);</p><p> intRun();//運(yùn)行</p><p> voidGetChoice();//得到選擇</p><p> voidGame();//游戲主要函數(shù)<
93、;/p><p> void Set(); //設(shè)置</p><p> void password();</p><p><b> };</b></p><p><b> 調(diào)試程序的過程:</b></p><p> 主函數(shù)若
94、出現(xiàn)在前面,應(yīng)將其他函數(shù)先定義,或?qū)⒅骱瘮?shù)后置。</p><p> 在程序開頭須將所用函數(shù)的文件包含,否則函數(shù)不得使用。</p><p> 人人對抗時,輸入單詞未顯示*,應(yīng)先設(shè)置顯示部分,然后輸入單詞。</p><p> 當(dāng)使用getch()時,應(yīng)先加頭文件conic.h,否則無法使用。</p><p> 人機(jī)對抗程序會出現(xiàn)不出現(xiàn)單詞
95、,直接顯示猜詞正確,隨機(jī)函數(shù)rand()應(yīng)除50求余。</p><p> 保密部分無法識別大小寫,用ASCII碼將大寫字母轉(zhuǎn)化為小寫字母。</p><p> 人人對抗過程中輸入單詞,輸出*,但是無論退格還是回車都輸出*,在保密函數(shù)中沒有設(shè)置輸入回車或空格就跳出函數(shù)的部分。</p><p> 運(yùn)用保密函數(shù)時出現(xiàn)輸出無效輸入。</p><p&g
96、t; 人人對抗中輸入單詞后顯示*,但是單詞沒有返回原程序,造成沒有猜單詞的過程,只有最后結(jié)果“恭喜你,猜對了!”</p><p> 人機(jī)對抗無法找到words..txt文件,需要先將words文檔轉(zhuǎn)化為文件格式,才能應(yīng)用。</p><p><b> 輸入輸出數(shù)據(jù):</b></p><p> 以人人對抗模式輸入love為例:</p&
97、gt;<p> 1.運(yùn)行程序,出現(xiàn)主菜單,輸入1</p><p> 2,.出現(xiàn)人人對抗模式菜單欄,輸入2</p><p><b> 3.修改默認(rèn)設(shè)置</b></p><p> 4.第二個玩家輸入單詞love</p><p><b> 5.出現(xiàn)猜單詞程序</b></p&g
98、t;<p><b> 6.輸出上吊人形</b></p><p><b> 7.出現(xiàn)正確答案</b></p><p><b> 附:猜單詞過程:</b></p><p><b> 正確輸入</b></p><p><b>
99、錯誤輸入</b></p><p> 向單詞庫中輸入單詞:</p><p><b> 課程設(shè)計(jì)總結(jié):</b></p><p> 通過這次課程設(shè)計(jì),我懂得了如何將所學(xué)的知識運(yùn)用起來,與實(shí)際相結(jié)合,也讓我能夠在以后的學(xué)習(xí)中能夠想有所學(xué),學(xué)有所用,多多聯(lián)系實(shí)際,用知識幫助他人。課程設(shè)計(jì)中,我掌握了類的定義和調(diào)用,數(shù)組的運(yùn)用,菜單欄的設(shè)
100、置等等,同時,程序設(shè)計(jì)過程中,懂得了如何將不會的知識學(xué)會,如何將會的知識靈活熟練地應(yīng)用,也懂得了以后的學(xué)習(xí)也要勤動腦思考,把知識轉(zhuǎn)化為自己的,提高了自己的創(chuàng)新能力,動手能力,思考能力,為我今后的學(xué)習(xí)打下良好的基礎(chǔ)。</p><p> 6. 程序源代碼附錄</p><p> #include <iostream>// 標(biāo)準(zhǔn)輸入輸出[cin;cout]</p&g
101、t;<p> #include <string>// 字符串處理[string.length();at();]</p><p> #include <cctype>// 字符處理和檢測</p><p> #include <fstream>// 文件流</p><p> #includ
102、e <cstdlib>// 使用隨機(jī)函數(shù)用</p><p> #include <time.h>// 得到更好的隨機(jī)數(shù)用</p><p> #include <conio.h></p><p> // draw類定義</p><p> #ifndef DRAW_H// 檢測是否已
103、經(jīng)包含</p><p> #define DRAW_H</p><p> class draw</p><p><b> {</b></p><p><b> public:</b></p><p> draw();// 構(gòu)造函數(shù)</p><
104、p><b> // 成員函數(shù) </b></p><p> void rope(); // 繩子</p><p> void head();// 頭</p><p> void neck();// 頸</p><p> void leftarm();// 左臂 </p><
105、;p> void rightarm();// 右臂</p><p> void waisttop();// 腰</p><p> void leftleg(); // 左腿</p><p> void rightleg();// 右腿</p><p><b> }; </b><
106、/p><p><b> #endif</b></p><p> #ifndef GUESS_H</p><p> #defineGUESS_H</p><p> using namespace std;</p><p><b> //程序類定義</b></p&g
107、t;<p> class CGuess{</p><p><b> private:</b></p><p> string Word,word,worD;//要猜的單詞</p><p> string DisplayWord;//用戶所見的單詞</p><p> char*pWord
108、1;</p><p> char*pWord2;</p><p> int Proba;//顯示單詞字母個數(shù)百分比</p><p> int GuessNum;//玩家猜詞的機(jī)會</p><p> int WrongNum;//玩家猜錯的次數(shù)</p><p> intChosenCoun
109、ter;//玩家猜過的字母個數(shù)</p><p> stringLetterChosen;//玩家已經(jīng)猜過的字母</p><p> intChoice;//玩家的選擇</p><p> intShowNum;//顯示字母個數(shù)</p><p> int Length;//所猜單詞的長度</p><p
110、> intLetterNum;//單詞中的字母個數(shù)</p><p> inti;//循環(huán)的記數(shù)變量,使每次游戲都不一樣</p><p> intCheck;//用戶輸入字母是否正確</p><p> int Choice2;</p><p><b> public:</b></p
111、><p><b> CGuess();</b></p><p> voidInitialSet();</p><p> intSaveWordFile();</p><p> intUserWord();//玩家出詞</p><p> intRndWord();/
112、/電腦出詞</p><p> voidReplaceWord();</p><p> voidisChosen(char);</p><p> voidJudge(char);</p><p> intRun();//運(yùn)行</p><p> voidGetChoice();//
113、得到選擇</p><p> voidGame();//游戲主要函數(shù)</p><p> void Set(); //設(shè)置</p><p> void password();</p><p><b> };</b></p><p>&
114、lt;b> #endif</b></p><p> using namespace std; // 用名字空間std </p><p><b> //構(gòu)造函數(shù)</b></p><p> draw::draw(){}</p><p> void draw::rope()
115、// 輸出上吊繩</p><p> {cout << " |"; }</p><p> void draw::head() //頭</p><p> {cout << " O";}</p><p> void draw::neck()//頸<
116、/p><p> {cout << " |"; }</p><p> void draw::leftarm()//左臂</p><p> {cout << "//"; }</p><p> void draw::rightarm()//右臂</p>
117、<p> {cout << " \\"; }</p><p> void draw::waisttop()//腰</p><p> {cout << " { }"; }</p><p> void draw::leftleg()//左腿</p>&l
118、t;p> {cout << "//"; }</p><p> void draw::rightleg()//右腿</p><p> {cout << " \\"; }</p><p> //---------------------------------------
119、----------------------------------------</p><p><b> //清理輸入流</b></p><p> inline istream& Flush(istream& stream)</p><p><b> {</b></p><p&g
120、t; stream.clear();</p><p> int chars_to_skip = stream.rdbuf()->in_avail();</p><p> return stream.ignore(chars_to_skip);</p><p><b> }</b></p><p> //根
121、據(jù)設(shè)置的次數(shù)和實(shí)際猜錯的次數(shù)畫上吊人形</p><p> void drawman(int numguess, int numwrong, int i)</p><p><b> {</b></p><p><b> draw d;</b></p><p> for (i = 0; i
122、<= numwrong; i++)</p><p><b> {</b></p><p> if (numguess == 4)</p><p><b> {</b></p><p><b> switch(i)</b></p><p>
123、<b> {</b></p><p> case 1: d.rope();cout << endl;d.head();</p><p> cout << endl;d.neck(); break;</p><p> case 2:cout << endl;d.leftarm();</
124、p><p> d.rightarm();break;</p><p> case 3: cout << endl; d.waisttop();break;</p><p> case 4: cout << endl;d.leftleg();d.rightleg();</p><p> cout <&l
125、t; endl << endl << "死翹翹了!" << endl;break;</p><p><b> }</b></p><p><b> }</b></p><p> else if (numguess == 5)</p><
126、p><b> {</b></p><p><b> switch(i)</b></p><p><b> {</b></p><p> case 1:d.rope();break;</p><p> case 2:cout << endl;d
127、.head();cout << endl;d.neck();break;</p><p> case 3:cout << endl;d.leftarm(); d.rightarm(); break;</p><p> case 4:cout << endl;d.waisttop();break;</p><p&g
128、t; case 5:cout << endl;d.leftleg();d.rightleg();</p><p> cout << endl << endl << "死翹翹了!" << endl;break;</p><p><b> }</b></p><
129、;p><b> }</b></p><p> else if (numguess == 6)</p><p><b> {</b></p><p><b> switch(i)</b></p><p><b> {</b></p>
130、;<p> case 1:d.rope();break;</p><p> case 2: cout << endl;d.head(); cout << endl;d.neck(); break;</p><p> case 3:cout << endl;d.leftarm();d.rightarm();brea
131、k;</p><p> case 4:cout << endl;d.waisttop();break;</p><p> case 5:cout << endl;d.leftleg();break;</p><p> case 6:d.rightleg();cout << endl << &quo
132、t;死翹翹了!" << endl;break;</p><p><b> }</b></p><p><b> }</b></p><p> else if (numguess == 7)</p><p><b> {</b></p>
133、<p><b> switch(i)</b></p><p><b> {</b></p><p> case 1:d.rope();break;</p><p> case 2:cout << endl;d.head();cout << endl;d.neck(
134、);break;</p><p> case 3:cout << endl;d.leftarm();break;</p><p> case 4:d.rightarm();break;</p><p> case 5:cout << endl;d.waisttop();break;</p><p&g
135、t; case 6:cout << endl;d.leftleg();break;</p><p> case 7:d.rightleg();cout << endl << "死翹翹了!" << endl;break;</p><p><b> }</b></p>&l
136、t;p><b> }</b></p><p> else if (numguess == 8)</p><p><b> {</b></p><p><b> switch(i)</b></p><p><b> {</b></p&g
137、t;<p> case 1:d.rope();break;</p><p> case 2:cout << endl;d.head(); break;</p><p> case 3:cout << endl;d.neck();break;</p><p> case 4:cout <<
138、endl;d.leftarm();break;</p><p> case 5:d.rightarm(); break;</p><p> case 6:cout << endl;d.waisttop();break;</p><p> case 7:cout << endl;d.leftleg();break;&l
139、t;/p><p> case 8:d.rightleg();cout << endl << "死翹翹了!" << endl;break;</p><p><b> }</b></p><p><b> }</b></p><p>
140、else if (numguess == 9)</p><p><b> {</b></p><p><b> switch(i)</b></p><p><b> {</b></p><p> case 1:d.rope();break;</p>&
141、lt;p> case 2:cout << endl;d.head();break;</p><p> case 3:cout << endl;d.neck();break;</p><p> case 4:cout << endl;d.leftarm();break;</p><p> case
142、 5:d.rightarm();break;</p><p> case 6:cout << endl; d.waisttop();break;</p><p> case 7: break;</p><p> case 8:cout << endl;d.leftleg();break;</p><
143、;p> case 9:d.rightleg(); cout << endl << "死翹翹了!" << endl;break;</p><p><b> }</b></p><p><b> }</b></p><p> else if (nu
144、mguess == 10)</p><p><b> {</b></p><p><b> switch(i)</b></p><p><b> {</b></p><p> case 1:d.rope();break;</p><p>
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 猜單詞游戲c++課程設(shè)計(jì)報告
- c++課程設(shè)計(jì)報告--猜數(shù)游戲
- c語言課程設(shè)計(jì)--猜數(shù)字游戲
- c語言課程設(shè)計(jì)--猜數(shù)字游戲
- c語言課程設(shè)計(jì)--猜數(shù)游戲
- c語言課程設(shè)計(jì)----猜字游戲
- c語言程序課程設(shè)計(jì)-猜數(shù)字游戲
- c語言課程設(shè)計(jì)---猜數(shù)字游戲報告
- c語言課程設(shè)計(jì)---猜數(shù)字游戲姚成
- 猜數(shù)字游戲課程設(shè)計(jì)報告
- 課程設(shè)計(jì)報告--猜數(shù)字游戲
- led猜盤游戲課程設(shè)計(jì)
- java課程設(shè)計(jì)——猜數(shù)字游戲
- led猜盤游戲課程設(shè)計(jì)
- 《c語言程序設(shè)計(jì)》課程設(shè)計(jì)---猜數(shù)字游戲
- java課程設(shè)計(jì)-猜數(shù)游戲課程設(shè)計(jì)報告
- android課程設(shè)計(jì)報告--猜數(shù)字小游戲
- android課程設(shè)計(jì)報告--猜數(shù)字小游戲.doc
- 猜數(shù)字課程設(shè)計(jì)報告
- c++課程設(shè)計(jì)-教學(xué)游戲
評論
0/150
提交評論