请给我一个扫雷游戏的python代码
时间: 2023-12-05 21:04:54 浏览: 26
以下是一个简单的扫雷游戏的Python代码,仅供参考:
```python
import random
class Minesweeper:
def __init__(self, size, mines):
self.size = size
self.mines = mines
self.board = [[0 for _ in range(size)] for _ in range(size)]
self.revealed = [[False for _ in range(size)] for _ in range(size)]
self.game_over = False
self.generate_board()
def generate_board(self):
count = 0
while count < self.mines:
x, y = random.randint(0, self.size-1), random.randint(0, self.size-1)
if self.board[x][y] != -1:
self.board[x][y] = -1
count += 1
for i in range(self.size):
for j in range(self.size):
if self.board[i][j] != -1:
self.board[i][j] = self.count_adjacent_mines(i, j)
def count_adjacent_mines(self, x, y):
count = 0
for i in range(x-1, x+2):
for j in range(y-1, y+2):
if i >= 0 and i < self.size and j >= 0 and j < self.size and self.board[i][j] == -1:
count += 1
return count
def reveal(self, x, y):
if self.revealed[x][y]:
return
self.revealed[x][y] = True
if self.board[x][y] == -1:
self.game_over = True
return
if self.board[x][y] == 0:
for i in range(x-1, x+2):
for j in range(y-1, y+2):
if i >= 0 and i < self.size and j >= 0 and j < self.size:
self.reveal(i, j)
def display(self):
for i in range(self.size):
for j in range(self.size):
if self.revealed[i][j]:
print(self.board[i][j], end=' ')
else:
print('_', end=' ')
print()
def play(self):
while not self.game_over:
self.display()
x = int(input('Enter row: '))
y = int(input('Enter column: '))
self.reveal(x, y)
print('Game over')
size = int(input('Enter board size: '))
mines = int(input('Enter number of mines: '))
game = Minesweeper(size, mines)
game.play()
```
这个代码生成一个 `Minesweeper` 类,包括了游戏逻辑和玩家交互。你可以根据自己的需求进行修改和扩展。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)