zoukankan      html  css  js  c++  java
  • 自闭枪战C++

    Player1: ad左右移动,w跳,jk发射子弹

    Player2: 左右键左右移动,上键跳,23发射子弹

      1 #include <bits/stdc++.h>
      2 #include <conio.h>
      3 #include <windows.h>
      4 
      5 using namespace std;
      6 
      7 int jump[20] = {0, -1, -1, -1, -1};
      8 
      9 char mmp[21][42] = {"
    O    #                            #    @",
     10                     "
    ##                                    ##",
     11                     "
         ###                        ###     ",
     12                     "
                                            ",
     13                     "
    ####                                ####",
     14                     "
                                            ",
     15                     "
            ########################        ",
     16                     "
                                            ",
     17                     "
                                            ",
     18                     "
    ############                ############",
     19                     "
                                            ",
     20                     "
                                            ",
     21                     "
              ######        ######          ",
     22                     "
                                            ",
     23                     "
                                            ",
     24                     "
                     ######                 ",
     25                     "
                                            ",
     26                     "
    ########                        ########",
     27                     "
                ######    ######            ",
     28                     "
                                            "
     29                    };
     30 
     31 int main() {
     32 
     33     int xp1 = 0, yp1 = 1, xp2 = 0, yp2 = 40, tick = 0;
     34     char ch;
     35     int score1 = 0, score2 = 0, jumpdelay1 = 0, jumpdelay2 = 0;
     36 
     37     while (1) {
     38 
     39         Sleep(40);
     40         HANDLE hout;
     41         COORD coord;
     42         coord.X=0;
     43         coord.Y=0;
     44         hout=GetStdHandle(STD_OUTPUT_HANDLE);
     45         SetConsoleCursorPosition(hout,coord);
     46         fwrite(mmp, 1, 20 * 40, stdout);
     47         printf("
    score: 1:%d  2:%d", score1, score2);
     48 
     49         if (jumpdelay1 > 0) {
     50 
     51             if (xp1 + jump[jumpdelay1] > 0 && mmp[xp1 + jump[jumpdelay1]][yp1] == ' ') {
     52 
     53                 mmp[xp1][yp1] = ' ';
     54                 xp1 += jump[jumpdelay1];
     55                 mmp[xp1][yp1] = 'O';
     56 
     57             }
     58             if (xp1 + jump[jumpdelay1] > 0 && (mmp[xp1 + jump[jumpdelay1]][yp1] == '<' || mmp[xp1 + jump[jumpdelay1]][yp1] == '>')) {
     59 
     60                 mmp[xp1][yp1] = ' ';
     61                 xp1 = 0, yp1 = 1;
     62                 mmp[xp1][yp1] = 'O';
     63                 score2++;
     64 
     65             }
     66             if (xp1 + jump[jumpdelay1] > 0 && mmp[xp1 + jump[jumpdelay1]][yp1] == '#') {
     67 
     68                 jumpdelay1 = 1;
     69 
     70             }
     71             if (xp1 + jump[jumpdelay1] > 0 && mmp[xp1 + jump[jumpdelay1]][yp1] == '@') {
     72 
     73                 jumpdelay1 = 1;
     74 
     75             }
     76             jumpdelay1--;
     77 
     78         } else {
     79 
     80             if (xp1 == 19) {
     81 
     82                 mmp[xp1][yp1] = ' ';
     83                 xp1 = 0, yp1 = 1;
     84                 mmp[xp1][yp1] = 'O';
     85                 score2++;
     86 
     87             } else {
     88 
     89                 if (mmp[xp1 + 1][yp1] == ' ') {
     90 
     91                     mmp[xp1][yp1] = ' ';
     92                     xp1++;
     93                     mmp[xp1][yp1] = 'O';
     94 
     95                 }
     96                 if (mmp[xp1 + 1][yp1] == '<' || mmp[xp1 + 1][yp1] == '>') {
     97 
     98                     mmp[xp1][yp1] = ' ';
     99                     xp1 = 0, yp1 = 1;
    100                     mmp[xp1][yp1] = 'O';
    101                     score2++;
    102 
    103                 }
    104 
    105             }
    106 
    107         }
    108         if (jumpdelay2 > 0) {
    109 
    110             if (xp2 + jump[jumpdelay2] > 0 && mmp[xp2 + jump[jumpdelay2]][yp2] == ' ') {
    111 
    112                 mmp[xp2][yp2] = ' ';
    113                 xp2 += jump[jumpdelay2];
    114                 mmp[xp2][yp2] = '@';
    115 
    116             }
    117             if (xp2 + jump[jumpdelay2] >=0 && (mmp[xp2 + jump[jumpdelay2]][yp2] == '<' || mmp[xp2 + jump[jumpdelay2]][yp2] == '>')) {
    118 
    119                 mmp[xp2][yp2] = ' ';
    120                 xp2 = 0, yp2 = 40;
    121                 mmp[xp2][yp2] = '@';
    122                 score1++;
    123 
    124             }
    125             if (xp2 + jump[jumpdelay2] >=0 && mmp[xp2 + jump[jumpdelay2]][yp2] == '#') {
    126 
    127                 jumpdelay2 = 1;
    128 
    129             }
    130             if (xp2 + jump[jumpdelay2] >=0 && mmp[xp2 + jump[jumpdelay2]][yp2] == '#') {
    131 
    132                 jumpdelay2 = 1;
    133 
    134             }
    135             jumpdelay2--;
    136 
    137         } else {
    138 
    139             if (xp2 == 19) {
    140 
    141                 mmp[xp2][yp2] = ' ';
    142                 xp2 = 0, yp2 = 40;
    143                 mmp[xp2][yp2] = '@';
    144                 score1++;
    145 
    146             } else {
    147 
    148                 if (mmp[xp2 + 1][yp2] == ' ') {
    149 
    150                     mmp[xp2][yp2] = ' ';
    151                     xp2++;
    152                     mmp[xp2][yp2] = '@';
    153 
    154                 }
    155                 if (mmp[xp2 + 1][yp2] == '<' || mmp[xp2 + 1][yp2] == '>') {
    156 
    157                     mmp[xp2][yp2] = ' ';
    158                     xp2 = 0, yp2 = 40;
    159                     mmp[xp2][yp2] = '@';
    160                     score1++;
    161 
    162                 }
    163 
    164             }
    165 
    166         }
    167 
    168         for (register int i = 0; i < 20; i++) {
    169 
    170             for (register int j = 1; j <= 40; j++) {
    171 
    172                 if (mmp[i][j] == '<') {
    173 
    174                     if (j - 1 <= 0) {
    175 
    176                         mmp[i][j] = ' ';
    177                         continue;
    178 
    179                     }
    180 
    181                     if (mmp[i][j - 1] == 'O') {
    182 
    183                         mmp[xp1][yp1] = ' ';
    184                         xp1 = 0, yp1 = 1;
    185                         mmp[xp1][yp1] = 'O';
    186                         score2++;
    187                         mmp[i][j - 1] = '<';
    188 
    189                     }
    190                     if (mmp[i][j - 1] == '@') {
    191 
    192                         mmp[xp2][yp2] = ' ';
    193                         xp2 = 0, yp2 = 40;
    194                         mmp[xp2][yp2] = '@';
    195                         score1++;
    196 
    197                     }
    198                     if (mmp[i][j - 1] == '#') {
    199 
    200                         mmp[i][j] = ' ';
    201 
    202                     }
    203                     if (mmp[i][j - 1] == ' ') {
    204 
    205                         mmp[i][j] = ' ';
    206                         mmp[i][j - 1] = '<';
    207 
    208                     }
    209                     if (mmp[i][j - 1] == '>') {
    210 
    211                         mmp[i][j] = mmp[i][j - 1] = ' ';
    212 
    213                     }
    214 
    215                 }
    216 
    217             }
    218 
    219         }
    220         for (register int i = 19; i >= 0; i--) {
    221 
    222             for (register int j = 40; j >= 1; j--) {
    223 
    224                 if (mmp[i][j] == '>') {
    225 
    226                     if (j + 1 >= 41) {
    227 
    228                         mmp[i][j] = ' ';
    229                         continue;
    230 
    231                     }
    232 
    233                     if (mmp[i][j + 1] == 'O') {
    234 
    235                         mmp[xp1][yp1] = ' ';
    236                         xp1 = 0, yp1 = 1;
    237                         mmp[xp1][yp1] = 'O';
    238                         score2++;
    239                         mmp[i][j + 1] = '>';
    240 
    241                     }
    242                     if (mmp[i][j + 1] == '@') {
    243 
    244                         mmp[xp2][yp2] = ' ';
    245                         xp2 = 0, yp2 = 40;
    246                         mmp[xp2][yp2] = '@';
    247                         score1++;
    248 
    249                     }
    250                     if (mmp[i][j + 1] == '#') {
    251 
    252                         mmp[i][j] = ' ';
    253 
    254                     }
    255                     if (mmp[i][j + 1] == ' ') {
    256 
    257                         mmp[i][j] = ' ';
    258                         mmp[i][j + 1] = '>';
    259 
    260                     }
    261                     if (mmp[i][j + 1] == '<') {
    262 
    263                         mmp[i][j] = mmp[i][j + 1] = ' ';
    264 
    265                     }
    266 
    267                 }
    268 
    269             }
    270 
    271         }
    272 
    273         if (kbhit()) {
    274 
    275             ch = getch();
    276 
    277             switch (ch) {
    278 
    279                 case 27 :
    280 
    281                     exit(0);
    282 
    283                     break;
    284 
    285                 case 'a' :
    286 
    287                     if (yp1 - 1 > 0 && mmp[xp1][yp1 - 1] == ' ') {
    288 
    289                         mmp[xp1][yp1] = ' ';
    290                         yp1--;
    291                         mmp[xp1][yp1] = 'O';
    292 
    293                     }
    294 
    295                     if (yp1 - 1 > 0 && (mmp[xp1][yp1 - 1] == '<' || mmp[xp1][yp1 - 1] == '>')) {
    296 
    297                         mmp[xp1][yp1] = ' ';
    298                         xp1 = 0, yp1 = 1;
    299                         mmp[xp1][yp1] = 'O';
    300                         score2++;
    301 
    302                     }
    303 
    304                     break;
    305 
    306                 case 'd' :
    307 
    308                     if (yp1 + 1 <= 40 && mmp[xp1][yp1 + 1] == ' ') {
    309 
    310                         mmp[xp1][yp1] = ' ';
    311                         yp1++;
    312                         mmp[xp1][yp1] = 'O';
    313 
    314                     }
    315 
    316                     if (yp1 + 1 <= 40 && (mmp[xp1][yp1 + 1] == '<' || mmp[xp1][yp1 + 1] == '>')) {
    317 
    318                         mmp[xp1][yp1] = ' ';
    319                         xp1 = 0, yp1 = 1;
    320                         mmp[xp1][yp1] = 'O';
    321                         score2++;
    322 
    323                     }
    324 
    325                     break;
    326 
    327                 case 'w' :
    328 
    329                     if (jumpdelay1 == 0 && mmp[xp1 + 1][yp1] == '#') {
    330 
    331                         jumpdelay1 = 4;
    332 
    333                     }
    334 
    335                     break;
    336 
    337                 case -32 :
    338 
    339                     ch = getch();
    340 
    341                     switch (ch) {
    342 
    343                         case 75 :
    344 
    345                             if (yp2 - 1 > 0 && mmp[xp2][yp2 - 1] == ' ') {
    346 
    347                                 mmp[xp2][yp2] = ' ';
    348                                 yp2--;
    349                                 mmp[xp2][yp2] = '@';
    350 
    351                             }
    352 
    353                             if (yp2 - 1 > 0 && (mmp[xp2][yp2 - 1] == '*' || mmp[xp2][yp2 - 1] == '*')) {
    354 
    355                                 mmp[xp2][yp2] = ' ';
    356                                 xp2 = 0, yp2 = 40;
    357                                 mmp[xp2][yp2] = '@';
    358                                 score1++;
    359 
    360                             }
    361 
    362                             break;
    363 
    364                         case 77 :
    365 
    366                             if (yp2 + 1 <= 40 && mmp[xp2][yp2 + 1] == ' ') {
    367 
    368                                 mmp[xp2][yp2] = ' ';
    369                                 yp2++;
    370                                 mmp[xp2][yp2] = '@';
    371 
    372                             }
    373 
    374                             if (yp2 + 1 <= 40 && (mmp[xp2][yp2 + 1] == '<' || mmp[xp2][yp2 + 1] == '>')) {
    375 
    376                                 mmp[xp2][yp2] = ' ';
    377                                 xp2 = 0, yp2 = 40;
    378                                 mmp[xp2][yp2] = '@';
    379                                 score1++;
    380 
    381                             }
    382 
    383                             break;
    384 
    385                         case 72 :
    386 
    387                             if (jumpdelay2 == 0 && mmp[xp2 + 1][yp2] == '#') {
    388 
    389                                 jumpdelay2 = 4;
    390 
    391                             }
    392 
    393                             break;
    394 
    395                     }
    396 
    397                     break;
    398 
    399                 case 'j' :
    400 
    401                     if (yp1 > 1) {
    402 
    403                         if (mmp[xp1][yp1 - 1] == '@') {
    404 
    405                             mmp[xp2][yp2] = ' ';
    406                             xp2 = 0, yp2 = 40;
    407                             mmp[xp2][yp2] = '@';
    408                             score1++;
    409 
    410                         }
    411 
    412                         if (mmp[xp1][yp1 - 1] == ' ') {
    413 
    414                             mmp[xp1][yp1 - 1] = '<';
    415 
    416                         }
    417 
    418                     }
    419 
    420                     break;
    421                 case 'k' :
    422 
    423                     if (yp1 < 40) {
    424 
    425                         if (mmp[xp1][yp1 + 1] == '@') {
    426 
    427                             mmp[xp2][yp2] = ' ';
    428                             xp2 = 0, yp2 = 40;
    429                             mmp[xp2][yp2] = '@';
    430                             score1++;
    431 
    432                         }
    433 
    434                         if (mmp[xp1][yp1 + 1] == ' ') {
    435 
    436                             mmp[xp1][yp1 + 1] = '>';
    437 
    438                         }
    439 
    440                     }
    441                     break;
    442                 case '2' :
    443 
    444                     if (yp2 > 1) {
    445 
    446                         if (mmp[xp2][yp2 - 1] == 'O') {
    447 
    448                             mmp[xp1][yp1] = ' ';
    449                             xp1 = 0, yp1 = 1;
    450                             mmp[xp1][yp1] = 'O';
    451                             score2++;
    452 
    453                         }
    454 
    455                         if (mmp[xp2][yp2 - 1] == ' ') {
    456 
    457                             mmp[xp2][yp2 - 1] = '<';
    458 
    459                         }
    460 
    461                     }
    462 
    463                     break;
    464                 case '3' :
    465 
    466                     if (yp2 < 40) {
    467 
    468                         if (mmp[xp2][yp2 + 1] == 'O') {
    469 
    470                             mmp[xp1][yp1] = ' ';
    471                             xp1 = 0, yp1 = 1;
    472                             mmp[xp1][yp1] = 'O';
    473                             score2++;
    474 
    475                         }
    476 
    477                         if (mmp[xp2][yp2 + 1] == ' ') {
    478 
    479                             mmp[xp2][yp2 + 1] = '>';
    480 
    481                         }
    482 
    483                     }
    484 
    485                     break;
    486 
    487             }
    488 
    489         }
    490 
    491     }
    492 
    493 
    494     return 0;
    495 
    496 }

    转载请注明©Ice_watermelon233

  • 相关阅读:
    (转载)MySQL日期时间函数大全
    Tcl commands
    Toplevel
    tk 8.4 commands
    iwidgets
    Options for Buttontype widgets
    Text Widget Options
    tk options
    itk_option
    Widget Options
  • 原文地址:https://www.cnblogs.com/Ice-watermelon233/p/Autistic_gungame_C_with_class.html
Copyright © 2011-2022 走看看