纯c++简易的迷宫小游戏
一个用c++写的黑框框迷宫
适合新手入门学习
也适合大学生小作业
下面附上代码
总体思路
- 初始化游戏界面:设置迷宫的大小(WIDTH和HEIGH),生成迷宫地图(map),包括墙壁、空地、起点和终点。
- 显示欢迎界面和游戏规则:通过Welcome()函数和Rule()函数分别实现。
- 开始计时:记录游戏开始的时间。
- 游戏主循环:在Play()函数中,不断获取用户输入(上下左右键),根据输入移动角色,直到到达出口或超时。
- 判断游戏结果:如果角色成功走出迷宫且在规定时间内,显示恭喜信息;否则,提示用户失败并关机。
特点
用随机数来随机生成地图,增加了趣味性,可以不断切换地图(当然可能存在某个地图走不通的情况,这时候就要及时切换地图)
设置了关机程序(如果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写的黑框框迷宫 适合新手入门学习 也适合大学生小作业 下面附上代码 总体思路 初始化游戏界面:设置迷宫的大小(WIDTH和HEIGH),生成迷宫地图(map),包括墙壁、空地、起点和终点。显示…...
基于python舆情分析可视化系统+情感分析+爬虫+机器学习(源码)✅
大数据毕业设计:Python招聘数据采集分析可视化系统✅ 毕业设计:2023-2024年计算机专业毕业设计选题汇总(建议收藏) 毕业设计:2023-2024年最新最全计算机专业毕设选题推荐汇总 🍅感兴趣的可以先收藏起来&…...
2024年1月16日Arxiv热门NLP大模型论文:Multi-Candidate Speculative Decoding
大幅提速NLP任务,无需牺牲准确性!南京大学提出新算法,大幅提升AI文本生成效率飞跃 引言:探索大型语言模型的高效文本生成 在自然语言处理(NLP)的领域中,大型语言模型(LLMs…...
AI对决:ChatGPT与文心一言的比较
文章目录 引言ChatGPT与文心一言的比较Chatgpt的看法文心一言的看法Copilot的观点chatgpt4.0的回答 模型的自我评价自我评价 ChatGPT的优势在这里插入图片描述 文心一言的优势AI技术发展趋势总结 引言 在过去的几年里,人工智能(AI)技术取得了…...
uni-app引用矢量库图标
矢量库引用 导入黑色图标 1.生成连接,下载样式 2.导入项目(字体样式) 3.引入css样式 4.替换font-face 5.使用图标(字体图标,只有黑色) 导入彩色图标 1.安装插件 npm install -g iconfont-tools2.…...
Android的setContentView流程
一.Activity里面的mWindow是啥 在ActivityThread的performLaunchActivity方法里面: private Activity performLaunchActivity(ActivityClientRecord r, Intent customIntent) {ActivityInfo aInfo r.activityInfo;if (r.packageInfo null) {r.packageInfo getP…...
【加速排坑】docker设置国内image镜像源
第零步,查看阿里最新的镜像源:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors 第一步:在/etc/docker/daemon.json中添加镜像源 sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-EOF {"registry-m…...
el-table嵌套两层el-dropdown-menu导致样式错乱
问题: 解决方式: <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中,fixture是一种非常有用的特性,它允许我们在测试函数中注入数据或状态,以便进行测试。而参数化则是fixture的一个特性,它允许我们将不同的数据传递给fixture,从而进行多次测试。 本文将介绍如何在pytest中使…...
Linux上常用网络操作
主机名配置 hostname 查看主机名 hostname xxx 修改主机名 重启后无效 如果想要永久生效,可以修改/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版本操作流程大差不差,所以这边就以03版本为例 Testpublic void testRead03() throws IOException {//获取…...
LeetCode每周五题_2024/01/15~01/19
文章目录 82. 删除排序链表中的重复元素 II题目题解 2744. 最大字符串配对数目题目题解 82. 删除排序链表中的重复元素 II 82. 删除排序链表中的重复元素 II 题目 给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字…...
免费chartGPT网站汇总
https://s.suolj.com - (支持文心、科大讯飞、智谱等国内大语言模型,Midjourney绘画、语音对讲、聊天插件)国内可以直连,响应速度很快 很稳定 https://seboai.github.io - 国内可以直连,响应速度很快 很稳定 http://gp…...
【分布式微服务专题】SpringSecurity OAuth2快速入门
目录 前言阅读对象阅读导航前置知识笔记正文一、OAuth2 介绍1.1 使用场景*1.2 基本概念(角色)1.3 优缺点 二、OAuth2的设计思路2.1 客户端授权模式2.1.0 基本参数说明2.1.1 授权码模式2.1.2 简化(隐式)模式2.1.3 密码模式2.1.4 客…...
Spring Boot实现国际化
src\main\resources\i18n\messages_zh_CN.properties message.hello你好,世界! message.welcome欢迎! src/main/resources/i18n/messages_en_US.properties message.helloHello World! message.welcomeWelcome! 默认语言 src\main\resources\…...
面试题之ElasticSearch
面试题之ElasticSearch 1.es的基础知识2. es的集群、节点、分片、副本分片的定义?3. es为什么快?4. 倒排索引的原理是什么?5. es的segment是什么?6. es的分段存储和分段索引的概念及区别?7. 索引相关的问题?…...
第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++ 指针的安全问题
指针是一个强大的工具,但它们可能导致多种安全问题。接下来我们一起研究一下会出现的安全问题。欢迎大家补充说明!!! 悬挂指针(也称为悬空指针或迷途指针) 是指向一块已经释放或无效内存的指针。悬挂指针…...
高质量训练数据助力大语言模型摆脱数据困境 | 景联文科技
目前,大语言模型的发展已经取得了显著的成果,如OpenAI的GPT系列模型、谷歌的BERT模型、百度的文心一言模型等。这些模型在文本生成、问答系统、对话生成、情感分析、摘要生成等方面都表现出了强大的能力,为自然语言处理领域带来了新的突破。 …...
elasticsearch查询
(1)简单查询 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 (2&…...
VSCode调试ARM芯片:一份给硬件工程师的OpenOCD与J-Link配置清单
VSCode调试ARM芯片:一份给硬件工程师的OpenOCD与J-Link配置清单 当硬件工程师第一次将ARM Cortex-M开发板连接到电脑时,最令人沮丧的莫过于看着闪烁的LED却无法窥探芯片内部的运行状态。调试器就像硬件工程师的"听诊器",而VSCode配…...
零基础玩转CosyVoice:3步完成声音克隆,制作专属语音祝福
零基础玩转CosyVoice:3步完成声音克隆,制作专属语音祝福 1. 引言:让声音成为你的专属礼物 你有没有想过,用自己或亲友的声音,生成一段独一无二的语音祝福?比如,用妈妈的声音说“生日快乐”&am…...
Python量化投资数据接口实战指南:通达信数据获取与策略开发全流程
Python量化投资数据接口实战指南:通达信数据获取与策略开发全流程 【免费下载链接】mootdx 通达信数据读取的一个简便使用封装 项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx 在量化投资领域,数据获取的效率与质量直接决定了策略的有…...
ArtiPub AI与Docker集成:构建可扩展的容器化发布系统
ArtiPub AI与Docker集成:构建可扩展的容器化发布系统 【免费下载链接】artipub Article publishing platform that automatically distributes your articles to various media channels 项目地址: https://gitcode.com/gh_mirrors/ar/artipub 在当今快速发展…...
4大价值点:旧设备复活开源工具如何让经典iOS设备重获新生?
4大价值点:旧设备复活开源工具如何让经典iOS设备重获新生? 【免费下载链接】Legacy-iOS-Kit An all-in-one tool to downgrade/restore, save SHSH blobs, and jailbreak legacy iOS devices 项目地址: https://gitcode.com/gh_mirrors/le/Legacy-iOS-…...
PyRadiomics环境配置全攻略:从依赖冲突到稳定运行的系统化解法
PyRadiomics环境配置全攻略:从依赖冲突到稳定运行的系统化解法 【免费下载链接】pyradiomics Open-source python package for the extraction of Radiomics features from 2D and 3D images and binary masks. Support: https://discourse.slicer.org/c/community/…...
Kubernetes资源监控与告警:从指标到行动的完整闭环
Kubernetes资源监控与告警:从指标到行动的完整闭环没有监控的集群就是黑盒,没有告警的监控就是摆设。监控体系架构 一个完整的K8s监控体系包含三个层次: ┌────────────────────────────────────────…...
MidScene:让AI成为你的自动化协作者 副标题:无需编程的多平台智能操作解决方案
MidScene:让AI成为你的自动化协作者 副标题:无需编程的多平台智能操作解决方案 【免费下载链接】midscene Let AI be your browser operator. 项目地址: https://gitcode.com/GitHub_Trending/mid/midscene 在数字化时代,重复性操作和…...
Python+PySpark+Hadoop房价预测系统 房价预测 房源推荐系统 二手房推荐系统 随机森林回归预测模型、链家二手房 可视化大屏
1、项目 介绍 技术栈: Python房价预测分析系统 毕业设计 大屏 爬虫 机器学习 Flask框架、Echarts可视化、requests 爬虫、随机森林回归预测模型、链家二手房2、项目界面 (1)数据可视化大屏(2)房价预测(3&am…...
OptiScaler高效配置全攻略:多显卡上采样技术实用指南
OptiScaler高效配置全攻略:多显卡上采样技术实用指南 【免费下载链接】OptiScaler DLSS replacement for AMD/Intel/Nvidia cards with multiple upscalers (XeSS/FSR2/DLSS) 项目地址: https://gitcode.com/GitHub_Trending/op/OptiScaler OptiScaler是一款…...
