#include<stdio.h>
int main()
{
char a[20][21];//假设这里的地图大小不超过20*20
int i,j,sum=0,map=0,p,q,x,y,n,m;
//读入n和m,n表示有多少行字符,m表示每行有多少列
scanf("%d%d",&n,&m);
//读入n行字符
for(i=0; i<n; i++)
{
for(j=0; j<m; j++)
//首先判断这个点是不是平点,视平点才可以放置炸弹
if(a[i][j]='.')
{
sum=0;//sum用来计数可以消灭的敌人数,所以需要初始化为0
//将当前坐标i,j复制到新的变量x,y中,以便向上下左右四个方向分别统计可以
//消灭的敌人数
//向上统计可以消灭的敌人数
x=i;
y=j;
while(a[x][y]!='#')//判断是不是墙,如果不是墙就继续
{
//如果当前点是敌人,则进行计数
if(a[x][y]=='G')
sum++;
//x--的作用是继续向上统计
x--;
}
//向下统计可以消灭的敌人数
x=i;
y=j;
while(a[x][y]!='#')
{
if(a[x][y]=='G')
sum++;
//x++的作用是继续向下统计
x++;
}
//向左统计可以消灭的敌人数
x=i;
y=j;
while(a[x][y]!='#')
{
if(a[x][y]=='G')
sum++;
//y--的作用是继续向左统计
y--;
}
//向右统计可以消灭的敌人数
x=i;
y=j;
while(a[x][y]!='#')
{
if(a[x][y]=='G')
sum++;
//y++的作用是继续向右统计
y++;
}
//更新map的值
if(sum>map)
{
map=sum;
p=i;
q=j;//记录当前坐标
}
}
}
printf("将炸弹放置在(%d,d),最多可以消灭%d个敌人\n",p,q,map);
return 0;
}
炸弹人
最新推荐文章于 2021-01-23 20:01:37 发布