问题标题: 走迷宫代码

0
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;
}

我要回答