zoukankan      html  css  js  c++  java
  • 自闭枪战V2.0(大改)

    Player1:ad左右动。w跳跃 r向左开枪,t向右开枪

    Player2:hk左右动。u跳跃 o向左开枪,p向右开枪

    #include <bits/stdc++.h>
    #include <conio.h>
    #include <windows.h>
    #define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0) //必要的,我是背下来的 
    
    
    using namespace std;
    
    int jump[20] = {0, -1, -1, -1, -1};
    
    char mmp[21][42] = {"
    O    #                            #    @",
                        "
    ##                                    ##",
                        "
         ###                        ###     ",
                        "
                                            ",
                        "
    ####                                ####",
                        "
                                            ",
                        "
            ########################        ",
                        "
                                            ",
                        "
                                            ",
                        "
    ############                ############",
                        "
                                            ",
                        "
                                            ",
                        "
              ######        ######          ",
                        "
                                            ",
                        "
                                            ",
                        "
                     ######                 ",
                        "
                                            ",
                        "
    ########                        ########",
                        "
                ######    ######            ",
                        "
                                            "
                       };
    
    int main() {
    
        int xp1 = 0, yp1 = 1, xp2 = 0, yp2 = 40, tick = 0;
        char ch;
        int score1 = 0, score2 = 0, jumpdelay1 = 0, jumpdelay2 = 0;
    
        while (1) {
    
            Sleep(40);
            HANDLE hout;
            COORD coord;
            coord.X=0;
            coord.Y=0;
            hout=GetStdHandle(STD_OUTPUT_HANDLE);
            SetConsoleCursorPosition(hout,coord);
            fwrite(mmp, 1, 20 * 40, stdout);
            printf("
    score: 1:%d  2:%d", score1, score2);
    
            if (jumpdelay1 > 0) {
    
                if (xp1 + jump[jumpdelay1] > 0 && mmp[xp1 + jump[jumpdelay1]][yp1] == ' ') {
    
                    mmp[xp1][yp1] = ' ';
                    xp1 += jump[jumpdelay1];
                    mmp[xp1][yp1] = 'O';
    
                }
                if (xp1 + jump[jumpdelay1] > 0 && (mmp[xp1 + jump[jumpdelay1]][yp1] == '<' || mmp[xp1 + jump[jumpdelay1]][yp1] == '>')) {
    
                    mmp[xp1][yp1] = ' ';
                    xp1 = 0, yp1 = 1;
                    mmp[xp1][yp1] = 'O';
                    score2++;
    
                }
                if (xp1 + jump[jumpdelay1] > 0 && mmp[xp1 + jump[jumpdelay1]][yp1] == '#') {
    
                    jumpdelay1 = 1;
    
                }
                if (xp1 + jump[jumpdelay1] > 0 && mmp[xp1 + jump[jumpdelay1]][yp1] == '@') {
    
                    jumpdelay1 = 1;
    
                }
                jumpdelay1--;
    
            } else {
    
                if (xp1 == 19) {
    
                    mmp[xp1][yp1] = ' ';
                    xp1 = 0, yp1 = 1;
                    mmp[xp1][yp1] = 'O';
                    score2++;
    
                } else {
    
                    if (mmp[xp1 + 1][yp1] == ' ') {
    
                        mmp[xp1][yp1] = ' ';
                        xp1++;
                        mmp[xp1][yp1] = 'O';
    
                    }
                    if (mmp[xp1 + 1][yp1] == '<' || mmp[xp1 + 1][yp1] == '>') {
    
                        mmp[xp1][yp1] = ' ';
                        xp1 = 0, yp1 = 1;
                        mmp[xp1][yp1] = 'O';
                        score2++;
    
                    }
    
                }
    
            }
            if (jumpdelay2 > 0) {
    
                if (xp2 + jump[jumpdelay2] > 0 && mmp[xp2 + jump[jumpdelay2]][yp2] == ' ') {
    
                    mmp[xp2][yp2] = ' ';
                    xp2 += jump[jumpdelay2];
                    mmp[xp2][yp2] = '@';
    
                }
                if (xp2 + jump[jumpdelay2] >=0 && (mmp[xp2 + jump[jumpdelay2]][yp2] == '<' || mmp[xp2 + jump[jumpdelay2]][yp2] == '>')) {
    
                    mmp[xp2][yp2] = ' ';
                    xp2 = 0, yp2 = 40;
                    mmp[xp2][yp2] = '@';
                    score1++;
    
                }
                if (xp2 + jump[jumpdelay2] >=0 && mmp[xp2 + jump[jumpdelay2]][yp2] == '#') {
    
                    jumpdelay2 = 1;
    
                }
                if (xp2 + jump[jumpdelay2] >=0 && mmp[xp2 + jump[jumpdelay2]][yp2] == '#') {
    
                    jumpdelay2 = 1;
    
                }
                jumpdelay2--;
    
            } else {
    
                if (xp2 == 19) {
    
                    mmp[xp2][yp2] = ' ';
                    xp2 = 0, yp2 = 40;
                    mmp[xp2][yp2] = '@';
                    score1++;
    
                } else {
    
                    if (mmp[xp2 + 1][yp2] == ' ') {
    
                        mmp[xp2][yp2] = ' ';
                        xp2++;
                        mmp[xp2][yp2] = '@';
    
                    }
                    if (mmp[xp2 + 1][yp2] == '<' || mmp[xp2 + 1][yp2] == '>') {
    
                        mmp[xp2][yp2] = ' ';
                        xp2 = 0, yp2 = 40;
                        mmp[xp2][yp2] = '@';
                        score1++;
    
                    }
    
                }
    
            }
    
            for (register int i = 0; i < 20; i++) {
    
                for (register int j = 1; j <= 40; j++) {
    
                    if (mmp[i][j] == '<') {
    
                        if (j - 1 <= 0) {
    
                            mmp[i][j] = ' ';
                            continue;
    
                        }
    
                        if (mmp[i][j - 1] == 'O') {
    
                            mmp[xp1][yp1] = ' ';
                            xp1 = 0, yp1 = 1;
                            mmp[xp1][yp1] = 'O';
                            score2++;
                            mmp[i][j - 1] = '<';
    
                        }
                        if (mmp[i][j - 1] == '@') {
    
                            mmp[xp2][yp2] = ' ';
                            xp2 = 0, yp2 = 40;
                            mmp[xp2][yp2] = '@';
                            score1++;
    
                        }
                        if (mmp[i][j - 1] == '#') {
    
                            mmp[i][j] = ' ';
    
                        }
                        if (mmp[i][j - 1] == ' ') {
    
                            mmp[i][j] = ' ';
                            mmp[i][j - 1] = '<';
    
                        }
                        if (mmp[i][j - 1] == '>') {
    
                            mmp[i][j] = mmp[i][j - 1] = ' ';
    
                        }
    
                    }
    
                }
    
            }
            for (register int i = 19; i >= 0; i--) {
    
                for (register int j = 40; j >= 1; j--) {
    
                    if (mmp[i][j] == '>') {
    
                        if (j + 1 >= 41) {
    
                            mmp[i][j] = ' ';
                            continue;
    
                        }
    
                        if (mmp[i][j + 1] == 'O') {
    
                            mmp[xp1][yp1] = ' ';
                            xp1 = 0, yp1 = 1;
                            mmp[xp1][yp1] = 'O';
                            score2++;
                            mmp[i][j + 1] = '>';
    
                        }
                        if (mmp[i][j + 1] == '@') {
    
                            mmp[xp2][yp2] = ' ';
                            xp2 = 0, yp2 = 40;
                            mmp[xp2][yp2] = '@';
                            score1++;
    
                        }
                        if (mmp[i][j + 1] == '#') {
    
                            mmp[i][j] = ' ';
    
                        }
                        if (mmp[i][j + 1] == ' ') {
    
                            mmp[i][j] = ' ';
                            mmp[i][j + 1] = '>';
    
                        }
                        if (mmp[i][j + 1] == '<') {
    
                            mmp[i][j] = mmp[i][j + 1] = ' ';
    
                        }
    
                    }
    
                }
    
            }
    
            if (KEY_DOWN('A')) {
    
                if (yp1 - 1 > 0 && mmp[xp1][yp1 - 1] == ' ') {
    
                    mmp[xp1][yp1] = ' ';
                    yp1--;
                    mmp[xp1][yp1] = 'O';
    
                }
    
                if (yp1 - 1 > 0 && (mmp[xp1][yp1 - 1] == '<' || mmp[xp1][yp1 - 1] == '>')) {
    
                    mmp[xp1][yp1] = ' ';
                    xp1 = 0, yp1 = 1;
                    mmp[xp1][yp1] = 'O';
                    score2++;
    
                }
    
            }
    
            if (KEY_DOWN('D')) {
    
                if (yp1 + 1 <= 40 && mmp[xp1][yp1 + 1] == ' ') {
    
                    mmp[xp1][yp1] = ' ';
                    yp1++;
                    mmp[xp1][yp1] = 'O';
    
                }
    
                if (yp1 + 1 <= 40 && (mmp[xp1][yp1 + 1] == '<' || mmp[xp1][yp1 + 1] == '>')) {
    
                    mmp[xp1][yp1] = ' ';
                    xp1 = 0, yp1 = 1;
                    mmp[xp1][yp1] = 'O';
                    score2++;
    
                }
    
            }
    
            if (KEY_DOWN('W')) {
    
                if (jumpdelay1 == 0 && mmp[xp1 + 1][yp1] == '#') {
    
                    jumpdelay1 = 4;
    
                }
    
            }
    
            if (KEY_DOWN('H')) {
    
                if (yp2 - 1 > 0 && mmp[xp2][yp2 - 1] == ' ') {
    
                    mmp[xp2][yp2] = ' ';
                    yp2--;
                    mmp[xp2][yp2] = '@';
    
                }
    
                if (yp2 - 1 > 0 && (mmp[xp2][yp2 - 1] == '*' || mmp[xp2][yp2 - 1] == '*')) {
    
                    mmp[xp2][yp2] = ' ';
                    xp2 = 0, yp2 = 40;
                    mmp[xp2][yp2] = '@';
                    score1++;
    
                }
    
            }
    
            if (KEY_DOWN('K')) {
    
                if (yp2 + 1 <= 40 && mmp[xp2][yp2 + 1] == ' ') {
    
                    mmp[xp2][yp2] = ' ';
                    yp2++;
                    mmp[xp2][yp2] = '@';
    
                }
    
                if (yp2 + 1 <= 40 && (mmp[xp2][yp2 + 1] == '<' || mmp[xp2][yp2 + 1] == '>')) {
    
                    mmp[xp2][yp2] = ' ';
                    xp2 = 0, yp2 = 40;
                    mmp[xp2][yp2] = '@';
                    score1++;
    
                }
    
            }
    
            if (KEY_DOWN('U')) {
    
                if (jumpdelay2 == 0 && mmp[xp2 + 1][yp2] == '#') {
    
                    jumpdelay2 = 4;
    
                }
    
            }
    
            if (KEY_DOWN('R')) {
    
                if (yp1 > 1) {
    
                    if (mmp[xp1][yp1 - 1] == '@') {
    
                        mmp[xp2][yp2] = ' ';
                        xp2 = 0, yp2 = 40;
                        mmp[xp2][yp2] = '@';
                        score1++;
    
                    }
    
                    if (mmp[xp1][yp1 - 1] == ' ') {
    
                        mmp[xp1][yp1 - 1] = '<';
    
                    }
    
                }
    
            }
    
            if (KEY_DOWN('T')) {
    
                if (yp1 < 40) {
    
                    if (mmp[xp1][yp1 + 1] == '@') {
    
                        mmp[xp2][yp2] = ' ';
                        xp2 = 0, yp2 = 40;
                        mmp[xp2][yp2] = '@';
                        score1++;
    
                    }
    
                    if (mmp[xp1][yp1 + 1] == ' ') {
    
                        mmp[xp1][yp1 + 1] = '>';
    
                    }
    
                }
    
            }
    
            if (KEY_DOWN('O')) {
    
                if (yp2 > 1) {
    
                    if (mmp[xp2][yp2 - 1] == 'O') {
    
                        mmp[xp1][yp1] = ' ';
                        xp1 = 0, yp1 = 1;
                        mmp[xp1][yp1] = 'O';
                        score2++;
    
                    }
    
                    if (mmp[xp2][yp2 - 1] == ' ') {
    
                        mmp[xp2][yp2 - 1] = '<';
    
                    }
    
                }
    
            }
    
            if (KEY_DOWN('P')) {
    
                if (yp2 < 40) {
    
                    if (mmp[xp2][yp2 + 1] == 'O') {
    
                        mmp[xp1][yp1] = ' ';
                        xp1 = 0, yp1 = 1;
                        mmp[xp1][yp1] = 'O';
                        score2++;
    
                    }
    
                    if (mmp[xp2][yp2 + 1] == ' ') {
    
                        mmp[xp2][yp2 + 1] = '>';
    
                    }
    
                }
    
            }
    
            /*if (kbhit()) {
    
                ch = getch();
    
                switch (ch) {
    
                    case 27 :
    
                        exit(0);
    
                        break;
    
                    case 'a' :
    
                        if (yp1 - 1 > 0 && mmp[xp1][yp1 - 1] == ' ') {
    
                            mmp[xp1][yp1] = ' ';
                            yp1--;
                            mmp[xp1][yp1] = 'O';
    
                        }
    
                        if (yp1 - 1 > 0 && (mmp[xp1][yp1 - 1] == '<' || mmp[xp1][yp1 - 1] == '>')) {
    
                            mmp[xp1][yp1] = ' ';
                            xp1 = 0, yp1 = 1;
                            mmp[xp1][yp1] = 'O';
                            score2++;
    
                        }
    
                        break;
    
                    case 'd' :
    
                        if (yp1 + 1 <= 40 && mmp[xp1][yp1 + 1] == ' ') {
    
                            mmp[xp1][yp1] = ' ';
                            yp1++;
                            mmp[xp1][yp1] = 'O';
    
                        }
    
                        if (yp1 + 1 <= 40 && (mmp[xp1][yp1 + 1] == '<' || mmp[xp1][yp1 + 1] == '>')) {
    
                            mmp[xp1][yp1] = ' ';
                            xp1 = 0, yp1 = 1;
                            mmp[xp1][yp1] = 'O';
                            score2++;
    
                        }
    
                        break;
    
                    case 'w' :
    
                        if (jumpdelay1 == 0 && mmp[xp1 + 1][yp1] == '#') {
    
                            jumpdelay1 = 4;
    
                        }
    
                        break;
    
                    case -32 :
    
                        ch = getch();
    
                        switch (ch) {
    
                            case 75 :
    
                                if (yp2 - 1 > 0 && mmp[xp2][yp2 - 1] == ' ') {
    
                                    mmp[xp2][yp2] = ' ';
                                    yp2--;
                                    mmp[xp2][yp2] = '@';
    
                                }
    
                                if (yp2 - 1 > 0 && (mmp[xp2][yp2 - 1] == '*' || mmp[xp2][yp2 - 1] == '*')) {
    
                                    mmp[xp2][yp2] = ' ';
                                    xp2 = 0, yp2 = 40;
                                    mmp[xp2][yp2] = '@';
                                    score1++;
    
                                }
    
                                break;
    
                            case 77 :
    
                                if (yp2 + 1 <= 40 && mmp[xp2][yp2 + 1] == ' ') {
    
                                    mmp[xp2][yp2] = ' ';
                                    yp2++;
                                    mmp[xp2][yp2] = '@';
    
                                }
    
                                if (yp2 + 1 <= 40 && (mmp[xp2][yp2 + 1] == '<' || mmp[xp2][yp2 + 1] == '>')) {
    
                                    mmp[xp2][yp2] = ' ';
                                    xp2 = 0, yp2 = 40;
                                    mmp[xp2][yp2] = '@';
                                    score1++;
    
                                }
    
                                break;
    
                            case 72 :
    
                                if (jumpdelay2 == 0 && mmp[xp2 + 1][yp2] == '#') {
    
                                    jumpdelay2 = 4;
    
                                }
    
                                break;
    
                        }
    
                        break;
    
                    case 'j' :
    
                        if (yp1 > 1) {
    
                            if (mmp[xp1][yp1 - 1] == '@') {
    
                                mmp[xp2][yp2] = ' ';
                                xp2 = 0, yp2 = 40;
                                mmp[xp2][yp2] = '@';
                                score1++;
    
                            }
    
                            if (mmp[xp1][yp1 - 1] == ' ') {
    
                                mmp[xp1][yp1 - 1] = '<';
    
                            }
    
                        }
    
                        break;
                    case 'k' :
    
                        if (yp1 < 40) {
    
                            if (mmp[xp1][yp1 + 1] == '@') {
    
                                mmp[xp2][yp2] = ' ';
                                xp2 = 0, yp2 = 40;
                                mmp[xp2][yp2] = '@';
                                score1++;
    
                            }
    
                            if (mmp[xp1][yp1 + 1] == ' ') {
    
                                mmp[xp1][yp1 + 1] = '>';
    
                            }
    
                        }
                        break;
                    case ',' :
    
                        if (yp2 > 1) {
    
                            if (mmp[xp2][yp2 - 1] == 'O') {
    
                                mmp[xp1][yp1] = ' ';
                                xp1 = 0, yp1 = 1;
                                mmp[xp1][yp1] = 'O';
                                score2++;
    
                            }
    
                            if (mmp[xp2][yp2 - 1] == ' ') {
    
                                mmp[xp2][yp2 - 1] = '<';
    
                            }
    
                        }
    
                        break;
                    case '.' :
    
                        if (yp2 < 40) {
    
                            if (mmp[xp2][yp2 + 1] == 'O') {
    
                                mmp[xp1][yp1] = ' ';
                                xp1 = 0, yp1 = 1;
                                mmp[xp1][yp1] = 'O';
                                score2++;
    
                            }
    
                            if (mmp[xp2][yp2 + 1] == ' ') {
    
                                mmp[xp2][yp2 + 1] = '>';
    
                            }
    
                        }
    
                        break;
    
                }
    
            }*/
    
        }
    
    
        return 0;
    
    }
  • 相关阅读:
    Alamofire 4.0 & swift 3.0 学习
    源码阅读分析 (深入浅出FaceBook POP动画引擎)
    iOS App Programming Guide 要点记录
    UIKit 之UIViewController & UIView
    ios AFNetworking 3.0 源码阅读分析 (四)(完结篇&&AFHTTPSessionManager模块)
    ios AFNetworking 3.0 源码阅读分析 (三)(AFSecurityPolicy模块)
    ios AFNetworking 3.0 原码阅读分析 (二)(AFURLResponseSerialization模块)
    ios AFNetworking 3.0 原码阅读分析 (一)(AFURLRequestSerialization模块)
    在商城系统中使用设计模式----策略模式之在spring中使用观察者模式和发布/订阅
    在商城系统中使用设计模式----策略模式之在spring中使用策略模式
  • 原文地址:https://www.cnblogs.com/Ice-watermelon233/p/zibigungame.html
Copyright © 2011-2022 走看看