2020.2.29普及C组 扫雷(mine) 【纪中】【暴力模拟】
作者:互联网
这就是一个单纯的暴力模拟
有许多小细节。
读题一定要读清楚,
不然就会酿成大错
我差一点。。。
代码
#include<algorithm>
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int n,a[60][60],x,y,bj;
int main()
{
freopen("mine.in","r",stdin);
freopen("mine.out","w",stdout);
cin>>n;
for(int i=1; i<=n; i++)
for(int j=1; j<=n; j++)
cin>>a[i][j];
while(cin>>x>>y)
{
if(x==0&&y==0)
break;
if(a[x][y]>0) //如果触到雷
{
cout<<"GAME OVER!";
return 0;
}
else if(a[x][y]!=-1&&a[x][y]!=-2) //当前数不是-1或-2才继续做
{
for(int i=x-1; i<=x+1; i++) //将输入的范围赋值
for(int j=y-1; j<=y+1; j++)
{
if(a[i][j]>=0)
{
if(a[i][j]==1)
a[i][j]=-2;
else if(a[i][j]==0)
a[i][j]=-1;
}
}
}
for(int i=1; i<=n; i++) //循环判断还有没有雷
{
for(int j=1; j<=n; j++)
{
if(a[i][j]==1)
{
bj=1;
break;
}
}
if(bj==1)
break;
}
if(bj==0) //没雷就输出胜利
{
cout<<"YOU ARE WINNER!";
return 0;
}
bj=0;
}
for(int i=1; i<=n; i++) //结束后没“完成任务”就输出地图
{
for(int j=1; j<=n; j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
return 0;
}
Jackma_mayichao
发布了80 篇原创文章 · 获赞 13 · 访问量 3082
私信
关注
标签:cin,int,29,2020.2,mine,60,纪中,freopen,include 来源: https://blog.csdn.net/Jackma_mayichao/article/details/104600540