欢迎访问宙启技术站
智能推送

使用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,在终端上运行此文件。