python课程设计大作业小游戏消消乐
时间: 2023-07-25 17:42:05 浏览: 61
消消乐是一种非常流行的小游戏,它的规则简单,但需要一定的思维和操作技巧。下面是一个用Python实现消消乐游戏的示例代码:
```python
# 消消乐游戏
# 作者:AI助手
import random
# 定义游戏区域大小
ROW = 8
COL = 8
# 定义方块的种类
BLOCK_TYPES = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L"]
# 随机生成游戏区域
game_data = [[random.choice(BLOCK_TYPES) for j in range(COL)] for i in range(ROW)]
# 打印游戏区域
for i in range(ROW):
for j in range(COL):
print(game_data[i][j], end=" ")
print()
# 定义消除函数
def eliminate():
global game_data
# 扫描每一行
for i in range(ROW):
j = 0
while j < COL - 2:
if game_data[i][j] == game_data[i][j+1] == game_data[i][j+2]:
# 消除相同方块
game_data[i][j] = game_data[i][j+1] = game_data[i][j+2] = "-"
# 将上方方块下落
k = i - 1
while k >= 0 and game_data[k][j] != "-":
game_data[k+1][j] = game_data[k][j]
game_data[k][j] = "-"
k -= 1
# 重新扫描当前行
continue
j += 1
# 扫描每一列
for j in range(COL):
i = 0
while i < ROW - 2:
if game_data[i][j] == game_data[i+1][j] == game_data[i+2][j]:
# 消除相同方块
game_data[i][j] = game_data[i+1][j] = game_data[i+2][j] = "-"
# 将上方方块下落
k = i - 1
while k >= 0 and game_data[k][j] != "-":
game_data[k+1][j] = game_data[k][j]
game_data[k][j] = "-"
k -= 1
# 重新扫描当前列
continue
i += 1
# 循环消除相同方块,直到无法消除为止
while True:
eliminate()
# 判断是否有剩余方块
if all("-" in row for row in game_data):
print("游戏结束!")
break
# 打印游戏区域
for i in range(ROW):
for j in range(COL):
print(game_data[i][j], end=" ")
print()
# 读取用户输入,交换方块位置
x1, y1, x2, y2 = map(int, input("请输入要交换的两个方块的坐标(用空格分隔):").split())
game_data[x1][y1], game_data[x2][y2] = game_data[x2][y2], game_data[x1][y1]
```
在代码中,我们首先定义了游戏区域的大小和方块的种类。然后,我们随机生成游戏区域,并打印游戏区域。
接着,我们定义了一个eliminate函数,用来消除相同方块。在函数中,我们首先扫描每一行,如果发现连续三个相同的方块,则消除这三个方块,并将上方的方块下落。然后,我们扫描每一列,如果发现连续三个相同的方块,则消除这三个方块,并将上方的方块下落。
最后,我们使用一个while循环,不断消除相同方块,直到无法消除为止。在每次消除之后,我们打印游戏区域,并读取用户输入,交换方块位置。如果游戏区域中所有方块都被消除,则游戏结束。