内容更丰富,玩法更新颖

源码如下

#include<bits/stdc++.h>
#include<conio.h>
#include<windows.h>
using namespace std;
void Color(int a)
{if(a==0) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);if(a==1) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN|FOREGROUND_BLUE);if(a==2) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN);if(a==3) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_BLUE);if(a==4) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);if(a==5) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN);if(a==7) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_BLUE|FOREGROUND_GREEN);if(a==8) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|BACKGROUND_RED);
}
void Setpos(int x,int y){COORD pos;pos.X=y*2,pos.Y=x;SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);}
int R[5];
void SlowDisplay(int x,char *p){while(1){if(*p!=0) printf("%c",*p++);else break;Sleep(x);}}
struct xg{int xgx,xgy;bool fx,sw=0; }xg[21];
int ys=0,hd=0,sj=0,sl=0,mg=0,hp=0,hss=0,hsx=0,jt=0,s=0;
char ch[35][35];
char ch1[35][35]={"", "      #####     #####  ########"," #&##       ###       ###      ","      #### #    ## ####   #### ","  ### ##   # ####!      ##     ","  ###&   ###   +##  ###### ####"," ######&############!        ##"," #  *#      !  ######### ###-##"," # ### #####             #     "," # ###*#   ############### ### "," # ###&###                 ####"," #      #  # ##-############## "," ######   #####!               "," #+     #  ###### ############ ", " ##&########## ### ### ### ##  "," #                   !      ! #","   ############################","  #       ! #       ! #       #","    #     !   #     !   ####   "," #&########################### "," )                             ",};
char ch2[35][35]={""," ##############################"," #*                           #"," ########&###################-#"," #                          # #"," # # ################&#####-# #"," # # #               !   +# # #"," # # # ##&############### # # #"," # # # #                # # # #"," # # # # ###########&## # # # #"," # # # # #)- !        # # # & #"," # # # # ###      !   # # # # #", " # # # ##########&####### # # #"," # # #              !       # #"," # # ##################&##### #"," # #       !               *# #"," # #####&####### ############ #"," #     !       # #   !        #"," # ############# ###########  #"," #              !             #"," ##############################", };
char ch3[31][33]={""," ##############################"," #.          +               .#"," #                      !     #"," #      +     !               #"," #                            #"," #          ! +               #"," #     !               +    ! #"," #                  +         #"," #           +          !     #", " #  +                      !  #"," #      !           +         #"," #+           _____           #"," #           |_ _ _|     +    #"," #     +     |_|||_|          #"," #        +  |MMMMM|         !#"," #           |WWWWW|          #"," #!          |_____|          #"," #                      !     #"," #.        +                 .#"," ##############################", };
char ch4[35][35]={"","         ###*###       ########","     ###!      # ##### #     *#"," ###&#+####### # #   # # ######"," #          !# # #-# # # #    #"," ###&#######     # #   # # ## #","           ####### ##### # ## #","  ####&###        !  !  !# ## #","  #       ################ ## #","    ###             !!     ##  "," #### ##&##################### "," #                !         !# "," #-############&######### #&## "," #-#ooooooooooo   o     # #*## "," o ooo   o   o  o o ooo # #### "," o   o o   o   oo o   o #      "," ooo o ooooooo oo ooo o #######"," ooo o o   o   oo     o       #"," ooo   o o o*oooooooooooooooo-#"," ooooooo o oo   o   o   o   o #"," )       o    o   o   o   o   #",};
char ch5[35][35]={"","  oooo     oooooooooooooooooooo","       ooo    o   oo+oo   o   o"," ooooooo*oooo !   o   ! o   o o"," o          o  o    o   o   o o"," oooooooooo ooooooooooooooooo o"," o     !       !              o"," oooooooo ooooooooooooooooooooo"," oooooooo ooooooooooooooooooooo", " o              !             o"," o^^^^^^^^^^^^^^^^^^^^^^^^^^^^o"," o    !   !   !   !   !       o"," o^^^^^^^^^^^^^^^^^^^^^^^^^^^^o"," o^*^! !^! !^!  ^^! +^! !^! *^o"," o^^^^^^^^^^^^^^^^^^^^^^^^^^^^o"," o   !   !   !   !   !        o"," #^^^^^^^^^^^^^^^^^^^^^^^^^^^^#"," #                 !          #"," ####oooooooooo--oooooooooooo##"," ########oooooo--ooooooo#######"," ###########ooo))oooo##########", };
char ch6[35][35]={""," oooooooooooooo .oooooooooooooo"," o+oooooooooooo  oooooooooooo+o"," ooooooooooooo#  #ooooooooooooo"," oooooooooooo#^^^^#oooooooooooo"," oooo*oooooo#^    ^#oooooo*oooo"," oooooooooo# ^    ^ #oooooooooo"," ooooooooo#  ^    ^  #ooooooooo"," oooooooo#^^^^^^^^^^^^#oooooooo"," ooooooo#^   ^#--#^   ^#ooooooo"," .       ^   ^-NO-^   ^         ","         ^   ^-IP-^   ^       ."," ooooooo#^   ^#--#^   ^#ooooooo"," oooooooo#^^^^^^^^^^^^#oooooooo"," ooooooooo#  ^    ^  #ooooooooo"," oooooooooo# ^    ^ #oooooooooo"," oooo*oooooo#^    ^#oooooo*oooo"," oooooooooooo#^^^^#oooooooooooo"," ooooooooooooo#  #ooooooooooooo"," o+oooooooooooo  oooooooooooo+o"," oooooooooooooo. oooooooooooooo",};
void map1(int x,int y,int k){for(int i=1;i<=20;++i)for(int j=1;j<=30;++j){bool f=1;for (int l=1;l<=k;++l)if (xg[l].xgx==i&&xg[l].xgy==j&&xg[l].sw==0) {Setpos(i,j);Color(4),cout<<"▼";f=0;break;}if (f==1){Setpos(i,j);if (i==x&&j==y) Color(1),cout<<"●";else if (ch[i][j]=='#'||ch[i][j]=='&') Color(7),cout<<"■";else if (ch[i][j]==')') Color(5),cout<<"☆";else if (ch[i][j]=='*') Color(5),cout<<"♂";else if (ch[i][j]=='-') Color(3),cout<<"▋"; else if (ch[i][j]=='+') Color(2),cout<<"◆";else if (ch[i][j]=='.') Color(1),cout<<"◆";else if (ch[i][j]=='o') Color(8),cout<<"~ "; else if (ch[i][j]=='_') Color(3),cout<<"▁";else if (ch[i][j]=='^') Color(3),cout<<"▲";else if (ch[i][j]=='|') Color(3),cout<<"|";else if (ch[i][j]=='M') Color(3),cout<<'M'<<'M';else if (ch[i][j]=='W') Color(3),cout<<'W'<<'W';else if (ch[i][j]=='N') Color(2),cout<<"NO";else if (ch[i][j]=='I') Color(2),cout<<"..";else if (ch[i][j]=='O') Color(2),cout<<"I!";else if (ch[i][j]=='P') Color(2),cout<<".P";else Color(0),cout<<"  ";}}Setpos(21,3);Color(5),cout<<"["<<ys<<" ♂]      ",Color(2),cout<<"["<<hd<<" ◆]";
}
int yx(int a)
{int k=0,T=0,x,y,boss=0,win=0;ys=0,hd=0,sj=0;system("cls");
if(a==1) {for(int i=0;i<35;i++)for(int j=0;j<35;j++) ch[i][j]=ch1[i][j];x=1,y=1;}
if(a==2) {for(int i=0;i<35;i++)for(int j=0;j<35;j++) ch[i][j]=ch2[i][j];x=2,y=29;}
if(a==3) {for(int i=0;i<35;i++)for(int j=0;j<35;j++) ch[i][j]=ch3[i][j];x=10,y=15;boss=1;}
if(a==4) {for(int i=0;i<35;i++)for(int j=0;j<35;j++) ch[i][j]=ch4[i][j];x=1,y=1;}
if(a==5) {for(int i=0;i<35;i++)for(int j=0;j<35;j++) ch[i][j]=ch5[i][j];x=1,y=1;}
if(a==6) {for(int i=0;i<35;i++)for(int j=0;j<35;j++) ch[i][j]=ch6[i][j];x=1,y=15;boss=2;}if(boss==1){for (int i=1;i<=200;++i) {int xx=rand()%21,yy=rand()%31;if ((xx!=x||yy!=y)&&ch[xx][yy]!='_'&&ch[xx][yy]!='W'&&ch[xx][yy]!='|'&&ch[xx][yy]!='M'&&ch[xx][yy]!='.') ch[xx][yy]='o';}map1(x,y,k);} for(int i=1;i<35;++i)for(int j=1;j<35;++j) if (ch[i][j]=='!')k++,xg[k].xgx=i,xg[k].xgy=j,ch[i][j]=' ';map1(x,y,k);while (1)
{T++;Setpos(x,y),cout<<"  ";if(GetAsyncKeyState(VK_UP)&0x8000&&x!=1&&ch[x-1][y]!='#') x--;else if(GetAsyncKeyState(VK_DOWN)&0x8000&&x!=20&&ch[x+1][y]!='#') x++;else if(GetAsyncKeyState(VK_LEFT)&0x8000&&y!=1&&ch[x][y-1]!='#') y--;else if(GetAsyncKeyState(VK_RIGHT)&0x8000&&y!=30&&ch[x][y+1]!='#') y++;Setpos(x,y),Color(1),cout<<"●";if(boss!=0&&T%20==5){for (int i=1;i<=20;++i)for (int j=1;j<=30;++j)if (ch[i][j]=='o') ch[i][j]=' ';for (int i=1;i<=200*boss;++i) {int xx=rand()%21,yy=rand()%31;if ((xx!=x||yy!=y)&&ch[xx][yy]==' ') ch[xx][yy]='o';}map1(x,y,k);} if(T%20==0) map1(x,y,k);if(T%20==10){for(int i=1;i<35;++i)for(int j=1;j<35;++j) if(ch[i][j]=='^')Setpos(i,j),cout<<"  ";}if(T%4==0&&k!=0)for (int i=1;i<=k;i++){if (xg[i].fx==0&&(ch[xg[i].xgx][xg[i].xgy+1]==' '||(ch[xg[i].xgx][xg[i].xgy-1]=='^'&&T%20>=10))&&xg[i].xgy!=30)     Setpos(xg[i].xgx,xg[i].xgy),cout<<"  ",xg[i].xgy++,Setpos(xg[i].xgx,xg[i].xgy),Color(4),cout<<"▼";else if (xg[i].fx==1&&(ch[xg[i].xgx][xg[i].xgy-1]==' '||(ch[xg[i].xgx][xg[i].xgy-1]=='^'&&T%20>=10))&&xg[i].xgy!=1) Setpos(xg[i].xgx,xg[i].xgy),cout<<"  ",xg[i].xgy--,Setpos(xg[i].xgx,xg[i].xgy),Color(4),cout<<"▼";else if (xg[i].fx==1) xg[i].fx=0;else xg[i].fx=1;}for (int i=1;i<=k;i++){if (xg[i].xgx==x&&xg[i].xgy==y&&xg[i].sw==0&&hd==0) {system("cls");cout<<"怪物啊!!!";Sleep(2000);system("cls");return 0;}else if (xg[i].xgx==x&&xg[i].xgy==y&&hd>0&&xg[i].sw==0) {system("cls");cout<<"护盾保护了你!";Sleep(1000);system("cls");map1(x,y,k);hd--;xg[i].sw=1;}}if (ch[x][y]==')') {system("cls");cout<<"You Win!";Sleep(2000);system("cls");win=1;}if (ch[x][y]=='*') {system("cls");cout<<"你找到了钥匙!";ys++;Sleep(1000);system("cls");map1(x,y,k);ch[x][y]=' ';} if (ch[x][y]=='.') {system("cls");cout<<"你破坏了水晶!";sj++;Sleep(1000);system("cls");map1(x,y,k);ch[x][y]=' ';}if (ch[x][y]=='-'&&ys>0) {system("cls");cout<<"门开了!";ys--;Sleep(1000);system("cls");map1(x,y,k);ch[x][y]=' ';}else if (ch[x][y]=='-') {system("cls");cout<<"你没有钥匙!";--x;Sleep(3000);system("cls");map1(x,y,k);}if (ch[x][y]=='+') {system("cls");cout<<"你找到了护盾!";hd++;Sleep(1000);system("cls");map1(x,y,k);ch[x][y]=' ';}if (ch[x][y]=='o'&&hd==0) {system("cls");cout<<"烫死啦!!!";Sleep(2000);return 0;} else if (hd>0&&ch[x][y]=='o') {system("cls");cout<<"护盾保护了你!";ch[x][y]=' ';hd--;Sleep(1000);system("cls");map1(x,y,k);} if (ch[x][y]=='^'&&T%20<10&&hd==0) {system("cls");cout<<"被刺穿啦!!!";Sleep(2000);return 0;} else if (hd>0&&ch[x][y]=='^'&&T%20<10) {system("cls");cout<<"护盾保护了你!";ch[x][y]=' ';hd--;Sleep(1000);system("cls");map1(x,y,k);} if ((a==3||a==6)&&sj==4)   {system("cls");cout<<"You Win!";Sleep(2000);system("cls");win=1;}for (int i=1;i<=k;i++)if (xg[i].xgx==x&&xg[i].xgy==y&&xg[i].sw==0&&hd==0) {system("cls");cout<<"怪物啊!!!";Sleep(1000);system("cls");return 0;}else if (xg[i].xgx==x&&xg[i].xgy==y&&hd>0&&xg[i].sw==0) {system("cls");cout<<"护盾保护了你!";Sleep(1000);system("cls");map1(x,y,k);map1(x,y,k);hd--;xg[i].sw=1;}if(win==1){if(a==1)sl=1;if(a==2)mg=1;if(a==3)hp=1;if(a==4)hss=1;if(a==5)hsx=1;return 0;}
Sleep(100);
}}
void ml(){while(1){system("cls");Color(0); cout<<"1、迷雾森林   ";cout<<endl;if (sl==0) cout<<"2、 ? ? ? ?   ";else cout<<"2、巨石迷宫(图中如果走可穿透墙,能避开所有的怪)   "; cout<<endl;if (mg==0) cout<<"3、 ? ? ? ?   ";else cout<<"3、熔岩喷泉(BOSS,图中随机出现熔岩)   ";cout<<endl;if (hp==0) cout<<"4、 ? ? ? ?   ";else cout<<"4、火山口(上)   ";cout<<endl;if (hss==0) cout<<"5、 ? ? ? ?   ";else cout<<"5、火山口(下)   ";cout<<endl;if (hsx==0) cout<<"6、 ? ? ? ?   ";else cout<<"6、火山祭坛(BOSS)";cout<<endl;cout<<"选择关卡(序号)"<<endl;cout<<"退出输入0"<<endl;int a;cin>>a;if (a==1) {yx(1);}if (a==2&&sl==1){yx(2);}if (a==3&&mg==1) {yx(3);}if (a==4&&hp==1) {yx(4);}if (a==5&&hss==1){yx(5);}if (a==6&&hsx==1){yx(6);}if (a==0) return;
}}
void gz() {system("cls");cout<<"由上下左右键控制"<<endl;cout<<"●是你"<<endl;cout<<"■是墙"<<endl;cout<<"☆是终点"<<endl;cout<<"▼是小怪(只会左右移动)"<<endl;cout<<"▋是门"<<endl;cout<<"♂是钥匙"<<endl;cout<<"◆是护盾(不可杀怪)"<<endl;cout<<"■是可穿透墙(每一关几乎都有)"<<endl; cout<<"◆是水晶(BOSS关破坏所有水晶通关)"<<endl;cout<<"~ 是熔岩"<<endl; cout<<"▁是尖刺(未升起)"<<endl;cout<<"▲是尖刺(升起)"<<endl;cout<<"输入1开始!"<<endl;int a;cin>>a;if (a==1) ml();else gz();
}
int main(){ CONSOLE_CURSOR_INFO cursor_info={1,0};SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&cursor_info);srand((unsigned)time(NULL));cout<<"欢迎来到超级迷宫!"<<endl;cout<<"1、开始!"<<endl;cout<<"2、规则..."<<endl;int a;cin>>a;if (a==1){system("cls");ml();}else if (a==2){gz();}return 0;
}

