python消消乐代码
时间: 2023-09-21 13:03:13 浏览: 71
好的,以下是一个简单的Python消消乐代码示例:
```
import random
# 定义颜色常量
COLOR_RED = '红'
COLOR_YELLOW = '黄'
COLOR_GREEN = '绿'
COLOR_BLUE = '蓝'
COLOR_PURPLE = '紫'
# 定义颜色列表
color_list = [COLOR_RED, COLOR_YELLOW, COLOR_GREEN, COLOR_BLUE, COLOR_PURPLE]
# 定义行列数
ROW_NUM = 6
COL_NUM = 6
# 初始化游戏面板
board = [[None for i in range(COL_NUM)] for j in range(ROW_NUM)]
for i in range(ROW_NUM):
for j in range(COL_NUM):
board[i][j] = random.choice(color_list)
def print_board():
for i in range(ROW_NUM):
for j in range(COL_NUM):
print(board[i][j], end=' ')
print()
def eliminate():
eliminated = False
for i in range(ROW_NUM):
for j in range(COL_NUM):
if board[i][j] is None:
continue
count = 0
color = board[i][j]
# 消除同色方块
if i > 0 and board[i-1][j] == color:
count += 1
if i < ROW_NUM-1 and board[i+1][j] == color:
count += 1
if j > 0 and board[i][j-1] == color:
count += 1
if j < COL_NUM-1 and board[i][j+1] == color:
count += 1
if count >= 2:
board[i][j] = None
eliminated = True
return eliminated
def drop():
for j in range(COL_NUM):
# 从底往上扫描
i = ROW_NUM - 1
while i >= 0 and board[i][j] is not None:
i -= 1
if i < 0:
continue
k = i - 1
while k >= 0 and board[k][j] is None:
k -= 1
while k >= 0:
board[i][j] = board[k][j]
board[k][j] = None
i -= 1
k -= 1
print_board()
elimination_count = 0
while True:
if not eliminate():
break
drop()
elimination_count += 1
print('总消除次数:', elimination_count)
print_board()
```
这段代码实现了一个简单的消消乐游戏。游戏面板为一个6x6的方格,每个方格内填充随机颜色的方块。玩家需要消除3个或以上同色的相连方块。每次消除完成后,上方的方块会下落补位,直至不能再消除为止。以上代码实现了自动化消除的逻辑,并输出结果。