C++走迷宫3.0

35 篇文章 8 订阅
9 篇文章 1 订阅

增加了许多。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值