Python生成扫雷地图的方法是怎样的
发表于:2024-11-18 作者:千家信息网编辑
千家信息网最后更新 2024年11月18日,Python生成扫雷地图的方法是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。需求说明输入:行数m、列数n、地雷数
千家信息网最后更新 2024年11月18日Python生成扫雷地图的方法是怎样的
Python生成扫雷地图的方法是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
需求说明
输入:行数m、列数n、地雷数k
输出:随机扫雷地图
第一步,生成地图和随机地雷
第二步,没有地雷的格子填充数字,该数字表示周边地雷总数
思路
代码实现
下面2种实现,分别是不用numpy和用numpy,思路是一样的
from random import shuffle# 行数、列数、地雷数m, n, k = 5, 10, 15# 地雷符号,此处用9表示landmine = 9# 初始化序列,总长为m*n,k前是雷,k后是0ls = [landmine for _ in range(k)] + [0 for _ in range(m * n - k)]# 打乱序列顺序,达到随机的效果shuffle(ls)# m*n的序列=>m行n列的矩阵matrix = [[ls[i + j * n] for i in range(n)] for j in range(m)]# 对没有雷的格子填充数字,该数字表示周围地雷总数,注意边缘格子,不要越界for i in range(m): for j in range(n): if matrix[i][j] == 0: matrix[i][j] = sum( 1 for a in range(max(i - 1, 0), min(i + 2, m)) for b in range(max(j - 1, 0), min(j + 2, n)) if matrix[a][b] == landmine)# 最终结果展示[print(v) for v in matrix]
import numpy as np# 行数、列数、地雷数m, n, k = 5, 10, 15# 地雷符号,此处用9表示landmine = 9# 初始化总长为m*n的序列,TopK是雷,k后是0ls = [landmine for _ in range(k)] + [0 for _ in range(m * n - k)]print(ls)# 打乱序列顺序,达到随机的效果np.random.shuffle(ls)print(ls)# m*n的序列=>m行n列的矩阵matrix = np.reshape(ls, (m, n))print(matrix)# 对没有雷的格子填充数字,该数字表示周围地雷总数,注意边缘格子,不要越界for i in range(m): for j in range(n): if matrix[i][j] == 0: matrix[i][j] = sum( 1 for a in range(max(i - 1, 0), min(i + 2, m)) for b in range(max(j - 1, 0), min(j + 2, n)) if matrix[a][b] == landmine)# 最终结果展示print(matrix)
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。
地雷
序列
数字
格子
地图
总数
扫雷
生成
思路
总长
效果
矩阵
符号
结果
边缘
需求
顺序
帮助
方法
清楚
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
东海进口网络技术排名靠前
软件开发那个培训机构好
qq机器人需要服务器吗
杭州湾新区软件开发好吗
软件开发设计审核表
全境封锁二怎么换服务器
如何修改软件开发商名称
佛山无线软件开发价格走势
数字软件开发多少分可以录取
网络安全学院介绍
疫情管控数据库
源文鉴查重数据库范围
网络安全发展的基本方向
网络数据库大学课程
区块链网络安全概念股
想学习数据库
奇安网络安全模拟
软件开发总监职业规划书
网络安全法 犯罪
你的手机已连接到服务器上
淘宝做出一个数据库
怎么查看服务器是不是linux
全境封锁二怎么换服务器
软件开发it
重庆大学 网络安全
网络安全与管理的心得
网络安全防线重要性
网络安全法 首例
两台服务器共享一个数据库
软件开发培训学校住建