当前位置: 首页 > news >正文

纯c++简易的迷宫小游戏

一个用c++写的黑框框迷宫

适合新手入门学习

也适合大学生小作业

下面附上代码

总体思路

  1. 初始化游戏界面:设置迷宫的大小(WIDTH和HEIGH),生成迷宫地图(map),包括墙壁、空地、起点和终点。
  2. 显示欢迎界面和游戏规则:通过Welcome()函数和Rule()函数分别实现。
  3. 开始计时:记录游戏开始的时间。
  4. 游戏主循环:在Play()函数中,不断获取用户输入(上下左右键),根据输入移动角色,直到到达出口或超时。
  5. 判断游戏结果:如果角色成功走出迷宫且在规定时间内,显示恭喜信息;否则,提示用户失败并关机。

特点

用随机数来随机生成地图,增加了趣味性,可以不断切换地图(当然可能存在某个地图走不通的情况,这时候就要及时切换地图)

设置了关机程序(如果40秒不能走出迷宫 电脑就会自动关机 超刺激的

欢迎界面

游戏规则说明界面

游戏界面

完整代码

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
#include<time.h>
#include<iostream>
#include<windows.h>
using namespace std;
#define WIDTH 25
#define HEIGH 25int x,y;
int flag = 1;int map[HEIGH][WIDTH];void Welcome()
{for(int i=0;i<10;i++){cout<<endl;}cout<<"			====================================================================="<<endl;cout<<"			=                                                                   ="<<endl;cout<<"			=                                                                   ="<<endl;cout<<"			=                                                                   ="<<endl;cout<<"			=                                走迷宫                             ="<<endl;cout<<"			=                                                                   ="<<endl;cout<<"			=                 在规定时间内走出迷宫                              ="<<endl;cout<<"			=                 否则会发生很恐怖的事                              ="<<endl;cout<<"			=                                                                   ="<<endl;cout<<"			====================================================================="<<endl;system("pause");system("cls");//清屏 用以换页 
}
void Rule()
{cout<<"================================================================"<<endl;cout<<"=                             规则                             ="<<endl;cout<<"=                1. wasd控制方向(小写 把输入法变成英文)      ="<<endl;cout<<"=                2.如果地图走不了记得用r换图                   ="<<endl;cout<<"=                3.☆是出口                                    ="<<endl; cout<<"=                4.走出迷宫的时间一定要在40s内(不信就try try)  ="<<endl;cout<<"=                5.为了营造更紧张的氛围 请自己默数40s          ="<<endl; cout<<"================================================================"<<endl;system("pause");system("cls"); 
}
void Draw()//创建地图  
{int i,j;for ( i=0; i<HEIGH; i++ ){for ( j=0; j<WIDTH; j++ ){if ( map[i][j] == 0 ){printf("  ");}if ( map[i][j] == 1 ){printf("■");}if ( map[i][j] == 2 ){printf("●");}if ( map[i][j] == 3 ){printf("☆");} }printf("\n");}
}void moveW()
{if(map[x-1][y]!=1){map[x][y]=0;x--;map[x][y]=2;}
}
void moveS()
{if(map[x+1][y]!=1){map[x][y]=0;x++;map[x][y]=2;}
}
void moveA()
{if(map[x][y-1]!=1){map[x][y]=0;y--;map[x][y]=2;}
}
void moveD()
{if(map[x][y+1]!=1){map[x][y]=0;y++;map[x][y]=2;}
}void Play()
{char c;while ( flag ){system("cls");cout<<"◆输入r重新载入新地图◆"<<endl;Draw();c = getch();//判断是否输入 if ( x==HEIGH-2 && y==WIDTH-2 )//出口 判定成功 {flag = 0;}if ( c == 'r' )//重新加载地图 {for ( int i=1; i<HEIGH-1; i++ ){for ( int j=1; j<WIDTH-1; j++ ){map[i][j] = 0;}}for ( int i=0; i<WIDTH; i++ ){map[0][i] = 1;map[HEIGH-1][i] = 1;}for ( int i=0; i<HEIGH; i++ ){map[i][0] = 1;map[i][WIDTH-1] = 1;}srand((unsigned)time(NULL));for ( int i=0; i<200; i++ ){map[rand()%23+1][rand()%23+1] = 1;}map[1][1] = 2;map[HEIGH-2][WIDTH-2] = 3;x = 1;y = 1;}switch (c){case 'w':moveW();break;case 's':moveS();break;case 'a':moveA();				break;case 'd':moveD();				break;}}}int main()
{Welcome();Rule();clock_t start,finish;double duration;start = clock();for ( int i=0; i<WIDTH; i++ )//上下封闭 {map[0][i] = 1;map[HEIGH-1][i] = 1;}for ( int i=0; i<HEIGH; i++ )//左右封闭 {map[i][0] = 1;map[i][WIDTH-1] = 1;}srand((unsigned)time(NULL));//随机数种子 for ( int i=0; i<200; i++ )//生成200个方块 {map[rand()%23+1][rand()%23+1] = 1;//随机在某个位置生成方块 }map[1][1] = 2;//初始位置 map[HEIGH-2][WIDTH-2] = 3;//出口 x = 1;y = 1;Play();finish = clock();duration = (double)((finish-start)/CLOCKS_PER_SEC);//记录总时间 if(duration>40){system("cls");cout<<"你用了"<<duration<<"秒"<<endl; cout<<"你的电脑将在30秒内关机!"<<endl;cout<<"你的电脑将在30秒内关机!"<<endl;cout<<"你的电脑将在30秒内关机!"<<endl;cout<<"重要的事情说三遍!!!(︶︿︶) "<<endl;system("shutdown -s -t 30");system("pause"); }else{system("cls");printf("			   恭喜通过\n");system("pause"); }}

相关文章:

纯c++简易的迷宫小游戏

一个用c写的黑框框迷宫 适合新手入门学习 也适合大学生小作业 下面附上代码 总体思路 初始化游戏界面&#xff1a;设置迷宫的大小&#xff08;WIDTH和HEIGH&#xff09;&#xff0c;生成迷宫地图&#xff08;map&#xff09;&#xff0c;包括墙壁、空地、起点和终点。显示…...

基于python舆情分析可视化系统+情感分析+爬虫+机器学习(源码)✅

大数据毕业设计&#xff1a;Python招聘数据采集分析可视化系统✅ 毕业设计&#xff1a;2023-2024年计算机专业毕业设计选题汇总&#xff08;建议收藏&#xff09; 毕业设计&#xff1a;2023-2024年最新最全计算机专业毕设选题推荐汇总 &#x1f345;感兴趣的可以先收藏起来&…...

2024年1月16日Arxiv热门NLP大模型论文:Multi-Candidate Speculative Decoding

大幅提速NLP任务&#xff0c;无需牺牲准确性&#xff01;南京大学提出新算法&#xff0c;大幅提升AI文本生成效率飞跃 引言&#xff1a;探索大型语言模型的高效文本生成 在自然语言处理&#xff08;NLP&#xff09;的领域中&#xff0c;大型语言模型&#xff08;LLMs&#xf…...

AI对决:ChatGPT与文心一言的比较

文章目录 引言ChatGPT与文心一言的比较Chatgpt的看法文心一言的看法Copilot的观点chatgpt4.0的回答 模型的自我评价自我评价 ChatGPT的优势在这里插入图片描述 文心一言的优势AI技术发展趋势总结 引言 在过去的几年里&#xff0c;人工智能&#xff08;AI&#xff09;技术取得了…...

uni-app引用矢量库图标

矢量库引用 导入黑色图标 1.生成连接&#xff0c;下载样式 2.导入项目&#xff08;字体样式&#xff09; 3.引入css样式 4.替换font-face 5.使用图标&#xff08;字体图标&#xff0c;只有黑色&#xff09; 导入彩色图标 1.安装插件 npm install -g iconfont-tools2.…...

Android的setContentView流程

一.Activity里面的mWindow是啥 在ActivityThread的performLaunchActivity方法里面&#xff1a; private Activity performLaunchActivity(ActivityClientRecord r, Intent customIntent) {ActivityInfo aInfo r.activityInfo;if (r.packageInfo null) {r.packageInfo getP…...

【加速排坑】docker设置国内image镜像源

第零步&#xff0c;查看阿里最新的镜像源&#xff1a;https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors 第一步&#xff1a;在/etc/docker/daemon.json中添加镜像源 sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-EOF {"registry-m…...

el-table嵌套两层el-dropdown-menu导致样式错乱

问题&#xff1a; 解决方式&#xff1a; <el-table-column label"操作" fixed"right" width"132" align"center"><template slot-scope"scope"><div v-if"scope.row._index ! 合计"><el-d…...

自动化测试:fixture学得好,Pytest测试框架用到老

在pytest中&#xff0c;fixture是一种非常有用的特性&#xff0c;它允许我们在测试函数中注入数据或状态&#xff0c;以便进行测试。而参数化则是fixture的一个特性&#xff0c;它允许我们将不同的数据传递给fixture&#xff0c;从而进行多次测试。 本文将介绍如何在pytest中使…...

Linux上常用网络操作

主机名配置 hostname 查看主机名 hostname xxx 修改主机名 重启后无效 如果想要永久生效&#xff0c;可以修改/etc/sysconfig/network文件 IP地址配置 ifconfig 查看(修改)ip地址(重启后无效) ifconfig eth0 192.168.12.22 修改ip地址 如果想要永久生效,修改 /etc/sysco…...

POI:对Excel的基本读操作 整理2

1 简单读取操作 public class ExcelRead {String PATH "D:\\Idea-projects\\POI\\POI_projects";// 读取的一系列方法// ...... } 因为07版本和03版本操作流程大差不差&#xff0c;所以这边就以03版本为例 Testpublic void testRead03() throws IOException {//获取…...

LeetCode每周五题_2024/01/15~01/19

文章目录 82. 删除排序链表中的重复元素 II题目题解 2744. 最大字符串配对数目题目题解 82. 删除排序链表中的重复元素 II 82. 删除排序链表中的重复元素 II 题目 给定一个已排序的链表的头 head &#xff0c; 删除原始链表中所有重复数字的节点&#xff0c;只留下不同的数字…...

免费chartGPT网站汇总

https://s.suolj.com - &#xff08;支持文心、科大讯飞、智谱等国内大语言模型&#xff0c;Midjourney绘画、语音对讲、聊天插件&#xff09;国内可以直连&#xff0c;响应速度很快 很稳定 https://seboai.github.io - 国内可以直连&#xff0c;响应速度很快 很稳定 http://gp…...

【分布式微服务专题】SpringSecurity OAuth2快速入门

目录 前言阅读对象阅读导航前置知识笔记正文一、OAuth2 介绍1.1 使用场景*1.2 基本概念&#xff08;角色&#xff09;1.3 优缺点 二、OAuth2的设计思路2.1 客户端授权模式2.1.0 基本参数说明2.1.1 授权码模式2.1.2 简化&#xff08;隐式&#xff09;模式2.1.3 密码模式2.1.4 客…...

Spring Boot实现国际化

src\main\resources\i18n\messages_zh_CN.properties message.hello你好&#xff0c;世界&#xff01; message.welcome欢迎&#xff01; src/main/resources/i18n/messages_en_US.properties message.helloHello World! message.welcomeWelcome! 默认语言 src\main\resources\…...

面试题之ElasticSearch

面试题之ElasticSearch 1.es的基础知识2. es的集群、节点、分片、副本分片的定义&#xff1f;3. es为什么快&#xff1f;4. 倒排索引的原理是什么&#xff1f;5. es的segment是什么&#xff1f;6. es的分段存储和分段索引的概念及区别&#xff1f;7. 索引相关的问题&#xff1f…...

第10章 通信业务

文章目录 10.1.1 通信行业1、通信行业的界定2、通信行业的特点 10.1.2 通信企业10.1.3 通信终端1、通信终端的分类2、终端发展趋势 10.2.1 通信业务的定义及分类10.2.2 基础电信业务1、第一类基础电信业务A11 固定通信业务A12 蜂窝移动通信业务A13 第一类卫星通信业务A14 第一类…...

c++ 指针的安全问题

指针是一个强大的工具&#xff0c;但它们可能导致多种安全问题。接下来我们一起研究一下会出现的安全问题。欢迎大家补充说明&#xff01;&#xff01;&#xff01; 悬挂指针&#xff08;也称为悬空指针或迷途指针&#xff09; 是指向一块已经释放或无效内存的指针。悬挂指针…...

高质量训练数据助力大语言模型摆脱数据困境 | 景联文科技

目前&#xff0c;大语言模型的发展已经取得了显著的成果&#xff0c;如OpenAI的GPT系列模型、谷歌的BERT模型、百度的文心一言模型等。这些模型在文本生成、问答系统、对话生成、情感分析、摘要生成等方面都表现出了强大的能力&#xff0c;为自然语言处理领域带来了新的突破。 …...

elasticsearch查询

&#xff08;1&#xff09;简单查询 curl -XGET http://127.0.0.1:9201/_search curl -XGET http://127.0.0.1:9201/test231208/_search curl -XGET http://127.0.0.1:9201/test231208/_doc/_search curl -XGET http://127.0.0.1:9201/test231208/_doc/id &#xff08;2&…...

手把手教你从零搭建 MCP Server:AI 连接万物的保姆级实战教程

为什么要学 MCP&#xff1f; 说实话&#xff0c;最近半年 AI 开发圈最火的协议就是 MCP&#xff08;Model Context Protocol&#xff09;了。你可能已经用上了各种 AI 助手&#xff0c;但有没有想过&#xff1a;这些 AI 怎么连接你的数据库&#xff1f;怎么读你的本地文件&…...

毕业论文难写?2026年AI论文平台排行榜权威发布,轻松定稿不是梦!

写论文效率低、熬夜赶稿、查重不过关&#xff1f;别慌&#xff01;2026 年最新 AI 论文写作软件排行榜来了&#xff0c;覆盖选题、大纲、初稿、润色、降重、格式、文献引用全流程&#xff0c;帮你精准匹配最适合的学术助手&#xff0c;彻底告别论文内耗&#xff01;&#x1f3c…...

DeepSeek-R1 vs Qwen2.5 vs Claude-3:17项硬指标对比,谁才是2024高性价比AI模型黑马?

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;DeepSeek性价比优势分析 DeepSeek 系列模型&#xff08;如 DeepSeek-V2、DeepSeek-Coder、DeepSeek-MoE&#xff09;在开源大模型生态中展现出显著的性价比优势&#xff0c;尤其在推理效率、训练成本与下游任务…...

VIVE Focus3 Unity开发避坑指南:JDK11.0.22与Wave SDK 4.2集成要点

1. 这不是SDK安装教程&#xff0c;而是新手在Focus3上摔的前七跤Unity新手刚拿到VIVE Focus3设备&#xff0c;满心欢喜点开VIVE Developer Portal下载SDK 4.2&#xff0c;解压、导入、Build、Run——然后卡在黑屏、报错、手势没反应、手柄漂移、甚至Unity编辑器直接崩溃。我带过…...

3分钟搞定B站缓存:这款神器让视频转换超简单

3分钟搞定B站缓存&#xff1a;这款神器让视频转换超简单 【免费下载链接】m4s-converter 一个跨平台小工具&#xff0c;将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 你是否曾为B站视频下架而焦虑&#xff1…...

如何为你的推特内容创作工具配置Taotoken大模型API

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 如何为你的推特内容创作工具配置Taotoken大模型API 假设你是一名社交媒体运营者&#xff0c;正在使用或开发一个自动生成推特文案的…...

yolo26 语义分割特征融合:全网首发--使用 ERM 模块改进 Neck 多尺度特征融合能力 ✨

1. 工程简介 🚀 本工程基于 Ultralytics 框架扩展,面向语义分割与 YOLO 系列模型改进实验。核心特点是通过切换 yaml 配置文件,即可快速完成不同网络结构的训练、对比与验证,无需为每个模型单独编写训练脚本。 当前已支持的主要模型家族 🧩 语义分割模型:UNet、UNet+…...

Go语言表单处理与文件上传实战

Go语言表单处理与文件上传实战 引言 表单处理和文件上传是Web开发中的常见需求。本文将深入探讨Go语言中表单处理的最佳实践&#xff0c;包括表单验证、文件上传、安全处理等方面。 一、表单处理基础 1.1 获取表单数据 func HandleForm(w http.ResponseWriter, r *http.Request…...

量子噪声环境下资源恢复实验与NISQ计算优化

1. 量子噪声环境下的资源恢复实验概述在当前的含噪声中等规模量子&#xff08;NISQ&#xff09;计算时代&#xff0c;量子硬件面临的最大挑战之一是如何在存在显著噪声的情况下保持量子态的相干性和有用性。我们设计了一系列实验来探究噪声对量子资源&#xff08;如纠缠和魔法态…...

python智能AI技术的中药材店铺管理系统 中药材网上商城系统 46n363df

目录同行可拿货,招校园代理 ,本人源头供货商项目概述核心功能技术栈部署与扩展适用场景项目技术支持获取博主联系方式 源码获取详细视频演示 &#xff1a;同行可合作点击我获取源码->获取博主联系方式->进我个人主页-->同行可拿货,招校园代理 ,本人源头供货商 项目概…...