Devc++迷宫小游戏2.0

Posted 饼干369

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Devc++迷宫小游戏2.0相关的知识,希望对你有一定的参考价值。

增加了颜色设置和一张很简单的图

代码:

#include<bits/stdc++.h>
#include<windows.h>
#include<conio.h>
using namespace std;
const long long n=29,jg=25;
string p=" *!|-=.<^>1234567890@$%?&_~";
long long r=1;
char f='y';
void print(string a[n])
{
    system("cls");
    for(long long i=0;i<n;i++)
    cout<<a[i]<<endl;
}
void tc()
{
	system("cls");
	cout<<"\\n\\n\\n\\n\\n                    欢迎下次再玩,拜拜!!!\\n";
	cout<<"                    制作:饼干\\n";
	cout<<"                  (按空格结束)";
	long long ok='\\0';
	while(ok=getch(),ok!=' ');
	system("cls");
	return ;
}
void hf()
{
	char t='\\0';
	while(t!=' ')
	{
		system("cls");
		cout<<"\\n\\n\\n\\n	    			   	A D键换皮肤    空格确定\\n\\n";
		cout<<"\\n\\n\\n\\n						  "<<p[r]<<"\\n";
		t=getch();
		if(t=='a')r--;
		else
		if(t=='d')r++;
		if(r<1)r=jg;
		if(r>jg)r=1;
	}
	system("cls");
	return ;
}
void sm()
{
	system("cls");
	cout<<"\\n\\n		说明:\\n\\n\\n";
	cout<<"					按空格开始游戏后\\n";
	cout<<"					  W\\n";
	cout<<"					A S D\\n";
	cout<<"					移动\\n";
	cout<<"			   		按R键返回起点\\n";
	cout<<"			   		按P键返回主界面\\n";
	cout<<"			   		按Q键设立传送点\\n";
	cout<<"			   		按E键返回传送点\\n";
	cout<<"			   		+号处为终点\\n\\n\\n";
	cout<<"			按空格继续···";
	long long ok='\\0';
	while(ok=getch(),ok!=' ');
	system("cls");
	return ;
}
void hys()
{
	system("cls");
	cout<<"\\n\\n\\n\\n\\n\\n\\n\\n\\n按1【日间色】\\n";
	cout<<"按2【夜间色】\\n";
	cout<<"按3【黑客】\\n";
	cout<<"按4【科幻】\\n";
	cout<<"按5【紫水晶】\\n";
	char s;
	s=getch();
	while(s!='1'&&s!='2'&&s!='3'&&s!='4'&&s!='5')s=getch();
	switch(s-'0')
	{
		case 1:
			system("color f0");
			break;
		case 2:
			system("color 0f");
			break;
		case 3:
			system("color 0a");
			break;
		case 4:
			system("color 09");
			break;
		case 5:
			system("color 01");
			break;
	}
	system("cls");
	return ;
}
int main()
{
	system("color f0");
	while(1)
	{
		long long xx=1,yy=1;
		system("cls");
		f='y';
		cout<<"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n";
		cout<<"                                                      迷宫游戏\\n";
		cout<<"                                                   按空格开始游戏\\n";
		cout<<"                                                    按0退出游戏\\n";
		cout<<"                                                    按1换皮肤\\n";
		cout<<"                                                    按2游戏说明\\n";
		cout<<"                                                    按3换颜色\\n";
		cout<<"\\n\\n\\n\\n\\n\\n\\n";
		cout<<"                                                     制作:饼干";
		long long ok=getch();
		while(ok!='0'&&ok!='1'&&ok!='2'&&ok!=' '&&ok!='3')ok=getch();
		switch(ok)
		{
			case ' ':
				break;
			case '0':
				tc();
				return 0;
				break;
			case '1':
				hf();
				f='n';
				break;
			case '2':
				sm();
				f='n';
				break;
			case '3':
				hys();
				f='n';
				break;
		}
		while(f=='y')
		{
			system("cls");
			string a[n];
		    long long x,y,qx,qy;
		    long long ch;
			srand(time(0));
			long long s=rand()%8+1;
			switch(s)
			{
				case 1:
					qx=1;
					qy=1;
					a[0]="###########";
		    	    a[1]="#   #   # #";
		    	    a[2]="# #   #   #";
					a[3]="# ##### ###";
					a[4]="# #   ###+#";
					a[5]="#   #     #";
					a[6]="###########";
		    		break;
		    	case 2:
					qx=8;
					qy=12;
					a[0]="####################";
					a[1]="#+   #       #     #";
					a[2]="# ##   #### ###  # #";
					a[3]="#  ####      ##### #";
					a[4]="###   # # ##       #";
					a[5]="##### ########## # #";
					a[6]="#     ## ###   ##  #";
					a[7]="## ###   ### # ## ##";
					a[8]="#      #     #     #";
					a[9]="####################";
					break;
				case 3:
					qx=1;
					qy=1; 
					a[0]="###################";
					a[1]="# #   #   #   #   #";
					a[2]="# # # # # # # # # #";
					a[3]="# # # # # # # # # #";
					a[4]="# # # # # # # # # #";
					a[5]="# # # # # # # # # #";
					a[6]="# # # # # # # # # #";
					a[7]="# # # # # # # # # #";
					a[8]="# # # # # # # # # #";
					a[9]="# # # # # # # # # #";
				   a[10]="#   #   #   #   #+#";
				   a[11]="####################";
					break;
				case 4:
					qx=1;
					qy=1;
					a[0]="########################################";
					a[1]="#                                      #";
					a[2]="# #################################### #";
					a[3]="# #                                  # #";
					a[4]="# # ###################### ##### #######";
					a[5]="# # #+        #     #    # ###         #";
					a[6]="# # # # # ######### # #### ##  #### ## #";
					a[7]="# # # # # ##        #      ## ##  #  # #";
					a[8]="# # # ### ## # # ########### ##  ##  # #";
					a[9]="# # # # #    # # # #        #    #   # #";
				   a[10]="# # ### ###### ### # ######## ##### ## #";
				   a[11]="# # # #            #              #  # #";
				   a[12]="# # # ######## ############## #####  # #";
				   a[13]="# # #                                # #";
				   a[14]="# # ################################## #";
				   a[15]="# #                                  # #";
				   a[16]="# #################################### #";
				   a[17]="#                                      #";
				   a[18]="########################################";
				    break;
				case 5:
					qx=1;
					qy=1;
					a[0]="########################################";
					a[1]="#                      #               #";
					a[2]="# ########### ################# ###### #";
					a[3]="# #         # #               # ##   # #";
					a[4]="# # # #### ## # ## # #### ##### ## # # #";
					a[5]="# # # #       #  # #    #        # # # #";
					a[6]="# # #  #### ###### ############### #   #";
					a[7]="# # ##    #      # #               # # #";
					a[8]="# #  #### ######## ################# # #";
					a[9]="# ##    #      # # #       #####   # # #";
				   a[10]="#   ########## #   #       #     ### # #";
				   a[11]="###     #        # #       # ##### # # #";
				   a[12]="#   ######################## #     # # #";
				   a[13]="# # #                        # ## #  ###";
				   a[14]="# ### #### ####### ########### #### ## #";
				   a[15]="#     #    #                      #   +#";
				   a[16]="########################################";
					break;
				case 6:
					qx=1;
					qy=1;
					a[0]="##################################################################################################################";
					a[1]="#                                                                                                                #";
					a[2]="# # ############################################################################################################ #";
					a[3]="# #  ###       #############                                                                           ###       #";
					a[4]="# ##  ## ######           +# ######################################################################### # # ### # #";
					a[5]="# ###  # ################### # # # # #                                                               # # # #   # #";
					a[6]="# ####           #                     ############################################################# # #   # # # #";
					a[7]="# #####################################         ##################                               ##  # ##### # # #";
					a[8]="# ######                                # #####   ##########       + ########################### ## ##       # # #";
					a[9]="# #      ######### ############## ###### #     ##          # #####################     ############  ######### # #";
				   a[10]="# # #####        # ######       #        # #######  ######## #                     ###                       # # #";
				   a[11]="# #     # ###### # ####   ##### ##########       # #         # ##### ##############   ###################### # ###";
				   a[12]="# ##### # #   ## # #### ##            #    ##### ############# #######              #     #                  # # #";
				   a[13]="# #   # #   # ## # ##   #  ############ ## #   # #        #            ############# ###### ################ # # #";
				   a[14]="# # # # ##### ## # ## ##  #   #   #   # ##   # # # ###### # ######### #              #############  ######## ### #";
				   a[15]="# # # #       ## # #  #     #   #   #   #####  #       #  # #         ###############             #            # #";
				   a[16]="# ### ########## # # #################################### # #####################################  ############# #";
				   a[17]="# #              #       ##                               #                                   ####               #";
				   a[18]="# # ####################### ################################################################# ################## #";
				   a[19]="#                         #  #                                                                                  +#";
				   a[20]="##################################################################################################################";
					break;
				case 7:
					qx=1;
					qy=1;
					a[0]="#############################################################";
					a[1]="# ###+#                                                   #+#";
					a[2]="# #  ###### ##############################################  #";
					a[3]="# # # #   # #                                             ###";
					a[4]="# # # # # #   # ########################################### #";
					a[5]="# # # # # ##### #                                           #";
					a[6]="# # # # #       # ######################################### #";
					a[7]="# # # # #########                                         # #";
					a[8]="# # # # ################################################  # #";
					a[9]="# # # # #+++++++++++++++++++++++++++++++++++++++++++++++### #";
				   a[10]="# # # # #+++++++++++++++++++++++++++++++++++++++++++++++  # #";
				   a[11]="# # # # #+++++++++++++++++++++++++++++++++++++++++++++++# # #";
				   a[12]="# # # # ################################### ############# # #";
				   a[13]="# # # # #                                  #           ## # #";
				   a[14]="# # # # # ##### ################# ####################    # #";
				   a[15]="# # # # # #  ## #               # #   #   #   #   #   ### # #";
				   a[16]="# # # # # #+#   # ############# # # #   #   #   #   #     # #";
				   a[17]="# # # # # #######  #   #   #  # # # ####################### #";
				   a[18]="# # #+# #            #   #  #+# #      #################### #";
				   a[19]="# # ### ####################### ########################### #";
				   a[20]="#                                                           #";
				   a[21]="#############################################################";
				   break;
				case 8:
					qx=1;
					qy=1;
					a[0]="##########################";
					a[1]="#                        #";
					a[2]="# ###################### #";
					a[3]="# #+   #   #   #   #   # #";
					a[4]="#  #   #+#   #   #   #   #";
					a[5]="##########################";
					break;
			}
			xx=x=qx,yy=y=qy;
			a[x][y]=p[r];
		    print(a);
		    while(a[x][y]!='+')
		    {
		        ch=getch();
		        if(ch=='q')
		        {
		        	xx=x;
		        	yy=y;
				}
				if(ch=='e')
				{
					a[x][y]=' ';
					a[xx][yy]=p[r];
					x=xx;
					y=yy;
				}
		        if(ch=='r')
		        {
		        	a[x][y]=' ';
		        	a[qx][qy]=p[r];
		        	x=qx;
		        	y=qy;
				}
		        if(ch=='p')
		        {
		        	f='n';
		        	break;
				}
		        if((ch=='a'&&a[x][y-1]=='+')||(ch=='d'&&a[x][y+1]=='+')||(ch=='s'&&a[x+1][y]=='+')||(ch=='w'&&a[x-1][y]=='+'))
		        {
		        	break;
				}
		        if(ch==27)break;
		        if(ch==97&&a[x][y-1]==' '||a[x][y-1]=='|')
				{
		            a[x][y]=' ';
		            y--;
		            a[x][y]=p[r];
		        }
		        if(ch==100&&a[x][y+1]==' '||a[x][y+1]=='|')
				{
		            a[x][y]=' ';
		            y++;
		            a[x][y]=p[r];
		        }
		        if(ch==115&&a[x+1][y]==' '||a[x+1][y]=='|')
				{
		            a[x][y]=' ';
		            x++;
		            a[x][y]=p[r];
		        }
		        if(ch==119&&a[x-1][y]==' '||a[x-1][y]=='|')
				{
		            a[x][y]=' ';
		            x--;
		            a[x][y]=p[r];
		        }
		        print(a);
		    }
		    system("cls");
		    if(f=='n')break;
		    cout<<"you win!!!"<<endl;
		    cout<<"按空格继续···";
		    ok='\\0';
		    while(ok=getch(),ok!=' ');
			system("cls");
		    cout<<"是否继续(y/n)";
		    while(f=getch(),f!='y'&&f!='n');
		}
	}
    return 0;
}

以上是关于Devc++迷宫小游戏2.0的主要内容,如果未能解决你的问题,请参考以下文章

C语言之迷宫小游戏2.0版(随机生成地图,可变颜色,优化游戏体验)

C语言之迷宫小游戏2.0版(随机生成地图,可变颜色,优化游戏体验)

C语言之迷宫小游戏2.0版(随机生成地图,可变颜色,优化游戏体验)

帆布迷宫游戏流畅的动画

Devc++战斗1.0

实现简单迷宫小游戏(几行代码)-免费附源码