我想要一个扫雷游戏的代码
时间: 2023-10-30 08:04:59 浏览: 38
好的,以下是一个简单的扫雷游戏的代码示例,你可以根据自己的需要进行修改和扩展:
```python
import random
def create_board(board_size, num_bombs):
board = [[' ' for _ in range(board_size)] for _ in range(board_size)]
bombs_planted = 0
while bombs_planted < num_bombs:
row = random.randint(0, board_size - 1)
col = random.randint(0, board_size - 1)
if board[row][col] == ' ':
board[row][col] = '*'
bombs_planted += 1
return board
def get_num_adjacent_bombs(board, row, col):
num_bombs = 0
for r in range(max(0, row - 1), min(len(board), row + 2)):
for c in range(max(0, col - 1), min(len(board[0]), col + 2)):
if board[r][c] == '*':
num_bombs += 1
return num_bombs
def make_move(board, move):
row, col = move
if board[row][col] == '*':
return False
else:
num_adjacent_bombs = get_num_adjacent_bombs(board, row, col)
board[row][col] = str(num_adjacent_bombs)
return True
def print_board(board):
board_size = len(board)
print(' ', end='')
for i in range(board_size):
print(i, end=' ')
print()
print(' +' + '--' * board_size + '+')
for i in range(board_size):
print(i, end=' | ')
for j in range(board_size):
print(board[i][j], end=' ')
print('|')
print(' +' + '--' * board_size + '+')
def play_game(board_size, num_bombs):
board = create_board(board_size, num_bombs)
game_over = False
while not game_over:
print_board(board)
user_input = input("Enter row, col or 'q' to quit: ")
if user_input == 'q':
game_over = True
print('You quit the game.')
else:
row, col = [int(x) for x in user_input.split(',')]
if not make_move(board, (row, col)):
game_over = True
print_board(board)
print('Game over. You hit a bomb!')
elif all(all(cell != ' ' for cell in row) for row in board):
game_over = True
print_board(board)
print('Congratulations! You won the game.')
if __name__ == '__main__':
play_game(8, 10)
```
这个代码会生成一个 8x8 的扫雷游戏,其中包含 10 个地雷。玩家需要输入行和列的坐标来揭示一个方格,如果揭示到地雷,游戏失败;如果玩家成功地揭示所有不是地雷的方格,游戏胜利。
相关推荐
![](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)