自闭枪战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] = {"\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

转载于:https://www.cnblogs.com/Ice-watermelon233/p/Autistic_gungame_C_with_class.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值