python迷宫游戏的课程设计,Python迷宫游戏(基础版)

2023-11-09

# 画地图

map_data = [

[1, 1, 1, 1, 1, 1, 1, 1, 1, 1],

[1, 0, 1, 1, 1, 1, 1, 1, 1, 1],

[1, 2, 1, 0, 0, 0, 0, 0, 0, 1],

[1, 0, 1, 0, 1, 0, 1, 1, 0, 1],

[1, 0, 1, 0, 1, 0, 1, 1, 0, 1],

[1, 0, 0, 0, 1, 0, 0, 1, 0, 1],

[1, 1, 1, 0, 1, 1, 1, 1, 0, 1],

[1, 1, 1, 0, 1, 1, 1, 1, 0, 0],

[1, 1, 1, 1, 1, 1, 1, 1, 1, 1],

[1, 1, 1, 1, 1, 1, 1, 1, 1, 1],

]

# 定义人所在的位置(初始化)

x = 2

y = 1

endx = 7

endy = 9

# 用字符串重新给地图赋值

def print_map():

for nums in map_data:

for num in nums:

if num == 1:

print(" #",end=" ")

elif(num == 0):

print(" ",end=" ")

else:

print(" $",end=" ")

print("")

# 所用到的核心知识

# print("交换前的地图")

# print_map()

# map_data[2][1], map_data[2+1][1] = map_data[2+1][1], map_data[2][1]

# print("交换后的地图")

# print_map()

# 先画地图

print_map()

while True:

# 指令的输入

order = input("请输入指令(a: 左,s: 下, d: 右, w: 上):")

# 对用户输入的指令进行判断

# 当用户输入a时执行向左走进行交换(列变行不变 列下标减1)

if order == "a":

y = y-1

# 碰到墙,游戏结束

if map_data[x][y] == 1:

print("游戏结束")

break

else:

map_data[x][y],map_data[x][y+1] = map_data[x][y+1], map_data[x][y] # 进行交换操作

print_map()

# 当用户输入s时执行向下走进行交换(列不变行变 行下标加1)

elif order == "s":

x = x + 1

if map_data[x][y] == 1:

print("游戏结束")

break

else:

map_data[x][y], map_data[x-1][y] = map_data[x-1][y], map_data[x][y] # 进行交换操作

print_map()

# 当用户输入d时执行向右走进行交换(列变行不变 列下标加1)

elif order == "d":

y = y + 1

if map_data[x][y] == 1:

print("游戏结束")

break

else:

map_data[x][y], map_data[x][y - 1] = map_data[x][y - 1], map_data[x][y] # 进行交换操作

print_map()

if map_data[x][y] == map_data[endx][endy]:

print("恭喜你过关了")

break

# 当用户输入w时执行向上走进行交换(列不变行变 行下标减1)

elif order == "w":

x = x - 1

if map_data[x][y] == 1:

print("游戏结束")

break

else:

map_data[x][y], map_data[x + 1][y] = map_data[x + 1][y], map_data[x][y] # 进行交换操作

print_map()

# 当用户输入非规则内的指令时的错误提示,并重新输入

else:

print("您输入指令有误,请重新按指令规则输入!")

continue

#

截图:

