写一段扫雷程序
以下是一个简单的扫雷程序的示例代码:
import random
def create_board(rows, cols, num_mines):
board = [[' ' 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] = 'M'
return board
def print_board(board):
for row in board:
print(' '.join(row))
def count_adjacent_mines(board, row, col):
count = 0
for i in range(-1, 2):
for j in range(-1, 2):
if i == 0 and j == 0:
continue
if 0 <= row+i < len(board) and 0 <= col+j < len(board[0]):
if board[row+i][col+j] == 'M':
count += 1
return count
def uncover_cell(board, uncovered, row, col):
if uncovered[row][col]:
return
uncovered[row][col] = True
if board[row][col] == 'M':
print('Game Over!')
return
elif board[row][col] == ' ':
for i in range(-1, 2):
for j in range(-1, 2):
if i == 0 and j == 0:
continue
if 0 <= row+i < len(board) and 0 <= col+j < len(board[0]):
uncover_cell(board, uncovered, row+i, col+j)
def play(rows, cols, num_mines):
board = create_board(rows, cols, num_mines)
uncovered = [[False for _ in range(cols)] for _ in range(rows)]
while True:
print_board(uncovered)
row = int(input('Enter row: '))
col = int(input('Enter column: '))
uncover_cell(board, uncovered, row, col)
play(10, 10, 10)
这个程序使用二维列表表示扫雷棋盘,'M'表示地雷,' '表示未被揭开的方块。玩家可以输入要揭开的方块的行号和列号,程序会根据输入揭开方块,并根据周围的地雷数显示相应的数字。如果揭开的方块是地雷,则游戏结束
原文地址: http://www.cveoy.top/t/topic/hVNi 著作权归作者所有。请勿转载和采集!