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