其他分享
首页 > 其他分享> > 游戏经典题目之十字激光炮

游戏经典题目之十字激光炮

作者:互联网

题目描述

输入一个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