748a4c49b80e32e26dc9aa64d8873398.png

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python迷宫游戏的课程设计,Python迷宫游戏(基础版) 的相关文章

  • systemctl start network 启动网卡服务报错解决方法

    systemctl start network 启动网卡服务报错 root apache systemctl restart network Job for network service failed because the contro
  • Hibernate之查询中get()和load()的区别,list()和iterate()的区别

    Hibernate 之查询中get 和load 的区别 list 和iterate 的区别 list 查询 一次性把数据对象取出来 Test public void findTestList Session s sessionFactory
  • python3 面试题总结

    Python global 语句的作用 lambda 匿名函数好处 Python 错误处理 Python 内置错误类型 简述 any 和 all 方法 Python 中什么元素为假 提高 Python 运行效率的方法 Python 单例模式
  • LeetCode63. 不同路径 II

    不同路径 II 一个机器人位于一个 m x n 网格的左上角 起始点在下图中标记为 Start 机器人每次只能向下或者向右移动一步 机器人试图达到网格的右下角 在下图中标记为 Finish 现在考虑网格中有障碍物 那么从左上角到右下角将会有
  • Halcon三维模型预处理(1):调平的三大手法

    面结构光拍摄生成的点云模型 往往相对系统坐标系是有角度的 首先讲一下调平的目的 1 为接下来的预处理切除背景面做准备 3 不做调平 后续处理会很麻烦 因为不清楚坐标系在平台的为位置 2 对于无序抓取项目 平台相对相机可能是有角度的 将抓取平
  • socket和mongodb

    socket 创建一个socket 然后连接server url net Socket 发送信息给服务器 socket通信 client可以进行数据的编写和发送 服务器 只有一个 只有开启了服务器 客户端才能进行连接 mongodb 关系型
  • 归并排序(简单易懂的代码)

    归并排序是一种很重要的排序算法 体现的是分而治之的思想 很多的算法题的解法会借用这种算法思想 在这里使用C 编程实现归并排序 供自己回忆 供他人参考 include
  • 单元测试--重构

    一 单元测试 1 在没写函数内容代码前 就要写单元测试类 每个测试类中有TestSuite 2 如果写单元测试很困难 那么可能是你对要测试的函数不是很了解 如果不是则可能是设计的问题 也许要重构 二 重构1 不要存在代码重复的现象 若有 且
  • Android-布局管理器

    线性布局 Linearlayout 属性 orientation 布局管理器内组件的排列方式 horizontal 水平 和vertical 垂直 默认值为 horizontal layout weight 权重 用于设置组件占父容器剩余空
  • 网易云音乐播放器部分问题集

    这周在做网易云音乐播放器 这期间遇到了不少问题 下面就来记录一下我所遇到的部分问题 一 接口问题 调用网易云的接口 网上一搜方法一大堆 但是我的理解有些问题 硬生生搞了好久 下面就给那个方法再重新小白化一遍TAT 安装环境 首先你要有nod
  • FastAPI Web框架 [Pydantic]

    学习一下 做个记录 Starlette Pydantic 与 FastAPI 的关系 Python 的类型提示 type hints Pydantic 是一个基于 Python 类型提示来定义数据验证 序列化和文档 使用JSON 模式 库
  • 基于Arduino IDE 和ESP32-CAM 制作远程摄像头

    说明 具体教程及详细步骤参考 arduino esp32 cam环境配置和例程使用 在这里仅仅针对个人在开发过程中的一点经验及上文帖子没提到的一些部分做一个总结 因为我当初根据这个教程做的时候有以下几点是导致我一开始浪费了大量时间精力的 特
  • redis设计与实现读书笔记-主从复制

    主从复制 在Redis中 用户可以通过执行SLAVEOF命令或者设置slaveof选项 让一个服务器去复制 replicate 另一个服务器 我们称呼被复制的服务器为主服务器 master 而对主服务器进行复制的服务器则被称为从服务器 sl
  • git使用X篇_2_Git全套教程IDEA版(git、GitHub、Gitee码云、搭建公司内部GitLab、与IDEA集成等内容)

    本文是根据以下视频及网上总结进行更新后的介绍git使用的博文 包含了git GitHub Gitee码云 搭建公司内部GitLab 与IDEA集成等内容 笔记来源 尚硅谷 5h打通Git全套教程IDEA版 涵盖GitHub Gitee码云
  • 初识docker之如何运行一个容器

    手把手运行一个镜像 1 容器的特点2 启动容器的参数3 docker run d it name test p 900 8080 v opt usr local 78b258e36eed d 后台执行容器 it 保持stdin和为容器创建t
  • 一文搞懂Redis架构演化之路

    你好 我是 Kaito 这篇文章我想和你聊一聊 Redis 的架构演化之路 现如今 Redis 变得越来越流行 几乎在很多项目中都要被用到 不知道你在使用 Redis 时 有没有思考过 Redis 到底是如何稳定 高性能地提供服务的 我使用
  • Java Stream流处理Map 详细用法

    文章目录 Java Stream流处理Map 详细用法 实体类 Stream方法 Java Stream流处理Map 详细用法 实体类 package com jzj model 当前描述 author jiazijie since 202
  • Code First Migrations更新数据库结构的具体步骤

    Code First Migrations更新数据库结构的具体步骤 作者 寒羽枫 cityhunter172 http blog csdn net cityhunter172 article details 8062420 我对 CodeF
  • Kaldi声学模型训练

    我的书 淘宝购买链接 当当购买链接 京东购买链接 支持标准的基于ML训练的模型 线性变换 如LDA HLDA MLLT STC 基于fMLLR MLLR的说话人自适应 支持混合系统 支持SGMMs 基于fMLLR的说话人识别 模型代码 可以

