Python推箱子小游戏
时间: 2023-07-02 17:20:32 浏览: 117
基于 Python 制作推箱子小游戏【100011857】
好的,这里给你一个简单的推箱子小游戏的 Python 代码,有兴趣的话可以自己扩展功能:
```python
# 定义地图和箱子位置
MAP = [
"##########",
"# #",
"# OO #",
"# O #",
"# O #",
"# #",
"# #",
"# ###",
"# # #",
"####### #",
]
BOXES = [(3, 2), (4, 3), (4, 4), (4, 5)]
# 定义人物和目标位置
PLAYER = (2, 2)
GOAL = (2, 8)
# 游戏主循环
while True:
# 打印地图
for i in range(len(MAP)):
for j in range(len(MAP[i])):
if (i, j) in BOXES:
print("O", end="")
elif (i, j) == PLAYER:
print("P", end="")
elif (i, j) == GOAL:
print("G", end="")
else:
print(MAP[i][j], end="")
print()
# 判断是否获胜
if all(box == GOAL for box in BOXES):
print("You win!")
break
# 获取用户输入
move = input("Move (u/d/l/r): ")
# 移动人物
if move == "u":
newpos = (PLAYER[0] - 1, PLAYER[1])
elif move == "d":
newpos = (PLAYER[0] + 1, PLAYER[1])
elif move == "l":
newpos = (PLAYER[0], PLAYER[1] - 1)
elif move == "r":
newpos = (PLAYER[0], PLAYER[1] + 1)
else:
continue
if MAP[newpos[0]][newpos[1]] == " ":
PLAYER = newpos
# 推动箱子
if newpos in BOXES:
newboxpos = (newpos[0] + (newpos[0] - PLAYER[0]), newpos[1] + (newpos[1] - PLAYER[1]))
if MAP[newboxpos[0]][newboxpos[1]] == " " and newboxpos not in BOXES:
BOXES.remove(newpos)
BOXES.append(newboxpos)
# 清屏
print("\n" * 50)
```
在这个代码中,我们通过定义地图和箱子位置、人物和目标位置来实现游戏的基本功能。在游戏主循环中,我们首先打印出地图和游戏元素的位置,然后判断是否已经获胜,如果是则退出游戏。接下来获取用户输入并移动人物,如果移动的位置是空地,则直接移动人物;如果移动的位置是箱子,则判断能否推动箱子,并更新箱子位置和人物位置。最后清屏并进入下一轮循环。
阅读全文