用二维数组实现随机布雷
时间: 2024-01-06 21:16:36 浏览: 40
好的,下面是一个用二维数组实现随机布雷的示例代码:
```python
import random
# 定义行列数和雷数
rows = 10
cols = 10
num_mines = 10
# 创建空的二维数组
board = [[0 for _ in range(cols)] for _ in range(rows)]
# 随机布雷
count = 0
while count < num_mines:
row = random.randint(0, rows-1)
col = random.randint(0, cols-1)
if board[row][col] != -1:
board[row][col] = -1
count += 1
# 计算每个格子周围的雷数
for r in range(rows):
for c in range(cols):
if board[r][c] != -1:
count = 0
for i in range(max(0, r-1), min(rows, r+2)):
for j in range(max(0, c-1), min(cols, c+2)):
if board[i][j] == -1:
count += 1
board[r][c] = count
# 输出结果
for row in board:
print(row)
```
这段代码中,首先定义了行列数和雷数,然后创建了一个空的二维数组。接着使用一个 while 循环来随机布雷,直到布置了指定数量的地雷为止。每次随机出一个位置,如果该位置没有地雷,则在该位置放置一颗地雷,并将计数器加一。接着再遍历整个数组,对于每个不是地雷的格子,计算周围八个格子中地雷的数量,并将该数量存入该格子中。最后输出整个数组,就得到了一个随机布雷的结果。