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