python实现迷宫小游戏(附源码 简单易懂)

简介: python实现迷宫小游戏(附源码 简单易懂)

需要源码请点赞关注收藏后评论区留言~~~

接下来用python实现一个控制台的迷宫小游戏  游戏规则如下

输入exit退出游戏

输入8为向上走

输入5为向下走

输入4为向左走

输入6为向右走

游戏地图如下

Y即为玩家,输入对应数字后可以变换位置,当撞墙时位置不变

部分源码如下

 

import time     # 导入时间模块
# 模拟迷宫地图的二维列表
map_list=[
["  ","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@"],
["=>","Y"," "," ","@","@"," "," "," "," "," "," ","@"," "," "," ","@","@"," "," "," ","@"," ","@"," ","@"," ","@"," ","@","@"],
["  ","@"," "," ","@","@","@"," ","@"," ","@"," ","@","@","@"," "," "," "," ","@"," ","@"," ","@","@","@"," ","@","@","@","@"],
["  ","@"," ",""@","@","@"],
["  ","@","@","@","@","@"," ","@"," ","@","@"," "," ","@"," ","@","@","@","@","@"," ","@","@"," "," "," "," ","@","@","@","@"],
["  ","@"," "," "," ","@"," ","@","@","@","@","@"," ","@"," "," "," ","@","@","@"," ","@"," ","@"," ","@"," "," "," "," ","@"],
["  ","@"," ","@"," ","@"," ","@","@"," ","@","@","@"," "," ","@","@"," "," "," "," ","@","@","@"," ","@"," ","@","@","@","@"],
["  ","@"," ","@"," "," "," ","@","@"," "," "," ","@","@","@","@","@","@","@","@","@","@","@"," ","@","@","@"," "," "," ","@"],
["  ","@"," ","@","@","@","@","@","@"," ","@"," ","@","@","@","@","@"," "," "," "," "," "," "," "," "," "," "," ","@"," ","@"],
["  ","@"," "," "," "," "," "," "," "," ","@"," ","@"," "," "," "," "," ","@","@","@","@","@"," ","@","@","@"," ","@"," "," ","=>"],
["  ","@"," ","@","@","@","@","@","@","@","@"," ","@","@","@","@","@"," ","@","@","@","@","@"," ","@","@","@"," ","@","@","@"],
["  ","@"," "," "," "," "," ","@"," ","@","@"," ","@","@","@","@","@"," ","@","@","@"," "," "," "," "," "," "," ","@","@","@"],
["  ","@","@","@","@","@"," ","@"," ","@","@"," ","@"," "," "," "," "," "," ","@","@","@","@","@","@","@","@"," ","@"," ","@"],
["  ","@"," "," "," "," "," ","@"," ","@","@"," ","@","@"," ","@","@","@"," "," "," "," "," "," "," "," ","@"," "," "," ","@"],
["  ","@"," ","@"," ","@","@","@"," "," "," "," "," "," "," ","@","@","@","@","@","@"," ","@","@","@","@","@","@","@"," ","@"],
["  ","@"," "," "," "," "," "," "," ","@","@"," ","@","@"," "," "," "," "," "," ","@"," "," "," "," "," "," "," "," "," ","@"],
["  ","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@"]]
# 更新地图
def up_map():
    # 打印小标题并指定打印区域的文字以及背景颜色
    print("\033[1;30;42m  ----------小迷宫-----------")
    for i,values in enumerate(map_list):       # 遍历二维列表中的18个子列表
        for j in range(len(values)):   # 遍历子列表中的元素
            # 打印每个子列表中的所有元素,并且不换行打印
            print(map_list[i][j], end="")
        print("")             # 每打印一个子列表所有元素,换行一次
    print("\033[0m",end="")          # 背景色结束位置
if __name__ == '__main__':
    x = 1            # 横向坐标默认值
    y = 1            # 纵向坐标默认值
    step_number = 0  # 记录行走步数的变量
    up_map()         # 更新模拟地图
    start = time.time()  # 获取开始时的时间戳
    while True:
        # 判断当小人走到迷宫出口时,打印胜利文字,跳出循环
        if x == 30 and y == 10:
            print("\033[31m恭喜您!走出了迷宫!\033[0m")
            print("\033[31m共计行走了",step_number,"步!\033[0m")
            print("\033[31m共计用时",int(time.time()-start),"秒!\033[0m")
            break
        print("\033[31m请输入行走的方向(输入exit将退出游戏!)\033[0m")
        # 获取输入的行走方向8为上、5为下、4为左、6为右
        direction = input("\033[31m8为上、5为下、4为左、6为右:\033[0m")
        # 当用户输入5,控制人物向下走
        if (direction == '5'):
            if map_list[y+1][x] != "@":    # 判断行走位置不是墙时,@(表示墙)
                map_list[y][x] = " "          # 将小人原来的位置设置为空
                y += 1                     # 修改Y坐标位置
                map_list[y][x] = "Y"          # 将移动后的位置设置为Y(表示小人)
                step_number+=1             # 修改小人移动步数
            else:
                print('\033[31m碰到墙壁!\033[0m')   # 当用户输入的位置是墙时,做出提示
            up_map()    # 更新地图
        # 当用户输入6,控制人物向右走
        elif (direction == '6'):
            if map_list[y][x + 1] != "@":
                map_list[y][x] = " "
                x += 1
                map_list[y][x] = "Y"
                step_number += 1  # 修改小人移动步数
            else:
                print('\033[31m碰到墙壁!\033[0m')
            up_map()   #更新地图
        # 当用户输入8,控制人物向上走
        elif (direction == '8'):
            if map_list[y - 1][x] != "@":
                map_list[y][x] = " "
                y -= 1
           物向左走
        elif (direction == '4'):
            if map_list[y][x - 1] != "@":
                map_list[y][x] = " "
                x -= 1
                map_list[y][x] = "Y"
                step_number += 1  # 修改小人移动步数
            else:
                print('\033[31m碰到墙壁!\033[0m')
            up_map()  # 更新地图
        # 当用户输入退出命令,跳出循环
        elif (direction == "exit"):
            print("游戏退出。")
            break
相关文章
|
24天前
|
人工智能 搜索推荐 数据可视化
用 Python 制作简单小游戏教程:手把手教你开发猜数字游戏
本教程详细讲解了用Python实现经典猜数字游戏的完整流程,涵盖从基础规则到高级功能的全方位开发。内容包括游戏逻辑设计、输入验证与错误处理、猜测次数统计、难度选择、彩色输出等核心功能,并提供完整代码示例。同时,介绍了开发环境搭建及调试方法,帮助初学者快速上手。最后还提出了图形界面、网络对战、成就系统等扩展方向,鼓励读者自主创新,打造个性化游戏版本。适合Python入门者实践与进阶学习。
111 1
|
3月前
|
前端开发 JavaScript 关系型数据库
基于python的租房网站-房屋出租租赁系统(python+django+vue)源码+运行
该项目是基于python/django/vue开发的房屋租赁系统/租房平台,作为本学期的课程作业作品。欢迎大家提出宝贵建议。
125 6
|
3月前
|
算法 数据可视化 Python
Python中利用遗传算法探索迷宫出路
本文探讨了如何利用Python和遗传算法解决迷宫问题。迷宫建模通过二维数组实现,0表示通路,1为墙壁,'S'和'E'分别代表起点与终点。遗传算法的核心包括个体编码(路径方向序列)、适应度函数(评估路径有效性)、选择、交叉和变异操作。通过迭代优化,算法逐步生成更优路径,最终找到从起点到终点的最佳解决方案。文末还展示了结果可视化方法及遗传算法的应用前景。
|
3月前
|
前端开发 JavaScript 关系型数据库
基于Python+Vue开发的美容预约管理系统源码+运行
基于Python+Vue开发的美容预约管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的美容诊所预约管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
67 9
|
3月前
|
JavaScript 前端开发 关系型数据库
基于Python+Vue开发的体育场馆预约管理系统源码+运行
本项目为大学生课程设计作业,采用Python和Vue技术构建了一个体育场馆预约管理系统(实现前后端分离)。系统的主要目标在于帮助学生理解和掌握Python编程知识,同时培养其项目规划和开发能力。参与该项目的学习过程,学生能够在实际操作中锻炼技能,为未来的职业发展奠定良好的基础。
109 3
|
3月前
|
前端开发 JavaScript 关系型数据库
基于Python+Vue开发的摄影网上预约管理系统源码+运行
基于Python+Vue开发的摄影网上预约管理系统(前后端分离),影楼婚纱摄影,这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的在线摄影预约管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
70 8
|
3月前
|
前端开发 JavaScript 关系型数据库
基于Python+Vue开发的新闻管理系统源码+运行
基于Python+Vue开发的新闻管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的新闻管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
100 5
|
3月前
|
前端开发 JavaScript 关系型数据库
基于Python+Vue开发的房产销售管理系统源码+运行
基于Python+Vue开发的房产销售管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的房产销售管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
70 2
|
Python
python小游戏——贪吃蛇游戏4.0版本の背景音乐和音效功能实现
python小游戏——贪吃蛇游戏4.0版本の背景音乐和音效功能实现
341 0
|
Python
python小游戏——贪吃蛇游戏3.0版本の历史最高得分记录功能实现
python小游戏——贪吃蛇游戏3.0版本の历史最高得分记录功能实现
378 0

推荐镜像

更多