用二维数组实现随机布雷
时间: 2024-01-06 22:16:36 浏览: 81
实现随机布雷的二维数组可以使用以下步骤:
1. 创建一个二维数组,用来表示雷区。数组中的每一个元素都是一个对象,该对象包括两个属性:是否是雷和周围的雷数。
2. 随机生成一些位置,将这些位置上的元素设置为雷。
3. 遍历数组,对于每一个不是雷的元素,计算其周围雷的数量。可以用一个嵌套的循环来实现。
下面是一个示例代码:
```python
import random
# 定义雷区的大小和雷的数量
ROWS = 10
COLS = 10
BOMBS = 10
# 创建一个二维数组来表示雷区
board = [[{'bomb': False, 'count': 0} for j in range(COLS)] for i in range(ROWS)]
# 随机选择一些位置上设置雷
bombs_placed = 0
while bombs_placed < BOMBS:
row = random.randint(0, ROWS-1)
col = random.randint(0, COLS-1)
if not board[row][col]['bomb']:
board[row][col]['bomb'] = True
bombs_placed += 1
# 计算每个不是雷的元素周围雷的数量
for row in range(ROWS):
for col in range(COLS):
if not board[row][col]['bomb']:
count = 0
for i in range(row-1, row+2):
for j in range(col-1, col+2):
if i >= 0 and i < ROWS and j >= 0 and j < COLS and board[i][j]['bomb']:
count += 1
board[row][col]['count'] = count
# 输出雷区
for row in range(ROWS):
for col in range(COLS):
if board[row][col]['bomb']:
print("*", end=' ')
else:
print(board[row][col]['count'], end=' ')
print()
```
这个代码可以随机生成一个大小为10x10,有10个雷的雷区,并输出每个位置周围雷的数量。你可以根据需要修改ROWS、COLS和BOMBS的值来得到不同大小和雷数的雷区。
阅读全文