编写一个推箱子游戏的程序
时间: 2023-05-24 14:01:29 浏览: 84
6编写推箱子游戏程序-1
非常感谢您的提问,以下是一个简单的推箱子游戏程序(使用Python语言):
```python
# 推箱子游戏程序
# 定义游戏地图
MAP = [
["#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#"],
["#", " ", " ", " ", " ", " ", "#", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", "#"],
["#", " ", "#", "#", "#", " ", "#", " ", "#", "#", "#", "#", "#", "#", " ", " ", " ", "#"],
["#", " ", "#", "G", "#", " ", "#", " ", " ", " ", " ", " ", " ", "#", " ", " ", " ", "#"],
["#", " ", "#", " ", "#", " ", "#", "#", "#", "#", "#", "#", " ", "#", "#", "#", " ", "#"],
["#", " ", "#", " ", " ", " ", " ", " ", " ", " ", " ", "#", " ", " ", "#", "#", " ", "#"],
["#", " ", "#", "#", "#", "#", "#", "#", "#", "#", " ", "#", "B", " ", "#", "#", " ", "#"],
["#", " ", " ", " ", " ", " ", " ", " ", " ", "#", " ", "#", " ", " ", " ", " ", " ", "#"],
["#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#"],
]
# 定义人和箱子的位置
MAN_POS = (1, 1)
BOX_POS = [(5, 12), (6, 11), (6, 12)]
# 游戏主循环
while True:
# 显示游戏地图
for row in MAP:
print("".join(row))
# 检查是否完成游戏
if all(MAP[box_y][box_x] == "G" for box_x, box_y in BOX_POS):
print("你赢了!")
break
# 获取用户输入
direction = input("请输入移动方向(上:w,下:s,左:a,右:d):").strip().lower()
# 移动人
x, y = MAN_POS
if direction == "w":
y -= 1
elif direction == "s":
y += 1
elif direction == "a":
x -= 1
elif direction == "d":
x += 1
else:
continue
# 检查人的移动是否合法
if MAP[y][x] == " ":
MAP[MAN_POS[1]][MAN_POS[0]] = " "
MAP[y][x] = "M"
MAN_POS = (x, y)
elif MAP[y][x] == "B":
# 移动箱子
box_x, box_y = x, y
if direction == "w":
box_y -= 1
elif direction == "s":
box_y += 1
elif direction == "a":
box_x -= 1
elif direction == "d":
box_x += 1
if MAP[box_y][box_x] == " ":
MAP[MAN_POS[1]][MAN_POS[0]] = " "
MAP[y][x] = "M"
MAP[box_y][box_x] = "B"
MAN_POS = (x, y)
BOX_POS.remove((x, y))
BOX_POS.append((box_x, box_y))
# 游戏结束的条件
if MAP[MAN_POS[1]][MAN_POS[0]] == "#":
print("你输了!")
break
```
希望对您有所帮助!
阅读全文