早教吧作业答案频道 -->其他-->
布雷,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模拟“地雷游戏”...的网友还看了以下:
布雷,m*n模拟“地雷游戏”。在M*N的方格中,随机布上dn个“地雷”,按M行N列输出各格子的数( 2020-05-17 …
关于避雷针的问题求答避雷针接到的雷电人们为何不把它储藏起来供人们用电呢?电导向大地不会对大地产生危 2020-05-17 …
地雷战中的地雷有哪些胶东地雷战中,百种地雷齐上阵.敢问各位老兄,地雷战中的地雷都有什么?都怎么用? 2020-06-23 …
2008年网络,“雷"字横行,“被雷到了”成了无数网民的口头禅。“雷”不是雷电,也不是地雷,而是被 2020-07-03 …
这是一个挖地雷的游戏,在64个方格中一共有10个地雷,每个方格中至多有一个地雷,对于写有数字的方格, 2020-11-21 …
一箱地雷每个地雷的重量相同且都是超过1的整千克数去掉箱子后地雷净重201千克拿出若干个地雷后等详细问 2020-11-21 …
abc地雷22如图已经有一个地雷了,2表示与它相邻的8个方格有两个地雷,求a,b,c处有地雷a\x0 2020-11-21 …
在5×5的方格表中放置16枚地雷,每个格子最多1枚地雷;使得在没有地雷的格子中标上数(这个数表示它周 2020-11-21 …
2008年网络,“雷"字横行,“被雷到了”成了无数网民的口头禅。“雷”不是雷电,也不是地雷,而是被“ 2020-11-21 …
每到夏季,我省各地纷纷进入雨季,雷雨等强对流天气频繁发生,当我们遇到雷雨天气时,一定要注意避防雷电, 2020-11-23 …