我们一起去闯关(C++,含源代码)

#include <bits/stdc++.h>
#include <windows.h>
#include <conio.h>
using namespace std;
const long long dts = 5;
long long wj1x, wj1y, wj2x, wj2y, cs = 0, dtbh;
bool f = 1, t1 = 1, t2 = 1, sy;

long long csx[dts + 1] = {
    0,
    14,
    1,
    1,
    1,
    1
};

long long csy[dts + 1] = {
    0,
    1,
    37,
    1,
    1,
    1
};

string dt[dts + 1][21] = {
    {""},
    {
        "",
        "                                                                            ",
        "                                                                            ",
        "                                                                ==  ===  == ",
        "                                                        ===  ===           <",
        "                                                  ==                       <",
        "                                                                           <",
        "                  ==                           ==^^^^^^^^^^^==             <",
        "                         ======                                            <",
        "             ===                       === =======                         <",
        "            =  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^<",
        "         ===          ^            ^       ^                               <",
        "        =             ^                    ^                               <",
        "     ===              ^                                                    <",
        "                ^                ==        ^     ^                         $",
        " ========>  <===^===========^^^^^^^^^^^^=========^==========================",
        "                                                                            ",
        "                                                                            ",
        "                                                                            ",
        "                                                                            ",
        "                                                                            ",
    },
    {
        "",
        "                              >                   <      =              =   ",
        "                              >                   <      =              =   ",
        "        =                     >                   <      =        =     =   ",
        " ^^^^^   =                    >     ===           <      =        ==    =   ",
        "         <=                   >               = =^       =         ===  =   ",
        "         < =                   ^^^^^^^^^^^^^^^    <      =$             =   ",
        "         <  =                                     <      =            ===   ",
        "      ^^^<   =                 ==              ^^^       =^^^^^^^^==    =   ",
        "         <    =                  =          ^^^          =============  =   ",
        "         <     =                  ===    ==  <                          =   ",
        "         <     ======^^^^^^^^^^^^^   ^^^^  ^^            ================   ",
        "         <                                                                  ",
        " ^^^^    <         ==                                ==                     ",
        "         <        =                                                         ",
        "         <       =                               ==                         ",
        " ==== ^^^       =                                                           ",
        "               =                             ==                             ",
        "     ==========                     =======                                 ",
        "                                                                            ",
        "                                                                            "
    },
    {
        "",
        "                                                                           =",
        "                                                                           =",
        "                                                                           =",
        " ====^=====^=====^=====^=====^=====^=====^=====^=====^=====^=====^=====^== =",
        "                                                                           =",
        "                                        =====      <>                      =",
        "                                             =           <>         <>     =",
        "   ==============================^^^^^^^^^^^^=============================^=",
        "        <                                                                  =",
        "        <             ==                                   ==              =",
        "        <            =                                    =                =",
        " ^^^    <           =                                    =                 =",
        "        <          =                                    =                  =",
        "        <         =                                    =                   =",
        "    ^^^^<        =                                    =                    =",
        "        <       =                                    =                     =",
        "        <      =                                    =                      =",
        "              =                                    =                       =",
        " ==============                               =====                       $=",
        "                                                                           ="
    },
    {
        "",
        "   <                                                                       =",
        "   <                                                                       =",
        "   <                                                                       =",
        "   <                                                                       =",
        "   <               =============================                           =",
        "   <               =          =    =           = =====================     =",
        "   <               ==  ==     =   $=       ==  = =                    ==   =",
        "   <               =   =      =    =       =   = =                         =",
        "   <               =  ==  ^^^^==           =  == =                       ===",
        "   <               =   =      =       ^^^^^=   = =              ===  ===   =",
        "   <               ==  =      ===============  = =                         =",
        "   <               =   =^^                     = =           ==            =",
        "   <               = =========================== =             ===         =",
        "   <               =                             =               =         =",
        "   <    ^          ===============================               =         =",
        "   <   =>                                                        ===       =",
        "      ==>                                                                ===",
        " ====================================================================      =",
        "                                                                           =",
        "                                                                           ="
    },
    {
        "",
        "   <                                                                        ",
        "   <                                                                        ",
        "   <                                                                        ",
        "   <                                                                        ",
        "   <                                                                        ",
        "   <                                             --                         ",
        "   <                          ==                                            ",
        "   <                                                                        ",
        "   <           =                          --                                ",
        "   <           =                                                            ",
        "   <           =                                                            ",
        "   <           =                                                            ",
        "   <           =                                                            ",
        "   <           =                                                            ",
        "   <           =          --                                                ",
        "   <           =                                                           $",
        "               =                                                            ",
        " =====---------=^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
        "                                                                            ",
        "                                                                            "
    }
};

void csh() {
    f = 1, t1 = 1, t2 = 1;
    cs = 0;
    return ;
}

void color(int c) {
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), c);
}

void gb() {
    CONSOLE_CURSOR_INFO cursor;
    cursor.bVisible = FALSE;
    cursor.dwSize = sizeof(cursor);
    HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleCursorInfo(handle, &cursor);
}
void out();
void in();
void lx();
void js();

