




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、課 程 設 計 報 告 課程名稱:面向?qū)ο蟪绦蛟O計C+ 設計題目:地雷游戲 專 業(yè):計算機科學與技術(shù) 姓 名: 學 號: 指導教師:李 曉 虹 2016 年 1 月 6 日目錄1.系統(tǒng)需求分析32.總體設計32.1游戲功能:33.詳細設計33.1界面設計:33.2游戲控制及結(jié)束條件:44.系統(tǒng)調(diào)試165.結(jié)果分析176.總結(jié)171. 系統(tǒng)需求分析當今社會發(fā)展迅速,人們對計算機的了解也不斷深入,使用計算了玩一些小游戲放松了心情也有益于大腦的開發(fā)。掃雷作為一種經(jīng)典的游戲被人們所熟知,本課程設計就是復刻了經(jīng)典的掃雷游戲。 2. 總體設計本課程設計主要是開發(fā)一個基于C+的掃雷小游戲,游戲采用VC6.0
2、開發(fā)工具在windows平臺下進行開發(fā)。2.1游戲功能:l 有三種難度選擇。l 通過輸入3位數(shù)字進行掃雷。l 能記錄游戲者名稱。l 游戲結(jié)束時能彈出本次游戲的總結(jié)。3. 詳細設計3.1界面設計:圖3-13.2游戲控制及結(jié)束條件:通過輸入3個數(shù)字,前兩個數(shù)字為坐標,最后一個數(shù)字“1”表示此位置為雷,“0”則表示不是。如:1 3 1 表示一行三列是雷;2 4 0 表示二行四列不是雷。當數(shù)字周圍雷都被掃出時,可再次按要求輸入此位置,可得到周圍數(shù)字。主要代碼如下:#include <iostream>#include<fstream>#include <ctime>
3、#include <cmath>#include <stdlib.h>#include<stdio.h> /時間 /文件#include <string>#define random(x)(rand()%x)using namespace std;void thunder(int Dif,int Row,int Column,char *USer)int r,c,alls2222,backstage2222=0;srand(int)time(0);for(r=1;r<=Row;r+) / 生成alls(01)1是雷for(c=1;c<
4、=Column;c+)if(random(6)<1) allsrc=1; elseallsrc=0;for(r=0;r<=Row+1;r+) /生成 backstage(正確答案)for(int c=0;c<=Column+1;c+)if(allsrc=1) (int)backstagerc='*' /將1變?yōu)?* 代表雷elsefor(int i=r-1;i<=r+1;i+) /將0變?yōu)閿?shù)字 (代表周圍雷數(shù))for(int j=c-1;j<=c+1;j+)if(allsij!=allsrc&&allsij=1)backstager
5、c+; /else 結(jié)束 ; / for 結(jié)束; / for 結(jié)束 cout<<"=*="<<endl;char surface2222; /生成surface(用戶界面)for(r=0;r<22;r+) /全部為零for(c=0;c<22;c+)surfacerc='0'for(r=1;r<=Row;r+) /中間化 # 形成0包圍#的形式 (通過數(shù) #->(*|數(shù)字) 的個數(shù) 贏的時候停止循環(huán))for(c=1;c<=Column;c+)surfacerc='#'for(r=1;r<
6、;=Row;r+) /輸出 surface 界面 便于檢查for(c=1;c<=Column;c+) cout<<" "<<surfacerc; cout<<endl;cout<<"請按格式輸入"<<endl<<"前兩個數(shù)字為坐標,最后一個數(shù)字“1”表示此位置為雷,“0”則表示不是。"<<endl<<"如:1 3 1 表示一行三列是雷;2 4 0 表示二行四列不是雷"<<endl<<&quo
7、t;提示:當數(shù)字周圍雷都被掃出時,可再次按要求輸入此位置,可得到周圍數(shù)字。"<<endl;long i=10000000L; /計算時間開始clock_t start,finish;double duration;start=clock(); while(i-); /計算時間開始int num=Row*Column; /計算#號個數(shù)while(num!=0) /控制 是否點完所有位置int x,y,judge; cin>>x>>y>>judge; if(allsxy!=judge)cout<<"you lose!&
8、quot;<<endl;cout<<"The answer is:"<<endl;for(r=1;r<=Row;r+) /輸了 輸出backstage 顯示正確答案 for(int c=1;c<=Column;c+) cout<<" "<<(char)(backstagerc=42?backstagerc:backstagerc+'0'); /輸出backstage cout<<endl;break; else if(allsxy=1) if(surfac
9、exy='#')num-;surfacexy='' / 雷 判斷正確 顯示“”;數(shù)“#”elseif(backstagexy!=0) / 數(shù)字 判斷正確 顯示數(shù)字if(surfacexy='#')num-; surfacexy=backstagexy+'0' / 數(shù)“#” elseint lei_num=0; for(int i=x-1;i<=x+1;i+) /數(shù) 數(shù)字周圍 雷的個數(shù) for(int j=y-1;j<=y+1;j+)if(surfaceij='') lei_num+; if(backst
10、agexy=lei_num) / 看數(shù)字周圍雷是否全部掃出 提示 顯示數(shù)字周圍for(int i=x-1;i<=x+1;i+)for(int j=y-1;j<=y+1;j+)if(surfaceij='#') /數(shù)“#”surfaceij=backstageij+'0'num-; else / 數(shù)字為零時 顯示零周圍的零if(surfacexy='#')num-; /數(shù)“#” surfacexy=backstagexy+'0'for(int i=x-1;i<=x+1;i+) / 顯示零周圍的數(shù)字for(int j
11、=y-1;j<=y+1;j+)if(surfaceij='#') / 避免 死循環(huán)surfaceij=backstageij+'0' num-; /數(shù)“#”for(int k=0;k<20;k+) /最多20層零 (點出最邊上的零)for (int R=1;R<=Row;R+) /檢查所有零for(int C=1;C<=Column;C+) /再次顯示零周圍的數(shù)字if(surfaceRC='0')for(int i=R-1;i<=R+1;i+)for(int j=C-1;j<=C+1;j+)if(surface
12、ij='#') / 避免 死循環(huán) 數(shù)“#”surfaceij=backstageij+'0'num-; /匹配for 內(nèi) /匹配 for 外/匹配else/匹配else/匹配elscout<<endl;cout<<"=*="<<endl;for(r=1;r<=Row;r+) /輸出界面(已修改)for(c=1;c<=Column;c+) cout<<" "<<surfacerc;cout<<endl; /匹配whilefinish=cloc
13、k(); /計算時間結(jié)束 duration=(double)(finish-start)/CLOCKS_PER_SEC; /時間變量 if(num=0) /所有cout<<" You win! Congratulations! "<<endl; cout<<" Your time is: "<<duration<<endl;if(Dif=1) /讀取 簡單掃雷 的存儲文件string Name; string name6; double Time,rang; double times6; int
14、 i=0; ifstream inf("掃雷 簡單.txt"); for(i=0;i<5;i+) /文件中信息導入到數(shù)組里inf>>Name;inf>>rang>>Time; namei=Name; timesi=Time;inf.close();name5=USer; /本輪玩家信息times5=duration; double t1=0; string t2; for(int j=0;j<5;j+) /冒泡排序法 for(i=0;i<5-j;i+)if(timesi>timesi+1)t1=timesi; ti
15、mesi=timesi+1; timesi+1=t1; t2=namei; namei=namei+1; namei+1=t2;ofstream outf("掃雷 簡單.txt"); for(i=0;i<5;i+) /將前五名玩家信息存儲到文件中cout<<namei<<" "<<i+1<<" "<<timesi<<endl; outf<<namei<<" "<<i+1<<" &q
16、uot;<<timesi<<endl; outf.close(); if(Dif=2) /讀取 一般掃雷 的存儲文件string Name; string name6; double Time,rang; double times6; int i=0; ifstream inf("掃雷 一般.txt"); for(i=0;i<5;i+) /文件中信息導入到數(shù)組里inf>>Name;inf>>rang>>Time; namei=Name; timesi=Time;inf.close();name5=USer;
17、/本輪玩家信息times5=duration; double t1=0; string t2; for(int j=0;j<5;j+) /冒泡排序法 for(i=0;i<5-j;i+)if(timesi>timesi+1)t1=timesi; timesi=timesi+1; timesi+1=t1; t2=namei; namei=namei+1; namei+1=t2;ofstream outf("掃雷 一般.txt"); for(i=0;i<5;i+) /將前五名玩家信息存儲到文件中 并輸出cout<<namei<<&q
18、uot; "<<i+1<<" "<<timesi<<endl; outf<<namei<<" "<<i+1<<" "<<timesi<<endl; outf.close();if(Dif=3) /讀取 困難掃雷 的存儲文件string Name; string name6; double Time,rang; double times6; int i=0; ifstream inf("掃雷 困難.
19、txt"); for(i=0;i<5;i+) /文件中信息導入到數(shù)組里inf>>Name;inf>>rang>>Time; namei=Name; timesi=Time;inf.close();name5=USer; /本輪玩家信息times5=duration; double t1=0; string t2; for(int j=0;j<5;j+) /冒泡排序法 for(i=0;i<5-j;i+)if(timesi>timesi+1)t1=timesi; timesi=timesi+1; timesi+1=t1; t2=
20、namei; namei=namei+1; namei+1=t2;ofstream outf("掃雷 困難.txt"); for(i=0;i<5;i+) /將前五名玩家信息存儲到文件中cout<<namei<<" "<<i+1<<" "<<timesi<<endl; outf<<namei<<" "<<i+1<<" "<<timesi<<endl; outf.close(); void scale(int dif,char *User) /選擇難度int row,column;if(dif=1) row=3;column=3;if(dif=2) row=7;column=7;if(dif=3) row=10;column=10;cout<<"The scale is: "<<row<<"*"<<column<<endl;thunder(dif,row,column,User);int main()int Continue
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 上海體育大學《衛(wèi)生統(tǒng)計學》2023-2024學年第二學期期末試卷
- 長沙環(huán)境保護職業(yè)技術(shù)學院《信息技術(shù)與智慧化土木程》2023-2024學年第一學期期末試卷
- 西安石油大學《MIDI音樂制作》2023-2024學年第一學期期末試卷
- 昆明工業(yè)職業(yè)技術(shù)學院《人力資源管理綜合應用》2023-2024學年第二學期期末試卷
- 四川中醫(yī)藥高等??茖W校《大學外語Ⅱ》2023-2024學年第一學期期末試卷
- 上海現(xiàn)代化工職業(yè)學院《智能硬件設計》2023-2024學年第二學期期末試卷
- 揚州大學廣陵學院《展示技術(shù)與應用》2023-2024學年第二學期期末試卷
- 遼寧軌道交通職業(yè)學院《建筑師業(yè)務基礎》2023-2024學年第二學期期末試卷
- 團建委托合同協(xié)議
- 土地試用期合同協(xié)議
- HGE系列電梯安裝調(diào)試手冊(ELS05系統(tǒng)SW00004269,A.4 )
- 護理教學查房組織與實施
- 小學五年級家長會課件
- 機動車檢測站儀器設備日常維護和保養(yǎng)作業(yè)指導書
- 立式數(shù)控銑床工作臺(X軸)設計
- 萬千心理情緒障礙跨診斷治療的統(tǒng)一方案:治療師指南
- 藏毛竇護理業(yè)務查房課件
- 水土保持-新時代水土保持重點工作課件
- 礦井有計劃停電停風通風安全技術(shù)措施
- 醫(yī)院評審員工應知應會手冊2
- 新《用字母表示數(shù)》說課
評論
0/150
提交評論