Python扫雷游戏程序代码

import random

# 创建扫雷游戏的棋盘
def create_board(rows, cols, num_mines):
    board = [['0' for _ in range(cols)] for _ in range(rows)]
    mines = random.sample(range(rows * cols), num_mines)
    for mine in mines:
        row = mine // cols
        col = mine % cols
        board[row][col] = 'X'
    return board

# 统计周围的地雷数量
def count_mines(board, row, col):
    count = 0
    for i in range(row - 1, row + 2):
        for j in range(col - 1, col + 2):
            if i >= 0 and i < len(board) and j >= 0 and j < len(board[0]):
                if board[i][j] == 'X':
                    count += 1
    return count

# 展开扫雷棋盘,显示地雷数量
def expand_board(board):
    for i in range(len(board)):
        for j in range(len(board[0])):
            if board[i][j] != 'X':
                count = count_mines(board, i, j)
                board[i][j] = str(count)
    return board

# 显示扫雷棋盘
def display_board(board):
    for row in board:
        print(' '.join(row))

# 打开指定位置的方块
def open_square(board, row, col, visited):
    if row < 0 or row >= len(board) or col < 0 or col >= len(board[0]):
        return
    if (row, col) in visited:
        return
    visited.add((row, col))
    if board[row][col] == '0':
        board[row][col] = '#'
        for i in range(row - 1, row + 2):
            for j in range(col - 1, col + 2):
                open_square(board, i, j, visited)

# 主函数
def main():
    rows = int(input("请输入行数:"))
    cols = int(input("请输入列数:"))
    num_mines = int(input("请输入地雷数量:"))

    board = create_board(rows, cols, num_mines)
    display_board(board)

    while True:
        row = int(input("请输入要打开的行号:"))
        col = int(input("请输入要打开的列号:"))
        if board[row][col] == 'X':
            print("踩到地雷,游戏结束!")
            break
        elif board[row][col] == '0':
            visited = set()
            open_square(board, row, col, visited)
        display_board(board)

main()
 

这个代码实现了一个简单的扫雷游戏。首先,它通过create_board函数创建了一个指定大小和地雷数量的扫雷棋盘,然后使用expand_board函数计算每个方块周围的地雷数量,接着使用display_board函数显示扫雷棋盘。

在主函数中,它要求用户输入要打开的方块的行号和列号,然后根据用户输入的方块内容进行相应的操作,如果踩到地雷则游戏结束,如果打开的方块为空则展开周围的方块。最后,使用display_board函数显示更新后的扫雷棋盘。

请注意:这只是一个简单的示例,还有一些扩展和功能可以添加到游戏中,比如计时器、计分板、标记地雷等等。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值