Python基础(四、探索迷宫游戏)

news2024/11/16 19:00:09

Python基础(四、探索迷宫游戏)

  • 游戏介绍
  • 游戏说明

游戏介绍

在这个游戏中,你将扮演一个勇敢的冒险者,进入了一个神秘的迷宫。你的任务是探索迷宫的每个房间,并最终找到隐藏在其中的宝藏。

游戏通过命令行界面进行交互,你需要输入不同的指令来移动、与物品互动或解谜。你将面临各种挑战和难题,在逐步解决问题的过程中,逐渐接近宝藏的位置。
在这里插入图片描述

现在让我们开始编写这个游戏吧!

import random

# 迷宫地图
maze = [
    [1, 1, 1, 1, 1],
    [1, 0, 0, 0, 1],
    [1, 1, 1, 0, 1],
    [1, 0, 1, 1, 1],
    [1, 1, 0, 1, 1],
    [1, 1, 1, 1, 1]
]

# 游戏角色位置
player_pos = [1, 1]

# 宝藏位置
treasure_pos = [4, 3]

# 游戏主循环
while True:
    # 打印迷宫地图
    for i in range(len(maze)):
        for j in range(len(maze[i])):
            if player_pos[0] == i and player_pos[1] == j:
                print("P", end=" ")
            elif treasure_pos[0] == i and treasure_pos[1] == j:
                print("T", end=" ")
            elif maze[i][j] == 1:
                print("#", end=" ")
            else:
                print(".", end=" ")
        print()
    
    # 判断是否找到宝藏
    if player_pos == treasure_pos:
        print("恭喜你找到了宝藏!游戏结束!")
        break
    
    # 等待玩家输入指令
    command = input("请输入指令(w:上, s:下, a:左, d:右):")
    
    # 根据指令移动角色
    if command == "w":
        if maze[player_pos[0] - 1][player_pos[1]] != 1:
            player_pos[0] -= 1
    elif command == "s":
        if maze[player_pos[0] + 1][player_pos[1]] != 1:
            player_pos[0] += 1
    elif command == "a":
        if maze[player_pos[0]][player_pos[1] - 1] != 1:
            player_pos[1] -= 1
    elif command == "d":
        if maze[player_pos[0]][player_pos[1] + 1] != 1:
            player_pos[1] += 1
    else:
        print("无效指令,请重新输入!")

游戏说明

这个游戏的迷宫地图使用一个二维数组来表示。其中数字1表示墙壁,0表示可通行的路径。

游戏开始时,玩家和宝藏的初始位置已经定义好。在主循环中,首先打印出当前迷宫的地图,并判断是否找到了宝藏。如果找到宝藏,则游戏结束。接着等待玩家输入指令,根据指令移动角色的位置。

玩家可以输入"w"、“s”、“a”、"d"来分别表示上、下、左、右四个方向的移动。如果玩家输入的指令导致撞墙或越界,则角色不会移动。

请自由发挥,根据自己的想法增加更多功能,比如增加更多谜题、道具等,让游戏更加有趣。祝您编写愉快!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1299257.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

简单实现Spring容器(四) 依赖注入

阶段4: // 1.编写自己的Spring容器,实现扫描包,得到bean的class对象. // 2.扫描将 bean 信息封装到 BeanDefinition对象,并放入到Map.//3.初始化单例池并完成getBean() createBean()方法4.完成依赖注入(如果创建某个Bean对象,存在依赖注入,需要进行bean组装操作)思路: 1.在an…

面向对象三大特征——封装

目录 1. 封装概述(封装与隐藏) 2. private关键字 3. Getter & Setter方法 4. 变量访问原则和this关键字 5. 构造方法 5.1 构造方法概述 5.2 构造方法和set方法的比较 6. 静态 6.1 静态概述 6.2 静态效果 6.3 静态变量和非静态变量的区别 …

【小沐学Python】Python实现语音识别(vosk)

文章目录 1、简介1.1 vosk简介1.2 vosk模型1.3 vosk服务 2、安装3、测试3.1 命令行测试3.2 代码测试 结语 1、简介 https://alphacephei.com/vosk/index.zh.html Vosk 是一个语音识别工具包。 1.1 vosk简介 支持二十种语言 - 中文,英语,印度英语&#…

unity 2d 入门 飞翔小鸟 Cinemachine 镜头跟随小鸟 多边形碰撞器 解决镜头不会穿模问题(十二)

1、安装 window->package manager 2、创建Cinemachine 右键->Cinemachine->2D Carmera 3、创建空对象和多边形控制器如图 记得勾选 is Trigger 空对象位置记得要和小鸟保持一致,不然等下写完脚本后,镜头一开始会移动一下 4、将多边形触…

零一万物模型折腾笔记:官方 Yi-34B 模型基础使用

