好文档 - 专业文书写作范文服务资料分享网站

原创C语言扫雷程序大作业代码

天下 分享 时间: 加入收藏 我要投稿 点赞

#include #include #include

#define random(x) (rand()%x)

int n=0;//-------------------------------------------完成度判断

int bomb[12][12]={{},{},{},{},{},{},{},{},{},{},{},{},};//地雷分布(地雷1、无雷0)

int tru[10][10]={{},{},{},{},{},{},{},{},{},{}};//真相数组[truth](地雷数、地雷*、误判/、空白O) int tbl[12][12]={{' ','X',1,2,3,4,5,6,7,8,9,10},

{'Y','+','-','-','-','-','-','-','-','-','-','-'}, {1,'|','_','_','_','_','_','_','_','_','_','_'}, {2,'|','_','_','_','_','_','_','_','_','_','_'}, {3,'|','_','_','_','_','_','_','_','_','_','_'}, {4,'|','_','_','_','_','_','_','_','_','_','_'}, {5,'|','_','_','_','_','_','_','_','_','_','_'}, {6,'|','_','_','_','_','_','_','_','_','_','_'}, {7,'|','_','_','_','_','_','_','_','_','_','_'}, {8,'|','_','_','_','_','_','_','_','_','_','_'}, {9,'|','_','_','_','_','_','_','_','_','_','_'},

{10,'|','_','_','_','_','_','_','_','_','_','_'}}; //棋盘数组[table](坐标系|-12、地雷数、红旗P、地雷*、爆炸X、误判/) int main()//---------------------主函数 { welcome(); do {

game(); } while (n<=9);//未胜利,继续进行游戏 if(n==10)

printf(\!\\n\全部地雷标记完成,胜利 else

printf(\!\\n\引爆地雷,失败 return 0; }

int welcome() {

int i,j,m,a,num;

printf(\to Bomb Hunter!\\nFirst of all,please input the number of bombs(eg:30):\\n\ scanf(\

printf(\ srand((int)time(0)); for (m=0;m

a=random(100);//----------------------0到99生成随机数,取个位和十位 j=a+1; i=(a-j)/10+1; if(bomb[i][j]!=1) { bomb[i][j]=1; m++; }

}//------------------------------------地雷数组生成 printf(\

updt_tru();//---------------tru生成 dspl();//-------------------打印棋盘 return 0; }

int updt_tru()//---------------------------真相数组的生成[update_truth] {

int e,f;

for(e=1;e<11;e++) for(f=1;f<11;f++) {

if(bomb[e][f]==1) tru[e-1][f-1]='*'; else

tru[e-1][f-1]='_'; } return 0; }

int updt_tbl()//---------------------------------游戏中棋盘的更新 { int i,j; for (i=1;i<11;i++) for (j=1;j<11;j++) { if(tru[i-1][j-1]!='/'&&tru[i-1][j-1]!='*') tbl[i+1][j+1]=tru[i-1][j-1]; } return 0; }

int fnl_tbl()//-----------------------------结局棋盘的更新[final_table] { int i,j; for (i=1;i<11;i++) for (j=1;j<11;j++)

{ if(tru[i-1][j-1]=='/'||tru[i-1][j-1]=='*') tbl[i+1][j+1]=tru[i-1][j-1]; }//---------------------------------tbl的最终刷新 return 0; }

int dspl()//----------------------------棋盘打印函数[display] {

int s,t; updt_tbl(); printf(\

for(s=0;s<12;s++) {

for(t=0;t<12;t++)

if(tbl[s][t]=='_'||tbl[s][t]=='*'||tbl[s][t]=='X'||tbl[s][t]=='P'||tbl[s][t]=='/'||tbl[s][t]=='O'||tbl[s][t]=='+'||tbl[s][t]=='-'||tbl[s][t]=='|'||tbl[s][t]=='_'||tbl[s][t]==' '||tbl[s][t]=='Y')

printf(\打印字符 else

printf(\打印数字 printf(\ }

printf(\ return 0; }

int srdng(int x,int y)//-------------------------周围雷数计算[surrounding] { int z;

z=bomb[x-1][y-1]+bomb[x-1][y]+bomb[x-1][y+1]+bomb[x][y-1]+bomb[x][y+1]+bomb[x+1][y-1]+bomb[x+1][y]+bomb[x+1][y+1]; return z; }

int anls_1(int x,int y)//-------------------------------------左方境况分析(空白点的迭代)[analyse] { int a;

a=srdng(x,y); if(a!=0) { tru[x-1][y-1]=a; tbl[x+1][y+1]=a; } else {

原创C语言扫雷程序大作业代码

#include#include#include#definerandom(x)(rand()%x)intn=0;//-------------------------------------------完成度判断intbomb[12][12]={{},{},{},{},{}
推荐度:
点击下载文档文档为doc格式
29nal0nop88iiwn479cv9uewu2s0h401e02
领取福利

微信扫码领取福利

微信扫码分享