python扫雷 高级算法_Python:扫雷的洪水填充算法

我认为你应该修改你的递归算法:仅在有盖瓷砖上操作

查找相邻矿井数

如果有,显示一个带编号的图块并停止递归

如果没有,则显示一个空白磁贴并重复

你可能还应该考虑如何储存你的董事会。目前,您使用线路板的表示来存储数据。最好创建一个tile类,并有一个相应地打印电路板的函数。在

至于相邻地雷的数量:地雷永远不会改变,所以你不必用一个函数一遍又一遍地确定每一块瓷砖的数量。在布置好地雷并存储信息后,只需确定一次就足够了。(如果您使用一个类来处理平铺,我会将信息存储在那里。)

总之,下面是一个使用字符串标识加上一组元组位置来表示地雷的实现:Covered = ' -'

Flagged = '-P-'

board = []

for x in range(12):

board += [[Covered] * 12]

mines = set([

(1, 12), (8, 2), (5, 5), (9, 4), (11, 11), (0, 9),

(5, 5), (6, 7), (9, 9), (9, 10), (11, 5)

])

def count_mines(a, b):

c = 0

if (a - 1, b - 1) in mines: c += 1

if (a + 0, b - 1) in mines: c += 1

if (a + 1, b - 1) in mines: c += 1

if (a - 1, b + 0) in mines: c

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值