用Python编写简单的命令行扫雷游戏
当然!下面是一个简单的命令行扫雷游戏的示例代码:
import random
# 创建扫雷游戏棋盘
def create_board(rows, cols, num_mines):
board = [[0] * 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] = '*'
for r in range(row - 1, row + 2):
for c in range(col - 1, col + 2):
if 0 <= r < rows and 0 <= c < cols and board[r][c] != '*':
board[r][c] += 1
return board
# 显示棋盘
def display_board(board):
rows = len(board)
cols = len(board[0])
for r in range(rows):
for c in range(cols):
print(board[r][c], end=' ')
print()
# 主游戏循环
def play_game(rows, cols, num_mines):
board = create_board(rows, cols, num_mines)
is_game_over = False
while not is_game_over:
display_board(board)
row = int(input('输入行号 (0 - {}): '.format(rows - 1)))
col = int(input('输入列号 (0 - {}): '.format(cols - 1)))
if board[row][col] == '*':
print('你踩到地雷了!游戏结束!')
is_game_over = True
else:
board[row][col] = ' '
if board[row][col] == 0:
reveal_zeros(board, row, col)
if check_win(board):
print('恭喜你,扫雷成功!')
is_game_over = True
# 揭示周围的空格
def reveal_zeros(board, row, col):
rows = len(board)
cols = len(board[0])
for r in range(row - 1, row + 2):
for c in range(col - 1, col + 2):
if 0 <= r < rows and 0 <= c < cols and board[r][c] == 0:
board[r][c] = ' '
reveal_zeros(board, r, c)
# 检查是否胜利
def check_win(board):
rows = len(board)
cols = len(board[0])
for r in range(rows):
for c in range(cols):
if board[r][c] != ' ' and board[r][c] != '*':
return False
return True
# 运行游戏
play_game(5, 5, 5)
这只是一个简单的示例,你可以根据自己的需要进行定制和扩展。记得在运行代码之前,确保你的Python环境已经安装好。
原文地址: https://www.cveoy.top/t/topic/plI 著作权归作者所有。请勿转载和采集!