这个例子不是很难,也没有太多抽象的内容,细心就好,下面上代码
python:
import numpy import numpy as np global n global map def zhadanren(): global n, map res = -1 res_i = -1 res_j = -1 for i in range(n): for j in range(n): #从左上角第一个元素循环遍历地图中的所有元素,找到空地放置炸弹 num = 0 #记录将炸弹放置在这一点可以消灭的敌人个数 if map[i][j] == '.': x, y = i, j while map[x][y] != '#': #从放置炸弹的这一点往上数,计算在遇到墙之前可以消灭的敌人个数 x -= 1 if map[x][y] == 'G': num += 1 x, y = i, j while map[x][y] != '#':#从放置炸弹的这一点往下数,计算在遇到墙之前可以消灭的敌人个数 x += 1 if map[x][y] == 'G': num += 1 x, y = i, j while map[x][y] != '#':#从放置炸弹的这一点往左数,计算在遇到墙之前可以消灭的敌人个数 y -= 1 if map[x][y] == 'G': num += 1 x, y = i, j while map[x][y] != '#': # 从放置炸弹的这一点往右数,计算在遇到墙之前可以消灭的敌人个数 y += 1 if map[x][y] == 'G': num += 1 else: continue if num > res: res = num res_i = i res_j = j print(res, res_i, res_j) if __name__ == '__main__': global n, map map = [] n = int(input('输入地图行数:')) for i in range(n): list_a = list(input('输入地图中一行:')) map.append(list_a) zhadanren()