首页 > 编程语言 >c++走出迷宫改良版2

c++走出迷宫改良版2

时间:2024-09-15 17:21:34浏览次数:9  
标签:改良版 int 迷宫 system c++ xz printf include cls

本文对上期做了删改

话不多说上代码:

注彩色输出部分代码出自博主夜若渊

#include<bits/stdc++.h>
#include<windows.h>
#include<stdlib.h>
#include<cstdio>
#include<iostream>
#include<string>
#include<stdio.h>
#include<ctime>
#include<conio.h>
#include<time.h> 
using namespace std;
void JZ()
{
	system("cls");	
	for(int i=1;i<=100;i++)
	{
		if(i<100)
		{
			printf("数据加载中...\n");
		}
		else
		{
			printf("加载完毕"); 
		}		
		printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n                                                ");
		for(int j=1;j<=50;j++)
		{
			printf("_");
		}
		printf("\n                                               |");
		for(int j=1;j<=i/2;j++)
		{
			printf("▇");															
		}					
		printf("\n                                                                 当前加载进度:%d%\n",i);	
		Sleep(5);		       
		system("cls");				
	}
	system("cls");	
} 
void COLOR_PRINT(const char* s, int color)
{
 HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
 SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | color);
 printf(s);
 SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | 7);
}
//puts("=============================================================================");
/*
0 = 黑色 8 = 灰色
1 = 蓝色 9 = 淡蓝色
2 = 绿色 10 = 淡绿色
3 = 浅绿色 11 = 淡浅绿色
4 = 红色 12 = 淡红色
5 = 紫色 13 = 淡紫色
6 = 黄色 14 = 淡黄色
7 = 白色 15 = 亮白色
*/
//COLOR_PRINT("", );
int x=1,y=1,jbx,jby,dt,g,xz,d,yq=5,js=4,win=0,tgcs=0,tp=0,ywcs=0;
int tg[8];
int nd[8] = {0,1,3,3,1,1,5};
char id; 
//地图数组
int Map[8][10][20] =
{
	{
		{7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7},
		{7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7},
		{7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7},
		{7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7},
		{7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7},
		{7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7},
		{7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7},
		{7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7},
		{7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7},
		{7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7}
	},
	{
		{7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7},
		{7,0,0,0,2,2,2,0,0,0,2,2,2,2,2,2,2,2,2,7},
		{7,0,0,0,2,2,2,0,0,0,2,2,2,2,2,2,2,2,2,7},
		{7,0,0,0,2,2,2,0,0,0,2,2,2,2,2,2,2,2,2,7},
		{7,0,0,0,0,0,0,0,0,0,2,2,2,0,0,0,0,0,0,7},
		{7,0,0,0,0,0,0,0,0,0,2,2,2,0,0,0,0,0,0,7},
		{7,2,2,2,2,2,2,0,0,0,0,0,0,0,0,2,2,0,0,7},
		{7,2,2,2,2,2,2,0,0,0,0,0,0,0,0,2,2,0,0,7},
		{7,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,7},
		{7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7}
	},
	{
		{7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7},
		{7,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,7},
		{7,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,7},
		{7,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,7},
		{7,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,7},
		{7,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,7},
		{7,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,7},
		{7,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,7},
		{7,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,7},
		{7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7}
	},
	{
		{7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7},
		{7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7},
		{7,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,7},
		{7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7},
		{7,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,7},
		{7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7},
		{7,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,7},
		{7,0,0,0,2,2,0,0,0,0,2,2,0,0,0,0,2,2,0,7},
		{7,2,2,0,0,0,0,2,2,1,1,1,1,2,2,0,0,0,0,7},
		{7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7}						
	},
	{
		{7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7},
		{7,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,7},
		{7,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,7},
		{7,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,7},
		{7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7},
		{7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7},
		{7,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,7},
		{7,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,7},
		{7,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,7},
		{7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7}		
	},
	{
		{7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7},
		{7,1,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,7},
		{7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7},
		{7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7},
		{7,1,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,7},
		{7,1,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,7},
		{7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7},
		{7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7},
		{7,1,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,7},
		{7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7}		
	},
	{
		{7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7},
		{7,0,0,0,2,2,2,1,1,1,1,0,1,0,2,1,0,0,2,7},
		{7,0,0,0,2,2,2,0,0,0,2,2,2,1,2,1,2,1,2,7},
		{7,1,1,1,2,2,2,1,1,1,2,2,2,0,2,0,2,0,2,7},
		{7,1,1,1,2,2,2,1,1,1,2,2,2,1,2,1,2,1,2,7},
		{7,1,1,1,2,2,2,1,1,1,2,2,2,1,2,1,2,1,2,7},
		{7,1,1,1,2,2,2,1,1,1,2,2,2,0,2,0,2,0,2,7},
		{7,0,0,0,2,2,2,0,0,0,2,2,2,1,2,1,2,1,2,7},
		{7,1,1,1,1,0,1,1,1,1,2,2,2,1,0,0,2,0,0,7},
		{7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7}		
	},
};
int main()
{
	system("cls"); 
	printf("走迷宫");
	Sleep(2500);
	JZ();	
ZJM: 
system("cls");

while(true)
{
	printf("1.游玩 2.查看地图 3.自定义角色颜色 4.个人主页 5.关于游戏\n"); 
	cin>>xz;
	if(xz==1)
	{
		printf("请输入关卡序号(0-6)\n"); 
		cin>>d;
		if(d==0||d==2||d==4||d==5||d==6)
		{
			jbx=18;
			jby=8;
		}
		if(d==1)
		{
			jbx=18;
			jby=7;
		}
		if(d==3)
		{
			jbx=1;
			jby=7;
		}
		for(int i=0;i<=d;i++)
		{
			if(tg[i]>0)
			{
				tp++;
			}
		}
		if(tp<d)
		{
			printf("前面还有关卡未通过请先通过前面的关卡吧!");
			Sleep(1500);
			goto ZJM; 
		}
		ywcs++; 
		while(true)
		{
			printf("当前关卡编号:%d\n难度:%d\n",d,nd[d]);
			printf("当前氧气值:%d\n",yq); 
			for(int i=0;i<10;i++)
			{
				for(int j=0;j<20;j++)
				{
					if(jbx==x&&jby==y)
					{
						system("cls");
						COLOR_PRINT("恭喜过关", 6);
						Sleep(2000);
						system("cls");
						x=1;
						y=1;
						yq=5;
						tgcs++;
						goto ZJM;						
					}
					if(yq<=0)
					{
						system("cls");
						printf("氧气值过低,你窒息死亡了");
						Sleep(1500);
						system("cls");
						COLOR_PRINT("Game Over", 6);
						Sleep(1500);
						system("cls");
						x=1;
						y=1;
						yq=5;
						goto ZJM;
					}
					if(Map[d][y][x]==2)
					{						
						system("cls");
						printf("你被毒死了");
						Sleep(1500);
						system("cls");
						COLOR_PRINT("Game Over", 6);
						Sleep(1500);
						system("cls");
						x=1;
						y=1;
						yq=5;
						goto ZJM;
					}
					if(i==y&&j==x)
					{
						COLOR_PRINT("█", js);
					}
					else if(i==jby&&j==jbx)
					{
						COLOR_PRINT("█", 6);
					}
					else if(Map[d][i][j]>0)
					{
						COLOR_PRINT("█", Map[d][i][j]);
					}
					else
					{
						printf(" ");
					}
				}
			printf("\n");
			}
			printf("按wasd移动");
			char c = getch();	
			if(c=='w'||c=='W')
			{
				if(y>1)
				{
					y--;
				}				
			}	 
			if(c=='s'||c=='S')
			{
				if(y<8)
				{
					y++;
				}				
			}
			if(c=='a'||c=='A')
			{
				if(x>1)
				{
					x--;
				}				
			}
			if(c=='d'||c=='D')
			{
				if(x<18)
				{
					x++;
				}				
			}
			if(Map[d][y][x]!=1&&yq<5)
			{
				yq++;
			}
			if(Map[d][y][x]==1)
			{
				yq--;
			}
			system("cls");
		}
	}
	if(xz==2)
	{
		printf("请输入要查看的关卡序号(0-6)\n"); 
		cin>>d;
		for(int i=0;i<10;i++)
		{
			for(int j=0;j<20;j++)
			{
				if(Map[d][i][j]>0)
				{
					COLOR_PRINT("█", Map[d][i][j]);
				}
				else
				{
					printf(" ");
				}
			}
		printf("\n");
		}
		system("pause");
		system("cls");
		goto ZJM;
	}
	if(xz==3)
	{	
		printf("请输入颜色编号:(0-15)\n");
		printf("颜色对应编号:\n0 = 黑色 8 = 灰色\n1 = 蓝色 9 = 淡蓝色\n2 = 绿色 10 = 淡绿色\n3 = 浅绿色 11 = 淡浅绿色\n4 = 红色 12 = 淡红色\n5 = 紫色 13 = 淡紫色\n6 = 黄色 14 = 淡黄色\n7 = 白色 15 = 亮白色\n注:不推荐跟地图有关系的颜色。\n");
		cin>>js;
		system("cls");
		goto ZJM;	
	} 
	if(xz==4)
	{
		printf("通关率:%0.2lf%\n游玩次数:%d\n通关次数:%d",1.0*tgcs/ywcs*100,ywcs,tgcs);
		Sleep(3000);
		system("cls");
	}
	if(xz==5)
	{
		printf("本游戏为一个走出迷宫的小游戏碰到黄色终点则获胜,不要碰绿色的毒水\n\n\n作者博客:Add123453388\n");
		system("pause");
		system("cls");
	}
}
}

