用python做消消乐
时间: 2024-02-28 07:50:22 浏览: 130
消消乐是一种经典的益智游戏,玩家需要通过消除相同颜色的方块来获得分数。下面是一个用Python实现消消乐游戏的简单示例:
```python
import random
# 游戏区域大小
ROWS = 8
COLS = 8
# 方块颜色
COLORS = ['R', 'G', 'B', 'Y']
# 创建游戏区域
board = [[random.choice(COLORS) for _ in range(COLS)] for _ in range(ROWS)]
# 打印游戏区域
def print_board():
for row in board:
print(' '.join(row))
print()
# 消除相同颜色的方块
def eliminate(row, col, color):
if row < 0 or row >= ROWS or col < 0 or col >= COLS or board[row][col] != color:
return 0
count = 1
board[row][col] = ''
count += eliminate(row-1, col, color)
count += eliminate(row+1, col, color)
count += eliminate(row, col-1, color)
count += eliminate(row, col+1, color)
return count
# 消除所有相同颜色的方块
def eliminate_all():
total_count = 0
for row in range(ROWS):
for col in range(COLS):
if board[row][col] != '':
count = eliminate(row, col, board[row][col])
if count > 1:
total_count += count
return total_count
# 主循环
while True:
print_board()
score = eliminate_all()
print(f"Score: {score}")
if score == 0:
print("Game Over")
break
# 重新填充空缺的方块
for col in range(COLS):
empty_count = sum(1 for row in range(ROWS) if board[row][col] == '')
if empty_count > 0:
for row in range(ROWS-1, -1, -1):
if board[row][col] == '':
board[row][col] = random.choice(COLORS)
empty_count -= 1
if empty_count == 0:
break
```
这个示例中,我们使用二维列表来表示游戏区域,每个元素代表一个方块的颜色。通过递归函数`eliminate`来消除相同颜色的方块,并计算消除的总数。然后,我们在主循环中不断打印游戏区域、消除方块并重新填充空缺的方块,直到没有可以消除的方块为止。
阅读全文