随机推荐

  • MAC 设计师必备的设计绘图软件 推荐与下载

    Mac设计师必备的设计绘图软件 为广大设计师推荐一些Mac上实用且强大的软件 使用好的软件 事半功倍 设计出精美的作品 Mac上优秀的设计类软件非常多 绝对不止这几款软件 看看以下内容 希望对你有帮助 如有更好的设计类软件大家也可以留言推荐
  • 放弃大厂高薪的程序员,涌进体制内

    本文转载自 InfoQ 作者 罗燕珊 我现在最庆幸的是 下班终于能看到太阳了 2020 年 8 月 20 日下午 5 点半 何双准备下班 他特地朝窗外拍了张照片并发在朋友圈 配图文案仅仅只有 太阳 92 年出生的何双原先是一名程序员 去年年
  • 数据统计(基于文件输入输出)

    输入一些整数 求出它们的最大值 最小值 平均值 保留三位小数 输入保证这些数都是不超过1000的整数 样例输入 2 8 3 5 1 7 3 6 样例输出 1 8 4 375 基于文件重定向 define LOCAL 作用 仅在本机使用重定向
  • 小程序报错:{“errMsg”:“navigateTo:fail can not navigateTo a tabbar page”}

    小程序报错 errMsg navigateTo fail can not navigateTo a tabbar page 错误显示 VM791 1 Error MiniProgramError errMsg navigateTo fail
  • 验证码报错 java.desktop/sun.awt.FontConfiguration.getVersion(FontConfiguration.java: 问题解决

    验证码报错 org springframework web util NestedServletException Handler dispatch failed nested exception is java lang Internal
  • 【C语言】选择排序

    一 算法描述 在一遍遍历中将最小的数排到前面 几次遍历后前面就是排号序的 经过n 1次遍历 二 选择排序代码 void select int a int n int i j min temp for i 0 i
  • 矩阵和向量的乘法顺序

    矩阵和向量的乘法顺序 似乎经常有人被这个问题转晕 向量有两种表达形式 行向量和列向量 对应的矩阵也有行矩阵和列矩阵 采用哪种形式和左右手系无关 行矩阵 三个轴向量为前三行 最后一行为位移变换 连乘时从左到右接合 左边的变换先应用 变换向量时
  • Ubuntu 18.02编译opencv

    https blog csdn net public669 article details 99044895 spm 1001 2014 3001 5506 https blog csdn net Mr robot strange arti
  • 利用STM32CubeMX软件生成USB_HOST读写U盘

    一 测试平台 MCU STM32F429IGT6 工具 STM32CubeMX软件 编译软件 MDK 二 配置步骤 1 打开STM32CubeMX软件 创建新的工程文件 点击ACCESS TO MCU SELECTOR选项 2 选择芯片型号
  • 1-4、Lua基本语法

    1 4 Lua基本语法 文章目录 1 4 Lua基本语法 1 赋值语句 2 局部变量与代码块 3 控制结构语句 if语句 while语句 for语句有两大类 Lua像C和PASCAL几乎支持所有的传统语句 赋值语句 控制结构语句 函数调用等
  • MFC之图标(标题)的动态使用15

    1 图标 标题 的动态使用 我们将实现左上角动态图标的显示 首先按照向导创建新的项目 由于我们的图标是属于框架 所以在框架类处理 1 首先在框架类定义图标数组用于存储图片 我这里有四张所以大小为4 private HICON m icon
  • 程序员35岁以后就没有出路了吗?听听京东10年测开的分析

    国内的互联网行业发展较快 所以造成了技术研发类员工工作强度比较大 同时技术的快速更新又需要员工不断的学习新的技术 因此淘汰率也比较高 超过35岁的基层研发类员工 往往因为家庭原因 身体原因 比较难以跟得上工作节奏 所以裁员往往优先考虑这类员
  • MCU接收串口字符型数据转换成数据型数据

    转自 http blog csdn net langaopeng article details 7672252 做MCU开发时 常常碰到串口接收的数据是字符型数据 是ASCII码 而我们需要解析的是数据型的 如 串口接收到的是 236 8
  • 【机器学习实战】1、机器学习主要任务

    文章目录 1 1 何谓机器学习 1 2 机器学习重要性 1 3 机器学习主要任务 1 4 如何选择合适的算法 1 5 开发机器学习应用程序的步骤 1 6 python语言的优势 1 6 1 python语言特色 1 6 2 python语言
  • npm、cnpm、yarn之间的区别

    npm 在使用 npm 安装包的时候 给人的第一感觉就是慢 而且还会在命令行打印出一堆的东西 而且经常会出现 在我的电脑上可以 这个问题 着实是有点难受 但也不得不说 npm 是 node 如此成功的主要原因之一 npm的缺点如下 1 由于
  • 网站html保存,如何保存网页内容(高级篇)

    上一篇介绍了允许 另存为 的网站保存网页的方法 本篇继续介绍禁止 另存为 的网站也实现保存网页的方法 步骤比上一篇麻烦一些 但也不难 以下是具体步骤 提示 对于这类网站 尽管 文件 菜单中的 另存为 是可用的 但当你试图另存为 网页快要保存
  • [网络安全自学篇] 七十八.XSS跨站脚本攻击案例分享及总结(二)

    这是作者网络安全自学教程系列 主要是关于安全工具和实践操作的在线笔记 特分享出来与博友们学习 希望您喜欢 一起进步 前文分享了肖老师 Seak 的分享 介绍恶意代码与APT攻击中的武器 包括A2PT的攻击武器 普通APT组织的自研恶意代码
  • 虚拟机Parallels Desktop

    Mac上安装Windows虚拟机 Parallels Desktop 之前在Mac上安装虚拟机使用的是VMware Fusion 用起来感觉不是很流畅 很不舒服 所以今天试试号称Mac上最好的虚拟机Parallels Desktop 概述
  • 迷你气象站(雨量计,风速,风向)

    天气预报对于计划我们的日常活动很重要 农民需要信息来帮助他们计划农作物的种植和收割 航空公司需要了解当地天气状况才能安排航班 天气预报可以帮助我们做出更明智的日常决策 甚至可以帮助我们摆脱危险 在本教程中 我们将制作一个微型气象站 该气象站
  • python迷宫游戏的课程设计,Python迷宫游戏(基础版)

    画地图 map data 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 2 1 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 1 0 1 0 1 0 1 1 0 1 1 0 0 0