消除类游戏

来源:互联网 发布:淘宝打不开怎么办 编辑:程序博客网 时间:2024/03/29 14:23

问题描述
  消除类游戏是深受大众欢迎的一种游戏,游戏在一个包含有n行m列的游戏棋盘上进行,棋盘的每一行每一列的方格上放着一个有颜色的棋子,当一行或一列上有连续三个或更多的相同颜色的棋子时,这些棋子都被消除。当有多处可以被消除时,这些地方的棋子将同时被消除。
  现在给你一个n行m列的棋盘,棋盘中的每一个方格上有一个棋子,请给出经过一次消除后的棋盘。
  请注意:一个棋子可能在某一行和某一列同时被消除。
输入格式
  输入的第一行包含两个整数n, m,用空格分隔,分别表示棋盘的行数和列数。
  接下来n行,每行m个整数,用空格分隔,分别表示每一个方格中的棋子的颜色。颜色使用1至9编号。
输出格式
  输出n行,每行m个整数,相邻的整数之间使用一个空格分隔,表示经过一次消除后的棋盘。如果一个方格中的棋子被消除,则对应的方格输出0,否则输出棋子的颜色编号。
样例输入
4 5
2 2 3 1 2
3 4 5 1 4
2 3 2 1 3
2 2 2 4 4
样例输出
2 2 3 0 2
3 4 5 0 4
2 3 2 0 3
0 0 0 4 4

////////////////////////////////////////////////////////////////////////

#include "iostream"

using namespace std;
int main()
{
int n, m,i,j;
cin >> n >> m;
int arr[80][80];
int arr1 [80][80];

for (i = 0; i < n; i++)
{
for (j = 0; j < m; j++)
{
cin >> arr[i][j];
arr1[i][j] = arr[i][j];
}
}
for (i = 0; i < n; i++)
{
for (j = 0; j < m; j++)
{
if (j < m-2)
{
if (arr[i][j] == arr[i][j + 1] && arr[i][j] == arr[i][j + 2])
{
arr1[i][j] = arr1[i][j + 1] = arr1[i][j + 2] = 0;
}
}
if (i < n-2)
{
if (arr[i][j] == arr[i + 1][j] && arr[i + 2][j] == arr[i][j])
{
arr1[i][j] = arr1[i + 1][j] = arr1[i + 2][j] = 0;
}
}
}
}
for (i = 0; i < n; i++)    //输出矩阵
{
for (j = 0; j < m; j++)
{
cout << arr1[i][j] << " ";
}
cout << endl;
}
return 0;
}
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 孩子在美国读研读不下去怎么办? 在地割草中过失死亡法律^怎么办 高中毕业申请国外大学没录取怎么办 英国研究生老师没给写推荐信怎么办 申请悉尼大学博士奖学金被拒怎么办 硕士延迟毕业但被博士录取怎么办 考完初级职称还是不会做账怎么办 美国留学生在中国办日本签证怎么办 留学雅思过了gpa低怎么办澳洲 护士电子化注册用户名忘记了怎么办 护士电子化注册证书编码错误怎么办 澳洲预科上半学期成绩不达标怎么办 美国大学绩点不够怎么办学习证明 研一想换导师导师不答应怎么办 日本留学在留下来不想去了怎么办 加拿大工签3年到期了怎么办 鞋子穿久了会有臭味怎么办 考研忘了自己填写的通讯地址怎么办 基础教育教师培训网注册错了怎么办 11个月宝宝便秘大便有血怎么办 两岁宝宝两天没拉粑粑了怎么办 两岁宝宝两天没拉大便怎么办 两岁宝宝便秘两天没拉怎么办 昨天带孩子上早教课一直哭怎么办 网页账号注册无法获取验证码怎么办 我总是为一些事情而烦恼怎么办 手机键盘打出的字是繁体字怎么办 阴阳师协助任务对方接了不做怎么办 wow牧师选错了圣物怎么办 淘宝有几个订单被管控了怎么办 埋线双眼皮一个宽一个窄怎么办 把维D和维C一起吃了怎么办 微信出现当前登录环境异常该怎么办 去麦加朝觐人要出现死亡怎么办 炉石传说偶数骑削弱后怎么办 出于安全和性能方面的原因怎么办 怀孕后不知道拍过好几次牙片怎么办 百度云种子含有非法离线内容怎么办 苹果手机上的迅雷怎么打不开怎么办 微信绑定银行卡收不到验证码怎么办 支付宝转账为什么没验证码怎么办