美文网首页
Python实现扫雷(无UI)

Python实现扫雷(无UI)

作者: 李白开水 | 来源:发表于2020-03-07 16:21 被阅读0次

程序接收三个参数,M,N和p,然后生成一个M * N的矩阵,然后每个矩阵有10%的概率的部分是地雷。生成矩阵后,再计算出每一个cell周围地雷的数量。

运行结果:


image.png

边界问题:
矩阵是M * N的,如果生成一个M * N的矩阵,需要判断很多次边界,所以直接生成一个(M+2)* (N+2)的矩阵

完整代码:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
import random


def minesweeper(m, n):
    board = [[None] * (n + 2) for i in range(m + 2)]   #生成一个大小为(M+2)*(N+2)的二维数组
    for i in range(1, m + 1):   #随机生成地雷的数组下标
        r1 = random.randint(1, n )
        r2 = random.randint(1, n)
        board[r1][r2] = "*"  


    for i in range(1,m+1):    #遍历[i][j]周围八个位置,寻找有没有地雷
        for j in range(1,n+1):
            num = 0
            for ii in range(i-1,i+2):
                for jj in range(j-1,j+2):
                    if board[ii][jj] == "*":
                        num +=1
            if board[i][j] != "*":
                board[i][j] =num


    for i in range(m+2):
        print board[i]

相关文章

网友评论

      本文标题:Python实现扫雷(无UI)

      本文链接:https://www.haomeiwen.com/subject/hkwqdhtx.html