当争议和流量都消失后,或许现在是个合适的时间点,来抛开情绪、客观的聊聊这个 34B 模型本身,尤其是实践应用相关的一些细节。来近距离看看这个模型在各种实际使用场景中的真实表现和对硬件的性能要求。 或许,这会对也想在本地私有…

python安装与工具PyCharm

摘要: 周末闲来无事学习一下python!不是你菜鸡,只不过是对手太强了!所以你要不断努力,去追求更高的未来!下面先了解python与环境的安装与工具的配置! python安装: 官网 进入官网下载…

Child Mind Institute - Detect Sleep States(2023年第一次Kaggle拿到了银牌总结)

感谢 感谢艾兄(大佬带队)、rich师弟(师弟通过这次比赛机械转码成功、耐心学习)、张同学(也很有耐心的在学习),感谢开源方案(开源就是银牌),在此基础上一个月…

【SpringBoot篇】5种类型参数传递json数据传参的操作

🎊专栏【SpringBoot】 🍔喜欢的诗句:天行健,君子以自强不息。 🎆音乐分享【如愿】 🎄欢迎并且感谢大家指出小吉的问题🥰 文章目录 🌺普通参数🌺POJO参数🌺嵌套…

HarmonyOS--ArkTS(0)--目录

官方API文档: HarmonyOS应用开发官网 - 华为HarmonyOS打造全场景新服务 华为开发者官方网站_创新从这里开始

基于ssm农产品仓库管理系统系统论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本农产品仓库管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信…

基于Python+WaveNet+MFCC+Tensorflow智能方言分类—深度学习算法应用(含全部工程源码)(四)

目录 前言引言总体设计系统整体结构图系统流程图 运行环境模块实现1. 数据预处理2. 模型构建3. 模型训练及保存4. 模型生成 系统测试1. 训练准确率2. 测试效果 相关其它博客工程源代码下载其它资料下载 前言 博主前段时间发布了一篇有关方言识别和分类模型训练的博客&#xff…

MFC CBCGPPropertySheet使用说明

CBCGPPropertySheet效果类似新建向导,部分效果如下: 总共需要设置的界面效果有以下几种,具体可以看看效果 PropSheetLook_Tabs, PropSheetLook_OutlookBar, PropSheetLook_Tree, PropSheetLook_OneNoteTabs, PropSheetLook_…

DIP——添加运动模糊与滤波

1.运动模糊 为了模拟图像退化的过程,在这里创建了一个用于模拟运动模糊的点扩散函数,具体模糊的方向取决于输入的motion_angle。如果运动方向接近水平,则模糊效果近似水平,如果运动方向接近垂直,则模糊效果近似垂直。具…

风力发电对讲 IP语音对讲终端IP安防一键呼叫对讲 医院对讲终端SV-6005网络音频终端

风力发电对讲 IP语音对讲终端IP安防一键呼叫对讲 医院对讲终端SV-6005网络音频终端 目 录 1、产品规格 2、接口使用 2.1、侧面接口功能 2.2、背面接口功能 2.3、面板接口功能 3、功能使用 1、产品规格 输入电源: 12V~24V的直流电源 网络接口&am…

【Go实现】实践GoF的23种设计模式:适配器模式

上一篇:【Go实现】实践GoF的23种设计模式:备忘录模式 简单的分布式应用系统(示例代码工程):https://github.com/ruanrunxue/Practice-Design-Pattern–Go-Implementation 简介 适配器模式(Adapter&#xf…

《形式语言与自动机理论(第4版)》笔记(三)

文章目录 [toc]前导《形式语言与自动机理论(第4版)》笔记(一)《形式语言与自动机理论(第4版)》笔记(二) 第四章:正则表达式4.1|启示4.2|正则表达式的形式定义正则表达式性…

软件设计师——计算机组成原理(二)

📑前言 本文主要是【计算机组成原理】——软件设计师——计算机组成原理的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是听风与他🥇 ☁️博客首页:CSDN主页听风与他 …

iOS分段控件UISegmentedControl使用

在故事板中添加UISegmentedControl 具体添加步聚如下: 选择Xcode的View菜单下的Show Library (或者Shift+Common+L) 打开控件库如下 在控件库中输入seg搜索控件,在出现Segmented Control后,将其拖到View Controller Scene中 到这里,添加分段控件UI已完成, 接下来将控件与变量…

配置OSS后如何将服务器已有文件上传至OSS,推荐使用ossutil使用

1.下载安装ossutil sudo -v ; curl https://gosspublic.alicdn.com/ossutil/install.sh | sudo bash2.交互式配置生成配置文件 ossutil config 根据提示分别设置配置文件路径、设置工具的语言、Endpoint、AccessKey ID、AccessKey Secret和STSToken参数,STSToken留…

软件接口安全设计规范

《软件项目接口安全设计规范》 1.token授权机制 2.https传输加密 3.接口调用防滥用 4.日志审计里监控 5.开发测试环境隔离,脱敏处理 6.数据库运维监控审计