用python编写一个消消乐游戏
下面是一个简单的消消乐游戏的Python代码示例:
import random
# 游戏面板大小
ROWS = 8
COLS = 8
# 定义颜色常量
COLORS = {
'R': '\033[31m', # 红色
'G': '\033[32m', # 绿色
'B': '\033[34m', # 蓝色
'Y': '\033[33m', # 黄色
'M': '\033[35m', # 紫色
'C': '\033[36m', # 青色
'W': '\033[37m', # 白色
}
# 初始化游戏面板
board = [[random.choice(list(COLORS.keys())) for _ in range(COLS)] for _ in range(ROWS)]
def print_board():
for row in board:
for col in row:
print(COLORS[col] + col + ' ', end='')
print('\n')
def eliminate(x, y, color):
if x < 0 or x >= ROWS or y < 0 or y >= COLS or board[x][y] != color:
return
board[x][y] = ' '
eliminate(x - 1, y, color)
eliminate(x + 1, y, color)
eliminate(x, y - 1, color)
eliminate(x, y + 1, color)
def drop():
for col in range(COLS):
empty_rows = [row for row in range(ROWS) if board[row][col] == ' ']
for row in range(ROWS - 1, -1, -1):
if row < len(empty_rows):
board[row][col] = random.choice(list(COLORS.keys()))
else:
board[row][col] = ' '
def play():
while True:
print_board()
x = int(input('请输入要消除的方块的横坐标(0-7):'))
y = int(input('请输入要消除的方块的纵坐标(0-7):'))
if x < 0 or x >= ROWS or y < 0 or y >= COLS:
print('输入无效,请重新输入!')
continue
color = board[x][y]
eliminate(x, y, color)
drop()
if all(board[row][col] == ' ' for row in range(ROWS) for col in range(COLS)):
print('恭喜!你已经消除所有方块,游戏结束!')
break
if __name__ == '__main__':
play()
这个消消乐游戏使用了递归算法来实现方块的消除,每次消除相同颜色的方块后,会将上方的方块下落。
运行这段代码后,你可以通过输入方块的坐标来进行消除。当所有方块都被消除后,游戏结束
原文地址: https://www.cveoy.top/t/topic/hTBL 著作权归作者所有。请勿转载和采集!