游戏经典题目之十字激光炮
作者:互联网
题目描述
输入一个5行5列的01矩阵地图,1表示当前位置有敌人,0表示无敌人。
现在地图某位置部署一门十字激光炮,开炮后可以消灭与之同行同列的敌人。
打印激光炮(已布置好)发射前后的地图敌我情况,如示例所示。
程序主体建议使用函数分块完成,大致包含以下三个函数。
input()用于输入题目信息;
check()用于打印当前地图情况;
fire()用于完成激光炮开炮。
输入格式
五行地图数据,每行5个整数,表示该位置是否有敌人。
第6行为激光炮部署位置的行数nn和列数mm,空格隔开
输出格式
打印激光炮(已布置好)发射前后的地图情况,中间用一行fire(开火)隔开,如示例所示。
每个位置上○表示无敌人,●表示有敌人,+表示激光炮,相邻位置间使用空格隔开。
(激光炮位置与敌人重合时显示激光炮标记。三种标记符号可以从这里复制)
#include<bits/stdc++.h>
using namespace std;
int a[6][6];
int n,m;
void input(){
for(int i=1;i<=5;i++)
for(int j=1;j<=5;j++)
cin >> a[i][j];
cin >> n >>m;
a[n][m]=2;
}
void fire(){
cout << "fire" << endl;
for(int j=1;j<=5;j++)
a[n][j]=0;
for(int i=1;i<=5;i++)
a[i][m]=0;
a[n][m]=2;
}
void check(){
for(int i=1;i<=5;i++){
for(int j=1;j<=5;j++){
if(a[i][j]==0)
cout << "○" << " ";
else if(a[i][j]==1)
cout << "●" << " ";
else if(a[i][j]==2)
cout << "+" << " ";
}
cout << endl;
}
}
int main(){
input();
check();
fire();
check();
return 0;
}
标签:题目,激光炮,int,位置,地图,fire,十字,敌人 来源: https://blog.csdn.net/e12435/article/details/122683425