用python设计一个扫雷游戏的代码
时间: 2024-11-04 18:16:30 浏览: 11
在Python中设计一个简单的扫雷游戏,我们可以使用`random`库来随机生成雷区,`numpy`库来创建网格,以及一些基本的用户交互功能。这里是一个基础版的代码示例:
```python
import numpy as np
import random
# 定义雷区大小
ROW = 10
COLUMN = 10
MIN_MINE = 10
MAX_MINE = ROW * COLUMN // 4
def generate_mine_field(mines):
mine_field = np.zeros((ROW, COLUMN), dtype=int)
mine_positions = [(i, j) for i in range(ROW) for j in range(COLUMN)]
random.shuffle(mine_positions)
for _ in range(mines):
if not mine_field[mine_positions.pop()]:
mine_field[mine_positions.pop()] = -1
return mine_field
def print_board(board):
for row in board:
print(' '.join(str(num) if num != -1 else 'M' for num in row))
def reveal_square(board, x, y):
if board[x][y] == -1:
return False
board[x][y] = '*' if board[x][y] else str(board[x][y])
return True
def main():
mines = random.randint(MIN_MINE, MAX_MINE)
mine_field = generate_mine_field(mines)
while True:
print_board(mine_field)
try:
x = int(input("Enter the column (0-{}): ".format(COLUMN - 1)))
y = int(input("Enter the row (0-{}): ".format(ROW - 1)))
if reveal_square(mine_field, x, y):
print("Revealed: {}".format(mine_field[x][y]))
else:
print("Boom! You hit a mine.")
except ValueError:
print("Invalid input.")
if __name__ == "__main__":
main()
```
在这个代码中,我们首先定义了雷区的尺寸、最小和最大地雷数,然后生成一个随机分布的地雷区域。`print_board`函数用于显示当前的游戏状态,而`reveal_square`函数则是玩家点击格子并尝试揭开的动作。游戏主循环接收用户的输入,揭示对应的位置,并处理爆炸的情况。
阅读全文