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