增加了许多。
#include<bits/stdc++.h>
 #include<windows.h>
 #include<conio.h>
 using namespace std;
 long long s=1,shengming=20,bushu=0;
 const long long n=60,jg=25;
 bool yaoshi=0;
 string p=" M!|-=.123456789%&_~";
 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<<"                    制作:饼干,修改:AIO\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<<"                    M是你\n";
     cout<<"                       按R键返回起点\n";
     cout<<"                       按P键返回主界面\n";
     cout<<"                       按Q键设立传送点\n";
     cout<<"                       按E键返回传送点\n";
     cout<<"                       +号处为终点\n\n\n";
     cout<<"                       *号处为炸药\n\n\n";
     cout<<"                       #号处为障碍物\n\n\n";
     cout<<"                       ?号处为可清理障碍物\n\n\n";
     cout<<"                       V处为下刺\n\n\n";
     cout<<"                       <处为左刺\n\n\n";
     cout<<"                       >处为右刺\n\n\n";
     cout<<"                       ^处为上刺\n\n\n";
     cout<<"                       @处为钥匙\n\n\n";
     cout<<"                       0处为死地(不可复活且每个普通关只有一个,BOSS关有五个,超级BOSS关有10个以上)\n\n\n";
     cout<<"            按空格继续···";
     long long ok='\0';
     while(ok=getch(),ok!=' ');
     system("cls");
     return ;
 }
 void happyprint(long long a,char b[100000000]){
     int i=0;
     system("cls");
     while(a!=0){
         if(a!=0)
         {
             SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_BLUE);
             cout << b[i];
             a--;
             i++;
         }
         if(a!=0)
         {
                 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN);
             cout << b[i];
             a--;
             i++;
         }
         if(a!=0)
         {
             SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED);
             cout << b[i];
             a--;
             i++;
         }
     }
     system("color 0a");
 }
 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<<"                                                     制作:饼干,修改:AIO";
         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));
             
             switch(s)
             {
                 case 1:
                     if(shengming!=20)
                     {
                         shengming++;
                     }
                     qx=1;
                     qy=1;
                     a[0]="###########";
                     a[1]="#   #   #@#";
                     a[2]="# #   #   #";
                     a[3]="# ##0## ###";
                     a[4]="# #???###+#";
                     a[5]="#???#?????#";
                     a[6]="###########";
                     break;
                 case 2:
                     if(shengming!=20)
                     {
                         shengming++;
                     }
                     qx=8;
                     qy=12;
                     a[0]="####################";
                     a[1]="#+   #       #     #";
                     a[2]="# ##   #### ###  # #";
                     a[3]="#  ####      ##### #";
                     a[4]="###   # # ##       #";
                     a[5]="##### #######V##@# #";
                     a[6]="#     ## ###   <#  #";
                     a[7]="## ###   ### 0 ## ##";
                     a[8]="#      <     #     #";
                     a[9]="####################";
                     break;
                 case 3:
                     if(shengming!=20)
                     {
                         shengming++;
                     }
                     qx=1;
                     qy=1;
                     a[0]="###V###V#V#V###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:
                     if(shengming!=20)
                     {
                         shengming++;
                     }
                     qx=1;
                     qy=1;
                     a[0]="#####################*################V#";
                     a[1]="#                                      #";
                     a[2]="# ###*###################*############ #";
                     a[3]="# #                                  # #";
                     a[4]="# # #####0########*####### ##### ####V*#";
                     a[5]="# # #+        #     #    # ##*         #";
                     a[6]="# # # # # ##*###### # #### ##  #### ## #";
                     a[7]="# # # # # ##        #      ## ##  #  # #";
                     a[8]="# # # ### ## # # ########### ##  ##  # #";
                     a[9]="# # # # #    # # # #       @#    #   # #";
                    a[10]="# # ### ###### ### # ######## ##### ## #";
                    a[11]="# # * #            #              #  # #";
                    a[12]="# # # ######## ############## #####  # #";
                    a[13]="# # >                                # #";
                    a[14]="# # ######*########################### #";
                    a[15]="# #                                  # #";
                    a[16]="# #############V########*#######^##### #";
                    a[17]="#                                      *";
                    a[18]="#*#######################*##############";
                     break;
                 case 5:
                     if(shengming!=20)
                     {
                         shengming++;
                     }
                     qx=1;
                     qy=1;
                     a[0]="########################################";
                     a[1]="#                      #               #";
                     a[2]="# <########## ################# ###### #";
                     a[3]="#           # #               # ##   # #";
                     a[4]="# # # #### ## # ## # #### ##### ## # # #";
                     a[5]="# # # #       #  # #    #        # # # #";
                     a[6]="# # #  #### ###### ############### #   #";
                     a[7]="# # ##    #      # >               # # #";
                     a[8]="# #  #### ######## <^^^^^^^####### # # #";
                     a[9]="#0##    #      0 # < BOSS关VVVV>   # # #";
                    a[10]="#    ######### #   < 危险  >     ### # #";
                    a[11]="###     #        # < 地带 1> ##### # # #";
                    a[12]="#   <#############VVVVVVVVV> #     # # #";
                    a[13]="# # #                        # ## #  ###";
                    a[14]="# ### #### #######  <#######^# #### 0# #";
                    a[15]="#     #    #                      #   +#";
                    a[16]="##################0################0####";
                     break;
                 case 6:
                     if(shengming!=20)
                     {
                         shengming++;
                     }
                     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]="##0##*####################";
                     break;
                 case 7:
                     if(shengming!=20)
                     {
                         shengming++;
                     }
                     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]="# # # # # ##### ###############0# ####################    # #";
                    a[15]="# # # # # #  ## #               # #   #   #   #   #   ### # #";
                    a[16]="# # # # # #+#   # ############# # # #   #   #   #   #     # #";
                    a[17]="# # # # # #######  #   #   #  # # # ####################### #";
                    a[18]="# # #+# #            #   #  #+# #      #################### #";
                    a[19]="# # ### ####################### ########################### #";
                    a[20]="#                                                           #";
                    a[21]="#^###########################################################";
                    break;
                 case 8:
                     if(shengming!=20)
                     {
                         shengming++;
                     }
                     qx=1;
                     qy=1;
                     a[0]="#############################################################";
                     a[1]="# ###                                                     #*#";
                     a[2]="# #   ##### ##############################################  #";
                     a[3]="# # # #   # #                                              0#";
                     a[4]="# # # # # #   # ##########################################  #";
                     a[5]="# # # # # ##### #                                           #";
                     a[6]="# # # # #       # ######################################### #";
                     a[7]="# # # # #########                                         # #";
                     a[8]="# # # # ################################################  # #";
                     a[9]="# # # # #+++++++++++++++++++++_______+++++++++++++++++++### #";
                    a[10]="# # # # #+++++++++++++++++++++|死|地|++++++++++++++++++** # #";
                    a[11]="# # # # #+++++++++++++++++++++|__|__|+++++++++++++++++++# # #";
                    a[12]="# # # # ######################VVVVVVV#################### # #";
                    a[13]="# # # # #                                              ## # #";
                    a[14]="# # # # # ############################################    # #";
                    a[15]="# # # # # #  ##                   #   #   #   #   #   ### # #";
                    a[16]="# # # # # #+#   # ############# #   #   #   #   #   #  +#   #";
                    a[17]="# # # # # ##### ########################################### #";
                    a[18]="#   #   # #####                                            ##";
                    a[19]="#^#^#^#^# ################################################  #";
                    a[20]="#########                                                   *";
                    a[21]="#############################################################";
                     break;
                 case 9:
                     if(shengming!=20)
                     {
                         shengming++;
                     }
                     qx=1;
                     qy=1;
                     a[0]="##########################";
                     a[1]="#                        #";
                     a[2]="# ###################### #";
                     a[3]="# #+   #+#        #   #  #";
                     a[4]="#  #   # #   #       #   #";
                     a[5]="##### ###   #V###### ## ##";
                     a[6]="#     #   ###      #    ##";
                     a[7]="# ######V#V## *### ## ####";
                     a[8]="#     #  #    #    ##    #";
                     a[9]="## ##### # #### ######## #";
                     a[10]="##         ####          #";
                     a[11]="########0#################";
                     break;
                 case 10:
                     if(shengming!=20)
                     {
                         shengming++;
                     }
                     qx=1;
                     qy=1;
                     a[0]="##################################################################################################################";
                     a[1]="#                                                                                                                #";
                     a[2]="# # 0#########################################################^################################################# #";
                     a[3]="# #  ###       #############                                                                           ###       #";
                     a[4]="# ##  ## ######           +# ########################################0################################ # # #V# # #";
                     a[5]="# ###  # ################### # # # # #                                                               < # # #   # #";
                     a[6]="# ####           #       ? ?     <##################^^^^^^^^^*?????################################# # #   # # # #";
                     a[7]="# ##########################^##########         ############V#####                               ##  # ##### # # #";
                     a[8]="# *#####     ?                          < #####   #########>       + ########################### ## ##       < # #";
                     a[9]="# #      0######## ##################### #     ##          # #####################     ############  #^####### # #";
                    a[10]="# # #####        # ######       #危险!  # #######  #*###### #                     ###                       # # #";
                    a[11]="# #     # ###### # ####   ##### ##########       # #         # ##### ##############   <##################### # ###";
                    a[12]="# ##### # *   ## # *### ##            #    ##### ############# #######              <     #                  # # #";
                    a[13]="# #   # #   # ## # ##   #  #0#####*#### ## #   # #        #            ^^^^^^^^^^^^^ ^##### ################ # # #";
                    a[14]="# # # # ##### ## # ## ##  #   #   #   # ##   # # # ###### # ######### #  危险地带超级boss#############  ######## ### #";
                    a[15]="# # # # ?     ## # #  #     #   #   #   #####  #       #  # #         <###******####>>>>>         #            # #";
                    a[16]="# ### ########## # #?########0###########V#####V######### # ################**###################  ############# #";
                    a[17]="# #              #       ##                               0           ????                    0###               #";
                    a[18]="* # ###V####*#####^######## ##########*#####*################0########################^###### <################# #";
                    a[19]="#             ?           #  #                 ?                      ?   ?                          ?         +#";
                    a[20]="######################^###################################################0########0##########0###################";
                    break;
                 case 11:
                     SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_BLUE);
                     cout << "你赢了!!!!!!!!!!!!!!!!!!!" << endl;
                     return 0;
             }
             xx=x=qx,yy=y=qy;
             a[x][y]=p[r];
             print(a);
             cout << "生命:" << shengming << endl;
             while(a[x][y]!='+'&&yaoshi==true)
             {
                 ch=getch();
                 bushu++;
                 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(shengming<=0)
                 {
                     SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED);
                     cout <<"你死了!!!!!!!!!!!!!!!!!"<< endl;
                     return 0;
                 }
                 if(ch=='p')
                 {
                     f='n';
                     break;
                 }
                 if((ch=='a'&&a[x][y-1]=='+'&&yaoshi==true)||(ch=='d'&&a[x][y+1]=='+'&&yaoshi==true)||(ch=='s'&&a[x+1][y]=='+'&&yaoshi==true)||(ch=='w'&&a[x-1][y]=='+'&&yaoshi==true))
                 {
                     break;
                 }
                 
                 if(ch=='w'&&a[x-1][y]=='V')
                 {
                     happyprint(10,"你被刺扎了,扣血4滴");
                     shengming-=4;
                     system("pause");
                 }
                 if(ch=='a'&&a[x][y-1]=='<')
                 {
                     happyprint(10,"你被刺扎了,扣血4滴");
                     shengming-=4;
                     system("pause");
                 }
                 if(ch=='d'&&a[x][y+1]=='>')
                 {
                     happyprint(10,"你被刺扎了,扣血4滴");
                     shengming-=4;
                     system("pause");
                 }
                 if(ch=='s'&&a[x+1][y]=='^')
                 {
                     cout <<"你被刺扎了,扣血4滴"<< endl;
                     happyprint(10,"你被刺扎了,扣血4滴");
                     shengming-=4;
                     system("pause");
                 }
                 if((ch=='a'&&a[x][y-1]=='0')||(ch=='d'&&a[x][y+1]=='0')||(ch=='s'&&a[x+1][y]=='0')||(ch=='w'&&a[x-1][y]=='S'))
                 {
                     happyprint(19,"你到了死地,接受死神的惩罚吧!!!!!");
                     shengming=0;
                     system("pause");
                 }
                 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]=='@'))
                 {
                     system("cls");
                     happyprint(8,"你得到了钥匙!!");
                     yaoshi=true;
                     system("pause");
                 }
                 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];
                 }
                 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]=='?'))
                 {
                     if(ch=='a'&&a[x][y-1]=='*')
                     {
                         a[x][y-1]==' ';
                     }
                     if(ch=='d'&&a[x][y+1]=='*')
                     {
                         a[x][y+1]==' ';
                     }
                     if(ch=='s'&&a[x+1][y]=='*')
                     {
                         a[x+1][y]==' ';
                     }
                     if(ch=='w'&&a[x-1][y]=='*')
                     {
                         a[x-1][y]==' ';
                     }
                 }
                 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]=='*'))
                 {
                     happyprint(20,"你触发了炸药!你被炸药炸到了,扣血10滴");
                     shengming-=10;
                     if(ch=='a'&&a[x][y-1]=='*')
                     {
                         a[x][y-1]==' ';
                     }
                     if(ch=='d'&&a[x][y+1]=='*')
                     {
                         a[x][y+1]==' ';
                     }
                     if(ch=='s'&&a[x+1][y]=='*')
                     {
                         a[x+1][y]==' ';
                     }
                     if(ch=='w'&&a[x-1][y]=='*')
                     {
                         a[x-1][y]==' ';
                     }
                     system("pause");
                 }
                 print(a);
             }
             system("cls");
             if(f=='n')break;
             cout<<"you win!!!"<<endl;
             bushu=0;
             cout<<"按空格继续···";
             s++;
             ok='\0';
             while(ok=getch(),ok!=' ');
             system("cls");
             cout<<"是否继续(y/n)";
             while(f=getch(),f!='y'&&f!='n');
         }
     }
     return 0;
 }










