Python 实现扫雷游戏代码详解
以下是一个简单的扫雷游戏的实现代码示例:
import random
# 游戏参数设置
ROWS = 10 # 行数
COLS = 10 # 列数
MINES = 10 # 地雷数
# 初始化游戏面板
board = [[0 for _ in range(COLS)] for _ in range(ROWS)]
for _ in range(MINES):
row, col = random.randint(0, ROWS-1), random.randint(0, COLS-1)
while board[row][col] == -1:
row, col = random.randint(0, ROWS-1), random.randint(0, COLS-1)
board[row][col] = -1
# 计算周围地雷数量
for row in range(ROWS):
for col in range(COLS):
if board[row][col] == -1:
continue
count = 0
for i in range(-1, 2):
for j in range(-1, 2):
if i == j == 0:
continue
if 0 <= row+i < ROWS and 0 <= col+j < COLS and board[row+i][col+j] == -1:
count += 1
board[row][col] = count
# 游戏主循环
while True:
# 打印当前游戏面板
for row in board:
print(' '.join(str(cell) for cell in row))
print()
# 玩家输入行和列
row = int(input('输入行:'))
col = int(input('输入列:'))
if board[row][col] == -1:
print('踩到地雷,游戏结束!')
break
else:
board[row][col] = -2
if all(all(cell == -2 or cell == -1 for cell in row) for row in board):
print('恭喜你,扫雷成功!')
break
该代码使用二维数组表示游戏面板,其中-1表示地雷,-2表示已经翻开的格子。在游戏开始时,随机生成MINES个地雷,并计算每个格子周围的地雷数量。游戏主循环中,先打印当前游戏面板,然后玩家输入行和列,根据输入的位置更新游戏面板。如果踩到地雷或者扫描完所有非地雷格子,游戏结束。
原文地址: https://www.cveoy.top/t/topic/nDSr 著作权归作者所有。请勿转载和采集!