利用python 制作一个扫雷游戏
时间: 2024-05-28 16:03:57 浏览: 15
好的,下面是一个简单的扫雷游戏的Python代码示例:
```python
import random
# 游戏界面大小
ROWS = 8
COLS = 8
# 雷的数量
MINES = 10
# 空白格子的标记
BLANK = 0
# 地雷的标记
MINE = 9
# 游戏状态的标记
UNREVEALED = -1
FLAGGED = -2
# 初始化游戏界面
board = [[BLANK] * COLS for i in range(ROWS)]
# 随机放置地雷
for i in range(MINES):
row = random.randrange(ROWS)
col = random.randrange(COLS)
while board[row][col] == MINE:
row = random.randrange(ROWS)
col = random.randrange(COLS)
board[row][col] = MINE
# 计算每个格子周围的地雷数量
for row in range(ROWS):
for col in range(COLS):
if board[row][col] == BLANK:
count = 0
for r in range(max(0, row - 1), min(ROWS, row + 2)):
for c in range(max(0, col - 1), min(COLS, col + 2)):
if board[r][c] == MINE:
count += 1
board[row][col] = count
# 游戏主循环
game_over = False
while not game_over:
# 打印游戏界面
for row in range(ROWS):
for col in range(COLS):
if board[row][col] == UNREVEALED:
print(".", end="")
elif board[row][col] == FLAGGED:
print("F", end="")
elif board[row][col] == MINE:
print("*", end="")
else:
print(board[row][col], end="")
print()
# 获取玩家输入
row = int(input("请输入行号(0-7):"))
col = int(input("请输入列号(0-7):"))
action = input("请输入操作(R-揭开格子,F-标记雷):")
# 处理玩家输入
if action == "R":
if board[row][col] == MINE:
print("你输了!")
game_over = True
else:
board[row][col] = UNREVEALED
elif action == "F":
if board[row][col] == FLAGGED:
board[row][col] = UNREVEALED
elif board[row][col] == UNREVEALED:
board[row][col] = FLAGGED
# 判断游戏是否结束
unrevealed_count = 0
for row in range(ROWS):
for col in range(COLS):
if board[row][col] == UNREVEALED:
unrevealed_count += 1
if unrevealed_count == MINES:
print("你赢了!")
game_over = True
```
这个代码示例实现了一个简单的扫雷游戏,玩家可以在命令行界面中进行游戏。在游戏开始时,随机放置指定数量的地雷,并计算每个格子周围的地雷数量。玩家可以通过输入行号、列号和操作来进行游戏,揭开格子或标记雷。游戏结束的条件是所有非雷格子都被揭开或玩家踩到了地雷。
相关推荐
![py](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)