早教吧作业答案频道 -->其他-->
布雷,m*n模拟“地雷游戏”。在M*N的方格中,随机布上dn个“地雷”,按M行N列输出各格子的数(有雷为9(或‘*’),无雷为0)。在有相邻地雷的格子内进一步标出相邻地雷数。要求:1)“雷
题目详情
布雷,m*n
模拟“地雷游戏”。在M*N的方格中,随机布上dn个“地雷”,按M行N列输出各格子的数(有雷为9(或‘*’),无雷为0)。在有相邻地雷的格子内进一步标出相邻地雷数。
要求:
1)“雷区”方阵的大小M和N在程序运行过程中通过键盘输入。
2) 地雷的个数dn在程序运行中指定。
3) 地雷的个数dn必须与指定的个数相同。
模拟“地雷游戏”。在M*N的方格中,随机布上dn个“地雷”,按M行N列输出各格子的数(有雷为9(或‘*’),无雷为0)。在有相邻地雷的格子内进一步标出相邻地雷数。
要求:
1)“雷区”方阵的大小M和N在程序运行过程中通过键盘输入。
2) 地雷的个数dn在程序运行中指定。
3) 地雷的个数dn必须与指定的个数相同。
▼优质解答
答案和解析
// mine-sweeping.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include
#include
using namespace std;
void intial(int **data,int m,int n){
int i,j;
for(i=0;i for(j=0;j data[m][n]=0;
}
}
void mine(int **data,int m,int n,int dn){
int i,j,k;
int *mine_num;
mine_num=new int [dn];
for(i=0;i mine_num[i]=(int)(m*n*rand()/(RAND_MAX+1.0));
}
for(k=0;k {
i=mine_num[k]/m;
j=mine_num[k]%n;
data[i][j]=9;
}
for(i=0;i for(j=0;j if(data[i][j]==0){
data[i][j]=(i!=0)&&(j!=0)&&(data[i-1][j-1]==9)+(i!=0)&&(data[i-1][j]==9)+(i!=0)&&(j!=n)&&(data[i-1][j+1]==9)+
(j!=0)&&(data[i][j-1]==9)+(j!=n)&&(data[i][j+1]==9)+
(i!=m)&&(j!=0)&&(data[i+1][j-1]==9)+(i!=m)&&(data[i+1][j]==9)+(i!=m)&&(j!=n)&&(data[i+1][j+1]==9);
}
}
}
void output(int **data,int m,int n){
FILE *fp;
int i,j;
fp=fopen("out.txt","w");
for(i=0;i for(j=0;j fprintf(fp," %d ",data[i][j]);
}
fprintf(fp,"\n");
}
}
int _tmain(int argc, _TCHAR* argv[])
{
int i,m,n,dn;
int **data;
cout< cin>>m>>n;
dn=5;
//new
//data=new int*[m];
//for(i=0;i // data[i]=new int[n];
//}
data=(int**)malloc(sizeof(int*) *m);
for(i=0;i data[i]=(int*)malloc(sizeof(int) *n);
//cal
srand((int)time(0));
intial(data,m,n);
mine(data,m,n,dn);
//output
output(data,m,n);
//delete
for(i=0;i delete data[i];
}
delete data;
return 0;
}
//
#include "stdafx.h"
#include
#include
using namespace std;
void intial(int **data,int m,int n){
int i,j;
for(i=0;i
}
}
void mine(int **data,int m,int n,int dn){
int i,j,k;
int *mine_num;
mine_num=new int [dn];
for(i=0;i
}
for(k=0;k
i=mine_num[k]/m;
j=mine_num[k]%n;
data[i][j]=9;
}
for(i=0;i
data[i][j]=(i!=0)&&(j!=0)&&(data[i-1][j-1]==9)+(i!=0)&&(data[i-1][j]==9)+(i!=0)&&(j!=n)&&(data[i-1][j+1]==9)+
(j!=0)&&(data[i][j-1]==9)+(j!=n)&&(data[i][j+1]==9)+
(i!=m)&&(j!=0)&&(data[i+1][j-1]==9)+(i!=m)&&(data[i+1][j]==9)+(i!=m)&&(j!=n)&&(data[i+1][j+1]==9);
}
}
}
void output(int **data,int m,int n){
FILE *fp;
int i,j;
fp=fopen("out.txt","w");
for(i=0;i
}
fprintf(fp,"\n");
}
}
int _tmain(int argc, _TCHAR* argv[])
{
int i,m,n,dn;
int **data;
cout< cin>>m>>n;
dn=5;
//new
//data=new int*[m];
//for(i=0;i
//}
data=(int**)malloc(sizeof(int*) *m);
for(i=0;i
//cal
srand((int)time(0));
intial(data,m,n);
mine(data,m,n,dn);
//output
output(data,m,n);
//delete
for(i=0;i
}
delete data;
return 0;
}
看了 布雷,m*n模拟“地雷游戏”...的网友还看了以下:
当一鱼雷在水中发现前900m处有一敌艇以10m/s前进时,鱼雷迅速以15m/s的速度追踪,问鱼雷用 2020-06-28 …
剩下的7只动物分别是什么?宠物店新进了一批小猫和成对的鹦鹉.小猫的只数和鹦鹉的只数正好相等,每只小 2020-07-06 …
雷达在发射和接收电磁波时,在荧光屏上分别呈现出一个尖形波.某型号防空雷达相邻两次发射电磁波的时间间 2020-07-10 …
1.问道巨蜥进化到雷怪要多少元宝2.比如巨蜥强化1次+5点法功进化到雷强化部分加多少点?1.问道巨 2020-08-01 …
一支队伍匀速前进,通讯兵从队尾赶到队前又立即返回,当通讯兵回到队尾时,一支队伍匀速前进,通讯兵匀速从 2020-11-08 …
1小型鱼雷艇距敌舰S米时,放射一枚鱼雷,鱼雷在水中的速度为60米/秒,敌舰以10米/秒的速度向正前方 2020-11-11 …
我国成功研发的反隐身先进米波雷达堪称隐身飞机的克星,它标志着我国雷达研究又创新的里程碑.米波雷达发射 2020-12-04 …
雷雷将零用钱的一半买学习用品,从剩下的一元捐给灾区,这时它还剩下50元,雷雷原有多少零用钱 2020-12-27 …
进入中学后,雷雷的父母望子成龙心切,急于给他找家教,但雷雷非常反对,认为这样剥夺他更多玩耍的时间,况 2021-01-08 …
进入中学后,雷雷的父母望子成龙心切,急于给他找家教,但雷雷非常反对,认为这样剥夺他更多玩耍的时间,况 2021-01-08 …