用python写一个连连看小游戏
时间: 2023-12-07 14:56:14 浏览: 139
好的,下面是一个简单的连连看小游戏的Python代码示例:
```
import random
# 初始化游戏板
board = [[random.randint(1, 4) for i in range(6)] for j in range(8)]
# 定义连通函数,判断两个方块是否可以连通
def connected(x1, y1, x2, y2):
if board[x1][y1] != board[x2][y2]:
return False
if x1 == x2:
for i in range(min(y1, y2) + 1, max(y1, y2)):
if board[x1][i] != 0:
return False
return True
elif y1 == y2:
for i in range(min(x1, x2) + 1, max(x1, x2)):
if board[i][y1] != 0:
return False
return True
else:
if board[x1][y2] == 0 and connected(x1, y1, x1, y2) and connected(x1, y2, x2, y2):
return True
if board[x2][y1] == 0 and connected(x1, y1, x2, y1) and connected(x2, y1, x2, y2):
return True
return False
# 定义移除函数,将两个连通的方块从游戏板中移除
def remove(x1, y1, x2, y2):
board[x1][y1] = 0
board[x2][y2] = 0
# 开始游戏
while True:
# 输出游戏板
for row in board:
print(row)
# 获取用户输入,选择两个要消除的方块
x1, y1, x2, y2 = map(int, input("Please choose two boxes to connect (format: x1 y1 x2 y2): ").split())
if connected(x1, y1, x2, y2):
print("Connected!")
remove(x1, y1, x2, y2)
else:
print("Not connected!")
```
该代码使用二维列表来表示游戏板,其中每个元素表示一个方块,其值为1~4的随机数,表示方块的类型。`connected`函数判断两个方块是否可以连通,采用递归算法,能够处理所有可能的连通情况。`remove`函数将两个连通的方块从游戏板中移除。游戏每次循环,输出游戏板并等待用户输入,不断进行游戏,直到所有方块都被消除。
注意:上述代码仅为示例,实际应用还需要完善多种判断和处理,例如随机生成游戏板、计分、提示等。
阅读全文