做个泡泡龙python程序
时间: 2024-01-05 16:16:20 浏览: 26
以下是一个简单的泡泡龙游戏的 Python 程序:
```python
import random
# 初始化游戏区域
board = []
for i in range(10):
row = []
for j in range(10):
row.append(random.randint(1, 5))
board.append(row)
# 打印游戏区域
def print_board():
for row in board:
print(row)
# 判断是否有相邻的同色泡泡
def has_neighbor(x, y, color):
if x > 0 and board[x-1][y] == color:
return True
if x < len(board)-1 and board[x+1][y] == color:
return True
if y > 0 and board[x][y-1] == color:
return True
if y < len(board[0])-1 and board[x][y+1] == color:
return True
return False
# 移除相邻的同色泡泡
def remove_neighbors(x, y, color):
if board[x][y] == color:
board[x][y] = 0
if x > 0 and board[x-1][y] == color:
remove_neighbors(x-1, y, color)
if x < len(board)-1 and board[x+1][y] == color:
remove_neighbors(x+1, y, color)
if y > 0 and board[x][y-1] == color:
remove_neighbors(x, y-1, color)
if y < len(board[0])-1 and board[x][y+1] == color:
remove_neighbors(x, y+1, color)
# 游戏循环
while True:
print_board()
# 获取用户输入
x = int(input("请输入要消除的泡泡的横坐标:"))
y = int(input("请输入要消除的泡泡的纵坐标:"))
color = board[x][y]
# 判断是否有相邻的同色泡泡
if has_neighbor(x, y, color):
remove_neighbors(x, y, color)
else:
print("此处没有相邻的同色泡泡!")
# 判断游戏是否结束
if all(all(row) == 0 for row in board):
print("游戏结束!")
break
```
该程序通过随机生成 10 行 10 列的数字矩阵作为游戏区域,其中每个数字代表一个不同颜色的泡泡。在游戏循环中,程序会先打印出游戏区域,然后让用户输入要消除的泡泡的坐标。如果该坐标处有相邻的同色泡泡,则会移除这些泡泡并更新游戏区域。如果没有相邻的同色泡泡,则提示用户此处没有相邻的同色泡泡。游戏结束的条件是游戏区域中没有泡泡了。