C++不一样的迷宫游戏相关推荐

  1. c语言课程设计走迷宫游戏,C语言课程设计-迷宫游戏.doc

    计算机技术基础课程设计 C语言 设计报告 题目:完整的二维迷宫游戏 学院:工商管理学院 专业:信息系统与信息管理 班级:050507 姓名:孙月 指导教师:张首伟 设计日期:2004年12月10日 题 ...

  2. 用webgl打造自己的3D迷宫游戏

    用webgl打造自己的3D迷宫游戏 2016/09/19 · JavaScript · WebGL 原文出处: AlloyTeam    背景:前段时间自己居然迷路了,有感而发就想到写一个可以让人迷路 ...

  3. 迷宫游戏c语言代码讲解,迷宫游戏C语言代码讲解.doc

    /*迷宫游戏 by CDQ*//*vc++ 6.0 编译成功本程序参照网上一个特殊算法随机生成迷宫该算法优点:效率高,从入口到出口只有唯一路径,入口出口自己设定该算法缺点:宽度高度都必须为奇数,只能生 ...

  4. matlab 邻近度 离群点_MATLAB自制迷宫游戏,快来试试吧!

    前几天给大家介绍了"一行matlab代码可以做哪些匪夷所思的事情",今天小编带给大家一款酷炫的私人订制版迷宫游戏.这款迷宫游戏包含以下功能: 随机生成迷宫地图 通过键盘手动求解生成 ...

  5. c语言八个方向迷宫课程设计,【精品资料最新版】C语言课程设计-迷宫游戏.doc...

    计算机技术基础课程设计 C语言 设计报告 题目:完整的二维迷宫游戏 学院:工商管理学院 专业:信息系统与信息管理 班级:050507 姓名:孙月 指导教师:张首伟 设计日期:2004年12月10日 题 ...

  6. JavaScript学习笔记:迷宫游戏

    文章目录 一.游戏运行效果 二.实现步骤 1.在HBuilder里创建项目MazeGame,添加maze.html 2.在脚本里创建迷宫数组用于设置单元格顶边与右边 3.在body里绘制迷宫 4.设置 ...

  7. c语言大作业走迷宫,基于C语言实现简单的走迷宫游戏

    本文实例讲述了C语言实现简单的走迷宫游戏的方法,代码完整,便于读者理解. 学数据结构时用"栈"写的一个走迷宫程序,实际上用到双向队列,方便在运行完毕后输出经过的点. #includ ...

  8. 递归走迷宫java,java递归实现的迷宫游戏

    java递归实现的迷宫游戏 public class Migong { private int gard[][]={  {1,1,1,1,0,1,1,1}, {0,0,0,1,1,1,1,1}, {1 ...

  9. 小红书:笔试题(棋盘最短路径,笔记本草稿栈,迷宫游戏)

    1. 棋盘最短路径问题 题目描述: 题目描述: 假设以一个n*m的矩阵作为棋盘,每个棋位对应一个二维坐标 (x, y).你有一颗棋子位于左上起点(0, 0),现在需要将其移动到右下底角 (n-1, m ...

  10. c语言迷宫求解毕业设计,毕业设计(论文)-基于Windows平台C语言实现迷宫游戏的设计.doc...

    基于Windows平台C语言实现迷宫游戏的设计 摘 要 随着科技的日益发展,计算机信息知识越来越被人们所认知和使用,在当今知识爆炸的时代计算机毫无疑问成为人们常用的日常工具,而Windows和C语言都 ...

最新文章

  1. sqlserver2008r2表复制原表_SQL Server 2008 R2 主从数据库同步
  2. 关于文件导出(下载)功能不兼容IE浏览器的解决方案
  3. go string 去除引号_一起攻克面试难关:Go 面试每天一篇(第 71 天)
  4. C语言封装带省略参数的函数,C与C++的函数声明中省略参数的不同意义
  5. html td显示隐藏,显示/隐藏Html TR/TD
  6. C语言深度剖析书籍学习记录 第七章 文件结构
  7. php factory interface,PHP设计模式之工厂方法*解读
  8. mvc跳转html,ASP.NET MVC页面重定向简单介绍
  9. 计算机显微视觉相关概念,机器视觉的概念及常见应用
  10. IOS发布APP Store
  11. 并联串联混合的电压和电流_如何正确地把锂电池串联和并联起来
  12. css修改文字竖排还是横排
  13. windows winrar 指令_WinRAR的命令行模式用法介绍
  14. Vmware中桥接无法获取IP
  15. osm数据下载 python_批量下载osm的分区域的osm文件
  16. 换服务器要重新百度站长验证站点吗6,百度站长工具教程一:如何使用百度站长平台验证网站 – 陆琳玲SEO博客...
  17. 狗狗叫c语言,原来狗狗“呜呜叫”有这些含义,主人:我总算看透它了
  18. 四川成都攻防大赛技术细节
  19. 如何才能够有效长高?避免走弯路
  20. 圆上任意四点在同一个半圆上的概率

热门文章

  1. 5-Elasticsearch分词器
  2. QQ登陆获取用户信息
  3. CentOS安装Sonarqube9
  4. 浙江大学公共管理硕士(MPA)的选修课都有哪些哪些内容?
  5. devops能力成熟度模型
  6. 获取当前薪水第二多的员工的emp_no以及其对应的薪水
  7. 结对编程_结对编程的利与弊
  8. 联诚发(LCF)探底小间距,精致要到底
  9. mysql smallint范围_mysql中的int smallint 取值范围
  10. 直播回顾:如何基于Linux内核构建起商用密码基础设施?| 龙蜥技术