C#控制台实现扫雷程序.doc
上传人:qw****27 上传时间:2024-09-12 格式:DOC 页数:10 大小:77KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

C#控制台实现扫雷程序.doc

C#控制台实现扫雷程序.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

秦申学qinshenxue@163.comC#在控制台实现扫雷程序最终运行结果如图所示使用说明玩法同系统自带扫雷游戏规则按Enter键”踩有无雷”按M键标记有雷区域usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespacetest{classProgram{staticvoidMain(string[]args){intn=int.Parse(Console.ReadLine());//用户输入扫雷二维数组大小int[,]mine=newint[n,n];//定义一个扫雷二维数组int[,]record=newint[n,n];//定义一个记录用户当前判定情况的二维数组int[,]amount=newint[n,n];//记录以当前方块为中心的周围八个方块中雷的数量intmc=0;for(inti=0;i<n;i++){for(intj=0;j<n;j++){record[i,j]=-2;}}Randomr=newRandom();//随机布雷for(inti1=0;i1<n;i1++){for(intj1=0;j1<n;j1++){mine[i1,j1]=r.Next(0,4)/3;//从0到2中产生随机数0,1其中0代表无雷,而1代表有雷}}//遍历出雷的数量for(inti2=0;i2<n;i2++){for(intj2=0;j2<n;j2++){if(mine[i2,j2]==1)mc++;}}//记录以当前方块为中心的周围八个方块中雷的数量的产生方法intmine_count=0;//雷的数量for(inti=0;i<n;i++){for(intj=0;j<n;j++){if(mine[i,j]!=1){if(i-1<0||j-1<0||i+1>n-1||j+1>n-1){if(i-1<0&&j-1<0)//左上角{if(mine[i+1,j]==1)mine_count++;if(mine[i,j+1]==1)mine_count++;if(mine[i+1,j+1]==1)mine_count++;amount[i,j]=mine_count;mine_count=0;}if(j-1>=0&&j+1<=n-1&&i-1<0)//上边{if(mine[i,j-1]==1)mine_count++;if(mine[i+1,j-1]==1)mine_count++;if(mine[i+1,j]==1)mine_count++;if(mine[i+1,j+1]==1)mine_count++;if(mine[i,j+1]==1)mine_count++;amount[i,j]=mine_count;mine_count=0;}if(i-1<0&&j+1>n-1)//右上角{if(mine[i,j-1]==1)mine_count++;if(mine[i+1,j-1]==1)mine_count++;if(mine[i+1,j]==1)mine_count++;amount[i,j]=mine_count;mine_count=0;}if(j+1>n-1&&i-1>=0&&i+1<=n-1)//右边{if(mine[i-1,j]==1)mine_count++;if(mine[i-1,j-1]==1)mine_count++;if(mine[i,j-1]==1)mine_count++;if(mine[i+1,j-1]==1)mine_count++;if(mine[i+1,j]==1)mine_count++;amount[i,j]=mine_count;mine_count=0;}if(i+1>n-1&&j+1>n-1)//右下角{if(mine[i-1,j-1]==1)mine_count++;if(mine[i-1,j]==1)mine_count++;if(mine[i,j-1]==1)mine_count++;amount[i,j]=mine_count;mine_count=0;}if(i+1>n-1&&j-1>=0&&j+1<=n-1)//下边{if(mine[i-1,j-1]==1)mine_count++;if(mine[i,j-1]==1)mine_count++;if(mine[i-1,j]==1)mine_count++;if(