1. 题目
消除类游戏
2. 解题思路
消除类游戏采用先从左到右进行遍历,后从上到下进行列遍历来解决 超过三个数字相同时记录它们的坐标
3. 实现代码
# -*- ecoding: utf-8 -*-
# @ModuleName: CSP2015-2
# @Function:
# @Author: ZhangMing
# @Time: 2020/10/23 8:53
n, m = map(int, input().split())
Mat_A = []
for i in range(n):
temp = list(map(int, input().split()))
Mat_A.append(temp)
#print(Mat_A)
zero = []
for i in range(n):
for j in range(m - 2):
if Mat_A[i][j] == Mat_A[i][j + 1] and Mat_A[i][j] == Mat_A[i][j + 2]:
zero.append((i, j))
zero.append((i, j + 1))
zero.append((i, j + 2))
for y in range(m):
for x in range(n - 2):
if Mat_A[x][y] == Mat_A[x + 1][y] and Mat_A[x][y] == Mat_A[x + 2][y]:
zero.append((x, y))
zero.append((x + 1, y))
zero.append((x + 2, y))
# print(zero)
for point in set(zero):
Mat_A[point[0]][point[1]] = 0
for i in range(n):
print(' '.join(list(map(str, Mat_A[i]))))
- 代码运行结果