使用Python编写一个简单的迷宫游戏
发布时间:2023-12-04 14:16:50
下面是一个使用Python编写的简单迷宫游戏示例。在这个迷宫游戏中,玩家需要通过方向键控制一个字符在迷宫中移动,尽可能快地找到出口。游戏的迷宫由二维数组表示,其中0表示迷宫墙壁,1表示迷宫路径。
import sys
import os
import msvcrt
def game_over():
# 游戏结束
os.system("cls")
print("Game Over!")
sys.exit()
def print_maze(maze, player_x, player_y):
# 打印迷宫和玩家位置
os.system("cls")
for i in range(len(maze)):
for j in range(len(maze[0])):
if i == player_y and j == player_x:
print("P ", end="")
elif maze[i][j] == 1:
print(" ", end="")
else:
print("█ ", end="")
print()
def move_player(maze, player_x, player_y, dx, dy):
# 移动玩家,如果能够移动
if maze[player_y + dy][player_x + dx] == 1:
return player_x + dx, player_y + dy
else:
return player_x, player_y
def main():
# 迷宫地图
maze = [
[0, 1, 0, 0, 0],
[0, 1, 1, 1, 0],
[0, 0, 0, 1, 0],
[0, 1, 1, 1, 0],
[0, 0, 0, 0, 0],
]
player_x = 0
player_y = 0
while True:
print_maze(maze, player_x, player_y)
if player_x == len(maze[0])-1 and player_y == len(maze)-1:
# 玩家到达出口
os.system("cls")
print("Congratulations! You Win!")
sys.exit()
# 获取移动方向
direction = msvcrt.getch()
if direction == b'w':
player_x, player_y = move_player(maze, player_x, player_y, 0, -1)
elif direction == b's':
player_x, player_y = move_player(maze, player_x, player_y, 0, 1)
elif direction == b'a':
player_x, player_y = move_player(maze, player_x, player_y, -1, 0)
elif direction == b'd':
player_x, player_y = move_player(maze, player_x, player_y, 1, 0)
elif direction == b'q':
sys.exit()
else:
continue
if __name__ == "__main__":
main()
使用该示例,玩家可以通过w、a、s、d方向键控制字符P在迷宫中移动。P表示玩家的当前位置,█表示墙壁,空格表示路径。游戏将在玩家到达迷宫出口时结束,并显示“Congratulations! You Win!”的消息。玩家可以按q键退出游戏。
为了使用该示例,首先需要在Python环境中安装msvcrt库。然后,将示例代码保存为一个Python文件,例如maze_game.py,在终端上运行此文件。