int main() {
    srand(time(0));
    color(240);
    system("mode con cols=75 lines=20");
    gb();

    while (1) {
        csh();
        dtbh = rand() % dts + 1;
        wj1x = wj2x = csx[dtbh];
        wj1y = wj2y = csy[dtbh];

        while (f) {
            system("cls");
            out();
            in();
            js();

            if (cs == 1)
                lx();

            Sleep(10);

            if (cs == 1)
                cs = -1;

            cs++;
        }

        system("cls");

        if (!sy) {
            color(9);
            system("cls");
            cout << "*赢了!";
            cout << "\n按Enter结束";
            char t = getch();

            while (t != 13)
                t = getch();

            color(153);
        } else {
            color(12);
            system("cls");
            cout << "+赢了!";
            cout << "\n按Enter结束";
            char t = getch();

            while (t != 13)
                t = getch();

            color(204);
        }

        system("cls");
    }

    return 0;
}

void out() {
    for (long long i = 1; i <= 19; i++) {
        for (long long j = 1; j <= 75; j++) {
            if (i == wj1x && j == wj1y) {
                color(9);
                cout << "*";
            } else if (i == wj2x && j == wj2y) {
                color(12);
                cout << "+";
            } else if (dt[dtbh][i][j] == '$') {
                color(10);
                cout << "$";
            } else {
                color(240);
                cout << dt[dtbh][i][j];
            }
        }

        cout << endl;
    }

    return ;
}

void in() {
    if (GetKeyState('A') < 0 && (dt[dtbh][wj1x][wj1y - 1] == ' ' || dt[dtbh][wj1x][wj1y - 1] == '$') && wj1y - 1 > 0) {
        wj1y--;
    }

    if (GetKeyState('D') < 0 && (dt[dtbh][wj1x][wj1y + 1] == ' ' || dt[dtbh][wj1x][wj1y + 1] == '$') && wj1y - 1 <= 100) {
        wj1y++;
    }

    if (GetKeyState('W') < 0 && (dt[dtbh][wj1x - 1][wj1y] == ' ' || dt[dtbh][wj1x - 1][wj1y] == '$') && t1) {
        wj1x--;

        for (long long i = 1; i <= 2; i++)
            if (dt[dtbh][wj1x - 1][wj1y] == ' ')
                wj1x--;

        t1 = 0;
    }

    if (GetKeyState(37) < 0 && (dt[dtbh][wj2x][wj2y - 1] == ' ' || dt[dtbh][wj2x][wj2y - 1] == '$') && wj2y - 1 > 0) {
        wj2y--;
    }

    if (GetKeyState(39) < 0 && (dt[dtbh][wj2x][wj2y + 1] == ' ' || dt[dtbh][wj2x][wj2y + 1] == '$') && wj1y - 1 <= 100) {
        wj2y++;
    }

    if (GetKeyState(38) < 0 && (dt[dtbh][wj2x - 1][wj2y] == ' ' || dt[dtbh][wj2x - 1][wj2y] == '$') && t2) {
        wj2x--;

        for (long long i = 1; i <= 2; i++)
            if (dt[dtbh][wj2x - 1][wj2y] == ' ')
                wj2x--;

        t2 = 0;
    }

    return ;
}

void lx() {
    if (dt[dtbh][wj1x + 1][wj1y] == ' ' || dt[dtbh][wj1x + 1][wj1y] == '$')
        wj1x++;
    else
        t1 = 1;

    if (dt[dtbh][wj2x + 1][wj2y] == ' ' || dt[dtbh][wj2x + 1][wj2y] == '$')
        wj2x++;
    else
        t2 = 1;

    return ;
}

void js() {
    if (dt[dtbh][wj1x][wj1y] == '$') {
        f = 0;
        sy = 0;
    }

    if (dt[dtbh][wj2x][wj2y] == '$') {
        f = 0;
        sy = 1;
    }

    if (wj1x == 20) {
        wj1x = csx[dtbh];
        wj1y = csy[dtbh];
    }

    if (wj2x == 20) {
        wj2x = csx[dtbh];
        wj2y = csy[dtbh];
    }

    if (dt[dtbh][wj1x + 1][wj1y] == '^') {
        wj1x = csx[dtbh];
        wj1y = csy[dtbh];
    }

    if (dt[dtbh][wj2x + 1][wj2y] == '^') {
        wj2x = csx[dtbh];
        wj2y = csy[dtbh];
    }

    if (dt[dtbh][wj1x][wj1y + 1] == '<') {
        wj1x = csx[dtbh];
        wj1y = csy[dtbh];
    }

    if (dt[dtbh][wj2x][wj2y + 1] == '<') {
        wj2x = csx[dtbh];
        wj2y = csy[dtbh];
    }

    if (dt[dtbh][wj1x][wj1y - 1] == '>') {
        wj1x = csx[dtbh];
        wj1y = csy[dtbh];
    }

    if (dt[dtbh][wj2x][wj2y - 1] == '>') {
        wj2x = csx[dtbh];
        wj2y = csy[dtbh];
    }

    if (dt[dtbh][wj1x + 1][wj1y] == '-') {
        for (long long i = 1; i <= 10 && wj1x > 1; i++) {
            if (dt[dtbh][wj1x][wj1y - 1] != '=') {
                wj1x--;
            } else
                break;
        }
    }

    if (dt[dtbh][wj2x + 1][wj2y] == '-') {
        for (long long i = 1; i <= 10 && wj2x > 1; i++) {
            if (dt[dtbh][wj2x][wj2y - 1] != '=') {
                wj2x--;
            } else
                break;
        }
    }

    return ;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值