求求了点个赞吧

标签:改良版,int,迷宫,system,c++,xz,printf,include,cls
From: https://blog.csdn.net/Add123458833/article/details/142286508

相关文章

  • 深入解析C++函数指针:掌握游戏开发中的关键技术
    深入解析C++函数指针:掌握游戏开发中的关键技术C++作为一门经典的编程语言,因其强大的性能和灵活性,被广泛应用于游戏开发。而函数指针作为C++中的一个重要概念,在游戏开发中更是扮演着不可或缺的角色。对于想要深入掌握C++并在游戏开发领域站稳脚跟的开发者来说,理解并灵活运用函数指......
  • C++入门补充语法
    1、C和C++的区别                首先C++是包含C语言的,C语言中的所有语法在C++中都可以应用,因为C语言语法限制过多导致许多东西实现起来不方便,所以C++又制订了一系列的语法来补充C语言的不足。2、命名空间2.1命名空间为什么要使用命名空间,下面我们使用一段......
  • C++资源管理浅谈
    引言:            在计算机编程语言的学习与实践中,自然避免不了与计算机的资源管理打交道。所谓的资源就是,一旦用了它,将来就必须还给系统,如果用户不这么做,那糟糕的事情便会发生。在开始谈及C++的资源管理之前,先来聊聊何为计算机的资源,以及为何要管理计算机的资......
  • 【C++】string类中常用函数的模拟实现
    【C++】string类中常用函数的模拟实现1.string.h2.Text.cpp1.string.h#include<assert.h>namespacewch{ classstring { public: typedefchar*iterator; typedefconstchar*const_iterator; iteratorbegin() { return_str; } itera......
  • C++string容器
    string容器基本概念本质:string是C++风格的字符串,而string本质上是一个类string和char*区别:char*是一个指针string是一个类,类内部封装了char*,管理这个字符串,是一个char*型的容器特点:string类内部封装了很多成员方法例如:查找find,拷贝copy,删除delete替换replac......
  • C++: 二叉树进阶面试题
    做每件事之前都心存诚意,就会事半功倍.目录前言1.根据二叉树创建字符串2.二叉树的层序遍历Ⅰ3.二叉树的层序遍历Ⅱ4.二叉树的最近公共祖先5.二叉搜索树与双向链表6.根据一棵树的前序遍历与中序遍历构造二叉树7.根据一棵树的中序遍历与后序遍历构造二叉树8.二......
  • windows C++ 并行编程-并行容器和对象
    并行模式库(PPL)包括几个容器和对象,这些容器和对象提供对其元素的线程安全访问。并发容器提供对最重要操作的并发安全访问。在这里,并发安全意味着指针或迭代器始终有效。它不保证元素初始化或特定的遍历顺序。这些容器的功能与C++标准库提供的功能类似。例如,concurren......
  • windows C++-并行编程-PPL任务并行(一)
    在并发运行时中,任务是执行特定作业并通常与其他任务并行运行的工作单元。任务可以分解为组织成任务组的其他更细化的任务。编写异步代码,并希望在异步操作完成之后进行某种操作时,可使用任务。例如,可以使用一个任务以异步方式从文件读取,然后使用另一个任务(延续任务,本文档稍后......
  • c++修炼之路之AVL树与红黑树
    目录一:AVL树1.AVL树的概念2.AVL树插入数据后平衡因子及更新的情况3.AVL树节点的定义 4.AVL树的插入及旋转 二:红黑树 1.红黑树的概念及性质2.红黑树节点的定义3.红黑树的插入操作情况 4.红黑树与AVL树的比较 接下来的日子会顺顺利利,万事胜意,生活明朗---------......
  • 南沙C++信奥老师解一本通题: 1161:转进制
    ​ 题目描述】用递归算法将一个十进制数X转换成任意进制数M(M≤16)。【输入】一行两个数,第一个十进制数X,第二个为进制M。【输出】输出结果。【输入样例】3116{将十进制31转化为十六进制数}【输出样例】1F#include<iostream>usingnamespacestd;intx,m;void......