c++简单扫雷程序(报告)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二、实验项目内容(实验题目)
编程序模拟“地雷游戏”的布雷和标注地雷功能,其具体要求为:在 9×9 的方格中, 随机布上 10 颗“地雷”(要求显示时地雷用*号表示);然后在有相邻“地雷”的无 雷方格中标注出相邻地雷的个数;最后输出标注后的结果(雷区)。程序实现的要求 如下: (1)布雷功能、标注地雷功能和输出雷区功能均使用独立的函数完成; (2)布雷功能使用随机函数实现;
if(i==9) i--;
if(j==9) j--;
if(a[i][j]==9) continue;
a[i][j]=9; n++; }
} void tanlei(int b[N][N]) {
int i,j,m,k; for(i=0;i<=N-1;i++)
for(j=0;j<=N-1;j++) if(b[i][j]!=9) for( m=i-1;m<=i+1;m++)
for( k=j-1;k<=j+1;k++)
if(m>=0&&m<=9&&k<=9&&k>=0&&b[m][k]==9) b[i][j]++;
} void shuchu(int c[N][N]) {
int i,j; for(i=0;i<=N-1;i++) {
for(j=0;j<=N-1;j++) if(c[i][j]==9) cout<<"* "; else cout<<c[i][j]<<" "; cout<<endl;
创建时间:2012/4
三、源程序(实验过程或算法)
#include<iostream> #include<ctime> #define N 9 using namespace std; void bulei(int a[N][N]); void tanlei(int b[N][N]); void shuchu(int c[N][N]); int d[N][N]={0};
结论: 通过本次实验,使我更加熟练了对二维函数的应用,对于函数的调
用也有了更深的理解。 在实验遇到的问题也很多,尤其是探雷和布雷部分,对于循环的嵌套
运用还不是很熟练。
int main() {
bulei(d); tanlei(d); shuchu(d); return 0; } void bulei(int a[N][N]) {
srand(time(NULL)); int i,j,n=0; while(n<10) {
i=rand()%10; j=rand()%10;
} }
四、源程序调试过程和(或)实验分析 程序编译后其中一个结果如下: 2*2001*2* 2*2001132 11100001* 000000012 221000112 **20001*2 3*2000111 222000000 1*1000000 其中,*标记为布雷点,数字为提示。 可见,结果满足该实验要求。
实验题目
数组参数传递
实验时间 2012 年 4 月
实验地点
实验成绩
实验性质
□验证性 □设计性 √综合性
教师评价:
□算法/实验过程正确; □源程序/实验内容提交 □程序结构/பைடு நூலகம்验步骤合理;
□实验结果正确;
□语法、语义正确;
□报告规范;
其他:
评价教师签名:
一、实验目的
1.理解模块化程序设计的基本思想; 2.掌握函数定义、函数声明和函数调用的基本方法; 3.理解并掌握数组的定义和数组元素的引用方法; 4.掌握函数调用中使用数组参数传递数据的方法;
编程序模拟“地雷游戏”的布雷和标注地雷功能,其具体要求为:在 9×9 的方格中, 随机布上 10 颗“地雷”(要求显示时地雷用*号表示);然后在有相邻“地雷”的无 雷方格中标注出相邻地雷的个数;最后输出标注后的结果(雷区)。程序实现的要求 如下: (1)布雷功能、标注地雷功能和输出雷区功能均使用独立的函数完成; (2)布雷功能使用随机函数实现;
if(i==9) i--;
if(j==9) j--;
if(a[i][j]==9) continue;
a[i][j]=9; n++; }
} void tanlei(int b[N][N]) {
int i,j,m,k; for(i=0;i<=N-1;i++)
for(j=0;j<=N-1;j++) if(b[i][j]!=9) for( m=i-1;m<=i+1;m++)
for( k=j-1;k<=j+1;k++)
if(m>=0&&m<=9&&k<=9&&k>=0&&b[m][k]==9) b[i][j]++;
} void shuchu(int c[N][N]) {
int i,j; for(i=0;i<=N-1;i++) {
for(j=0;j<=N-1;j++) if(c[i][j]==9) cout<<"* "; else cout<<c[i][j]<<" "; cout<<endl;
创建时间:2012/4
三、源程序(实验过程或算法)
#include<iostream> #include<ctime> #define N 9 using namespace std; void bulei(int a[N][N]); void tanlei(int b[N][N]); void shuchu(int c[N][N]); int d[N][N]={0};
结论: 通过本次实验,使我更加熟练了对二维函数的应用,对于函数的调
用也有了更深的理解。 在实验遇到的问题也很多,尤其是探雷和布雷部分,对于循环的嵌套
运用还不是很熟练。
int main() {
bulei(d); tanlei(d); shuchu(d); return 0; } void bulei(int a[N][N]) {
srand(time(NULL)); int i,j,n=0; while(n<10) {
i=rand()%10; j=rand()%10;
} }
四、源程序调试过程和(或)实验分析 程序编译后其中一个结果如下: 2*2001*2* 2*2001132 11100001* 000000012 221000112 **20001*2 3*2000111 222000000 1*1000000 其中,*标记为布雷点,数字为提示。 可见,结果满足该实验要求。
实验题目
数组参数传递
实验时间 2012 年 4 月
实验地点
实验成绩
实验性质
□验证性 □设计性 √综合性
教师评价:
□算法/实验过程正确; □源程序/实验内容提交 □程序结构/பைடு நூலகம்验步骤合理;
□实验结果正确;
□语法、语义正确;
□报告规范;
其他:
评价教师签名:
一、实验目的
1.理解模块化程序设计的基本思想; 2.掌握函数定义、函数声明和函数调用的基本方法; 3.理解并掌握数组的定义和数组元素的引用方法; 4.掌握函数调用中使用数组参数传递数据的方法;