推箱子python代码
时间: 2023-05-19 22:01:48 浏览: 66
以下是一个简单的推箱子游戏的 Python 代码:
```python
# 定义地图
map = [
"#####",
"# #",
"# #",
"#O #",
"#####"
]
# 定义人的初始位置
man_x, man_y = 3, 1
# 定义箱子的初始位置
box_x, box_y = 3, 2
# 游戏循环
while True:
# 打印地图
for row in map:
print(row)
# 判断是否胜利
if map[1][3] == "O" and map[2][3] == "O":
print("You win!")
break
# 获取用户输入
direction = input("Please input direction (w/a/s/d): ")
# 移动箱子
if direction == "w" and map[box_y - 1][box_x] == " ":
map[box_y][box_x] = " "
box_y -= 1
map[box_y][box_x] = "O"
elif direction == "a" and map[box_y][box_x - 1] == " ":
map[box_y][box_x] = " "
box_x -= 1
map[box_y][box_x] = "O"
elif direction == "s" and map[box_y + 1][box_x] == " ":
map[box_y][box_x] = " "
box_y += 1
map[box_y][box_x] = "O"
elif direction == "d" and map[box_y][box_x + 1] == " ":
map[box_y][box_x] = " "
box_x += 1
map[box_y][box_x] = "O"
# 移动人
if direction == "w" and map[man_y - 1][man_x] != "#":
man_y -= 1
elif direction == "a" and map[man_y][man_x - 1] != "#":
man_x -= 1
elif direction == "s" and map[man_y + 1][man_x] != "#":
man_y += 1
elif direction == "d" and map[man_y][man_x + 1] != "#":
man_x += 1
# 更新地图
map[man_y] = map[man_y][:man_x] + "P" + map[man_y][man_x+1:]
```
这是一个简单的控制台推箱子游戏,玩家需要通过移动人和箱子,将所有箱子推到指定位置才能获胜。