c++小游戏-1 [sgqyz]
得快两年前写的一个c++游戏(第一个,总共两个)
有些npc名字有些起的詪sd,看着好笑也就不改了
算法没有任何难度,就是纯模拟,当时也是无聊写了挺长时间
代码之前写的,存在一些bug,大体上影响游戏体验的bug都已消除,如果仍有,希望各位玩家老爷原谅=-=(不打算改了,逃
游戏意外和某知名游戏公司出品游戏重名,当时我写这个的时候还没看到,所以不大清楚谁先出的,事实上没有任何关系(游戏名用各字首字母代替了)
游戏中角色及部分属性值,取材于4399上一款画质略显单薄的小游戏 http://www.4399.com/flash/167316_1.htm
附:1.作弊码11910(博主第一次通关某游戏时的分数),多人模式第一次输入11910会获得童渊(最强武将),第二次输入11910会获得司马徽(最强谋士),三次以上输入获得人物随机
2.选人阶段输入数字与实际获得人物无关(作弊码除外)
3.国战模式当时构想了来着,但是写完单人模式和双人模式,实在写不动了,又不想删掉,就进去之后只是一个敬请期待
1 #include<bits/stdc++.h> 2 #include<windows.h> 3 using namespace std; 4 int n,goal,your_num,comp_num,yourpar_num,comppar_num; 5 int human_num,charac_num,atkway_num; 6 bool nameused[101]; 7 string charac[101]={"0","菜鸡","大菜鸡","小菜鸡","逗比","万神之王","DBC","猪猪"}; 8 string attack_way[101]={"0","凌空一掌","反身一脚","横劈一刀","斜刺一枪"}; 9 10 struct human 11 { 12 string name; 13 int atk,iq,blood,fa; 14 bool live; 15 int head; 16 }; 17 human a[2001]; 18 human yours[2001]; 19 human comps[2001]; 20 human yourpars[2001]; 21 human comppars[2001]; 22 23 char hehe[11][11]={ 24 " /| ", 25 " / | ", 26 " / | ", 27 "<_/|_>", 28 " |||| " 29 }; 30 31 void shenglve() 32 { 33 for(int i=1;i<=5;++i) 34 { 35 printf("."); 36 Sleep(200); 37 } 38 printf("."); 39 } 40 41 void jieshao(int d) 42 { 43 printf("\n"); 44 printf(" ·姓名: "); 45 cout<<a[d].name<<" "; 46 printf("攻击力: %d 智力: %d 血量: %d\n",a[d].atk,a[d].iq,a[d].blood); 47 printf(" 人物当前状态:"); 48 if(a[d].live==true) 49 printf("存活"); 50 else 51 printf("已死亡"); 52 printf(" 从属: "); 53 if(a[d].fa==-1) 54 printf("无\n"); 55 else 56 cout<<a[a[d].fa].name<<endl; 57 printf("\n"); 58 } 59 60 void your_choujiang(int xx,int yy,int d) 61 { 62 printf("\n"); 63 printf("--------------------------------------\n"); 64 printf("*叮!请抽取武将*\n"); 65 for(int i=1;i<=d;++i) 66 { 67 printf("请输入一个不大于10000的正整数: "); 68 int t1,t2,t3; 69 scanf("%d",&t1); 70 t2=rand()%(human_num*10); 71 t3=(t1+t2)%human_num+1; 72 while(a[t3].live==false || a[t3].fa!=-1 || a[t3].atk<xx || a[t3].iq<yy) 73 { 74 t2=rand()%(human_num*10); 75 t3=(t1+t2)%human_num+1; 76 } 77 if(t1==11910 && a[37].fa==-1) 78 t3=37; 79 else 80 if(t1==11910 && a[38].fa==-1) 81 t3=38; 82 your_num++; 83 yours[your_num].head=t3; 84 yours[your_num].name=a[t3].name; 85 yours[your_num].atk=a[t3].atk; 86 yours[your_num].blood=a[t3].blood; 87 yours[your_num].iq=a[t3].iq; 88 yours[your_num].live=a[t3].live; 89 yours[your_num].fa=0; 90 a[t3].fa=0; 91 printf("\n"); 92 printf("恭喜你获得武将 "); 93 cout<<a[t3].name<<endl; 94 printf("*这是你获得的第%d个武将*\n",your_num); 95 jieshao(t3); 96 } 97 printf("返回游戏中!"); 98 shenglve(); 99 printf("\n"); 100 printf("--------------------------------------\n"); 101 printf("\n"); 102 } 103 104 void comp_choujiang(int xx,int yy,int d) 105 { 106 printf("\n"); 107 printf("--------------------------------------\n"); 108 printf("*叮!"); 109 cout<<a[1000].name; 110 printf("抽取武将中*\n"); 111 for(int i=1;i<=d;++i) 112 { 113 int t; 114 while(a[t].live==false || a[t].fa!=-1 || a[t].atk<xx || a[t].iq<yy) 115 t=rand()%human_num+1; 116 comp_num++; 117 comps[comp_num].head=t; 118 comps[comp_num].name=a[t].name; 119 comps[comp_num].atk=a[t].atk; 120 comps[comp_num].blood=a[t].blood; 121 comps[comp_num].iq=a[t].iq; 122 comps[comp_num].live=a[t].live; 123 comps[comp_num].fa=1000; 124 a[t].fa=1000; 125 printf("\n"); 126 cout<<a[1000].name; 127 printf("获得武将 "); 128 cout<<a[t].name<<endl; 129 printf("*这是他获得的第%d个武将*\n",comp_num); 130 jieshao(t); 131 } 132 printf("返回游戏中!"); 133 shenglve(); 134 printf("\n"); 135 printf("--------------------------------------\n"); 136 printf("\n"); 137 } 138 139 void yourpar_choujiang(int xx,int yy,int d) 140 { 141 printf("\n"); 142 printf("--------------------------------------\n"); 143 printf("*叮!"); 144 cout<<a[1001].name; 145 printf("抽取武将中*\n"); 146 for(int i=1;i<=d;++i) 147 { 148 int t; 149 while(a[t].live==false || a[t].fa!=-1 || a[t].atk<xx || a[t].iq<yy) 150 t=rand()%human_num+1; 151 yourpar_num++; 152 yourpars[yourpar_num].head=t; 153 yourpars[yourpar_num].name=a[t].name; 154 yourpars[yourpar_num].atk=a[t].atk; 155 yourpars[yourpar_num].blood=a[t].blood; 156 yourpars[yourpar_num].iq=a[t].iq; 157 yourpars[yourpar_num].live=a[t].live; 158 yourpars[yourpar_num].fa=1001; 159 a[t].fa=1001; 160 printf("\n"); 161 cout<<a[1001].name; 162 printf("获得武将 "); 163 cout<<a[t].name<<endl; 164 printf("*这是他获得的第%d个武将*\n",comp_num); 165 jieshao(t); 166 } 167 printf("返回游戏中!"); 168 shenglve(); 169 printf("\n"); 170 printf("--------------------------------------\n"); 171 printf("\n"); 172 } 173 174 void comppar_choujiang(int xx,int yy,int d) 175 { 176 printf("\n"); 177 printf("--------------------------------------\n"); 178 printf("*叮!"); 179 cout<<a[2000].name; 180 printf("抽取武将中*\n"); 181 for(int i=1;i<=d;++i) 182 { 183 int t; 184 while(a[t].live==false || a[t].fa!=-1 || a[t].atk<xx || a[t].iq<yy) 185 t=rand()%human_num+1; 186 comppar_num++; 187 comppars[comppar_num].head=t; 188 comppars[comppar_num].name=a[t].name; 189 comppars[comppar_num].atk=a[t].atk; 190 comppars[comppar_num].blood=a[t].blood; 191 comppars[comppar_num].iq=a[t].iq; 192 comppars[comppar_num].live=a[t].live; 193 comppars[comppar_num].fa=2000; 194 a[t].fa=2000; 195 printf("\n"); 196 cout<<a[2000].name; 197 printf("获得武将 "); 198 cout<<a[t].name<<endl; 199 printf("*这是他获得的第%d个武将*\n",comp_num); 200 jieshao(t); 201 } 202 printf("返回游戏中!"); 203 shenglve(); 204 printf("\n"); 205 printf("--------------------------------------\n"); 206 printf("\n"); 207 } 208 209 void renwu() 210 { 211 human_num=93; 212 charac_num=7; 213 atkway_num=4; 214 for(int i=1;i<=human_num;++i) 215 { 216 a[i].blood=1000; 217 a[i].fa=-1; 218 a[i].live=true; 219 } 220 a[1].name="泠苞"; 221 a[1].atk=66; 222 a[1].iq=46; 223 a[2].name="关兴"; 224 a[2].atk=76; 225 a[2].iq=33; 226 a[3].name="关平"; 227 a[3].atk=78; 228 a[3].iq=39; 229 a[4].name="张苞"; 230 a[4].atk=78; 231 a[4].iq=35; 232 a[5].name="黄忠"; 233 a[5].atk=96; 234 a[5].iq=89; 235 a[6].name="文鸳"; 236 a[6].atk=96; 237 a[6].iq=86; 238 a[7].name="郭嘉"; 239 a[7].atk=38; 240 a[7].iq=99; 241 a[8].name="吕布"; 242 a[8].atk=99; 243 a[8].iq=49; 244 a[9].name="诸葛亮"; 245 a[9].atk=52; 246 a[9].iq=98; 247 a[10].name="司马懿"; 248 a[10].atk=65; 249 a[10].iq=97; 250 a[11].name="曹操"; 251 a[11].atk=82; 252 a[11].iq=88; 253 a[12].name="刘备"; 254 a[12].atk=79; 255 a[12].iq=75; 256 a[13].name="孙权"; 257 a[13].atk=70; 258 a[13].iq=83; 259 a[14].name="孙翎"; 260 a[14].atk=83; 261 a[14].iq=44; 262 a[15].name="孙策"; 263 a[15].atk=95; 264 a[15].iq=77; 265 a[16].name="孙静"; 266 a[16].atk=82; 267 a[16].iq=45; 268 a[17].name="黄盖"; 269 a[17].atk=78; 270 a[17].iq=69; 271 a[18].name="程普"; 272 a[18].atk=69; 273 a[18].iq=72; 274 a[19].name="孙坚"; 275 a[19].atk=91; 276 a[19].iq=81; 277 a[20].name="马超"; 278 a[20].atk=97; 279 a[20].iq=79; 280 a[21].name="马腾"; 281 a[21].atk=82; 282 a[21].iq=66; 283 a[22].name="马岱"; 284 a[22].atk=85; 285 a[22].iq=75; 286 a[23].name="马休"; 287 a[23].atk=75; 288 a[23].iq=56; 289 a[24].name="庞德"; 290 a[24].atk=96; 291 a[24].iq=81; 292 a[25].name="赵云"; 293 a[25].atk=98; 294 a[25].iq=95; 295 a[26].name="关羽"; 296 a[26].atk=97; 297 a[26].iq=91; 298 a[27].name="张飞"; 299 a[27].atk=97; 300 a[27].iq=84; 301 a[28].name="典韦"; 302 a[28].atk=98; 303 a[28].iq=70; 304 a[29].name="许褚"; 305 a[29].atk=96; 306 a[29].iq=76; 307 a[30].name="蒋干"; 308 a[30].atk=18; 309 a[30].iq=1; 310 a[31].name="太史慈"; 311 a[31].atk=93; 312 a[31].iq=90; 313 a[32].name="曲晨"; 314 a[32].atk=99; 315 a[32].iq=97; 316 a[33].name="荀彧"; 317 a[33].atk=36; 318 a[33].iq=92; 319 a[34].name="荀攸"; 320 a[34].atk=31; 321 a[34].iq=91; 322 a[35].name="吕蒙"; 323 a[35].atk=88; 324 a[35].iq=90; 325 a[36].name="陆逊"; 326 a[36].atk=83; 327 a[36].iq=91; 328 a[37].name="童渊"; 329 a[37].atk=100; 330 a[37].iq=97; 331 a[38].name="司马徽"; 332 a[38].atk=97; 333 a[38].iq=100; 334 a[39].name="夏侯惇"; 335 a[39].atk=91; 336 a[39].iq=77; 337 a[40].name="夏侯渊"; 338 a[40].atk=90; 339 a[40].iq=72; 340 a[41].name="刘表"; 341 a[41].atk=49; 342 a[41].iq=40; 343 a[42].name="刘琦"; 344 a[42].atk=50; 345 a[42].iq=56; 346 a[43].name="刘琮"; 347 a[43].atk=55; 348 a[43].iq=29; 349 a[44].name="刘焉"; 350 a[44].atk=34; 351 a[44].iq=40; 352 a[45].name="刘璋"; 353 a[45].atk=29; 354 a[45].iq=46; 355 a[46].name="蔡瑁"; 356 a[46].atk=79; 357 a[46].iq=46; 358 a[47].name="蔡和"; 359 a[47].atk=69; 360 a[47].iq=41; 361 a[48].name="文聘"; 362 a[48].atk=78; 363 a[48].iq=57; 364 a[49].name="蔡邕"; 365 a[49].atk=24; 366 a[49].iq=93; 367 a[50].name="蔡文姬"; 368 a[50].atk=11; 369 a[50].iq=95; 370 a[51].name="魏延"; 371 a[51].atk=92; 372 a[51].iq=75; 373 a[52].name="廖化"; 374 a[52].atk=71; 375 a[52].iq=55; 376 a[53].name="裴元绍"; 377 a[53].atk=46; 378 a[53].iq=48; 379 a[54].name="颜良"; 380 a[54].atk=95; 381 a[54].iq=73; 382 a[55].name="文丑"; 383 a[55].atk=94; 384 a[55].iq=72; 385 a[56].name="曹洪"; 386 a[56].atk=84; 387 a[56].iq=82; 388 a[57].name="曹彰"; 389 a[57].atk=94; 390 a[57].iq=70; 391 a[58].name="曹丕"; 392 a[58].atk=46; 393 a[58].iq=74; 394 a[59].name="曹植"; 395 a[59].atk=27; 396 a[59].iq=85; 397 a[60].name="张辽"; 398 a[60].atk=92; 399 a[60].iq=94; 400 a[61].name="雷铜"; 401 a[61].atk=78; 402 a[61].iq=73; 403 a[62].name="徐晃"; 404 a[62].atk=91; 405 a[62].iq=88; 406 a[63].name="张郃"; 407 a[63].atk=94; 408 a[63].iq=85; 409 a[64].name="曹真"; 410 a[64].atk=86; 411 a[64].iq=79; 412 a[65].name="曹仁"; 413 a[65].atk=80; 414 a[65].iq=83; 415 a[66].name="孙资"; 416 a[66].atk=40; 417 a[66].iq=37; 418 a[67].name="司马师"; 419 a[67].atk=55; 420 a[67].iq=65; 421 a[68].name="司马昭"; 422 a[68].atk=95; 423 a[68].iq=78; 424 a[69].name="姜维"; 425 a[69].atk=96; 426 a[69].iq=95; 427 a[70].name="诸葛瞻"; 428 a[70].atk=49; 429 a[70].iq=79; 430 a[71].name="李严"; 431 a[71].atk=81; 432 a[71].iq=84; 433 a[72].name="吴懿"; 434 a[72].atk=77; 435 a[72].iq=56; 436 a[73].name="蒋琬"; 437 a[73].atk=19; 438 a[73].iq=86; 439 a[74].name="费祎"; 440 a[74].atk=18; 441 a[74].iq=87; 442 a[75].name="诸葛瑾"; 443 a[75].atk=48; 444 a[75].iq=76; 445 a[76].name="王平"; 446 a[76].atk=89; 447 a[76].iq=88; 448 a[77].name="张翼"; 449 a[77].atk=72; 450 a[77].iq=65; 451 a[78].name="陈到"; 452 a[78].atk=93; 453 a[78].iq=91; 454 a[79].name="邓艾"; 455 a[79].atk=95; 456 a[79].iq=94; 457 a[80].name="黄权"; 458 a[80].atk=25; 459 a[80].iq=49; 460 a[81].name="公孙瓒"; 461 a[81].atk=73; 462 a[81].iq=81; 463 a[82].name="公孙康"; 464 a[82].atk=64; 465 a[82].iq=59; 466 a[83].name="牛金"; 467 a[83].atk=84; 468 a[83].iq=66; 469 a[84].name="于禁"; 470 a[84].atk=84; 471 a[84].iq=70; 472 a[85].name="郭淮"; 473 a[85].atk=89; 474 a[85].iq=85; 475 a[86].name="王颀"; 476 a[86].atk=89; 477 a[86].iq=47; 478 a[87].name="朱然"; 479 a[87].atk=71; 480 a[87].iq=40; 481 a[88].name="严白虎"; 482 a[88].atk=77; 483 a[88].iq=63; 484 a[89].name="丁奉"; 485 a[89].atk=72; 486 a[89].iq=62; 487 a[90].name="潘璋"; 488 a[90].atk=71; 489 a[90].iq=54; 490 a[91].name="王双"; 491 a[91].atk=88; 492 a[91].iq=82; 493 a[92].name="张绣"; 494 a[92].atk=91; 495 a[92].iq=86; 496 a[93].name="张任"; 497 a[93].atk=90; 498 a[93].iq=82; 499 } 500 501 void fuzhiyours(int x,int y) 502 { 503 yours[x].name=a[y].name; 504 yours[x].atk=a[y].atk; 505 yours[x].blood=a[y].blood; 506 yours[x].iq=a[y].iq; 507 yours[x].fa=a[y].fa; 508 yours[x].head=y; 509 yours[x].live=true; 510 } 511 512 void fuzhicomps(int x,int y) 513 { 514 comps[x].name=a[y].name; 515 comps[x].atk=a[y].atk; 516 comps[x].blood=a[y].blood; 517 comps[x].iq=a[y].iq; 518 comps[x].fa=a[y].fa; 519 comps[x].head=y; 520 comps[x].live=true; 521 } 522 523 void fuzhiyourpars(int x,int y) 524 { 525 yourpars[x].name=a[y].name; 526 yourpars[x].atk=a[y].atk; 527 yourpars[x].blood=a[y].blood; 528 yourpars[x].iq=a[y].iq; 529 yourpars[x].fa=a[y].fa; 530 yourpars[x].head=y; 531 yourpars[x].live=true; 532 } 533 534 void fuzhicomppars(int x,int y) 535 { 536 comppars[x].name=a[y].name; 537 comppars[x].atk=a[y].atk; 538 comppars[x].blood=a[y].blood; 539 comppars[x].iq=a[y].iq; 540 comppars[x].fa=a[y].fa; 541 comppars[x].head=y; 542 comppars[x].live=true; 543 } 544 545 void kaishi() 546 { 547 printf("\n"); 548 for(int i=0;i<=4;++i) 549 { 550 for(int j=0;j<=5;++j) 551 printf("%c",hehe[i][j]); 552 printf("\n"); 553 } 554 printf("由呵呵游戏出品\n"); 555 printf("\n"); 556 printf("开始! O(∩_∩)O 祝你好运~\n"); 557 printf("--------------------------------------\n"); 558 printf(" ※每打一行字需要按回车Enter继续!※\n"); 559 printf("--------------------------------------\n"); 560 Sleep(500); 561 printf("缓冲中"); 562 shenglve(); 563 printf("\n"); 564 printf("\n"); 565 printf(" ^- 三国群英传 -^ \n"); 566 printf("\n"); 567 } 568 569 void frinit() 570 { 571 printf("请输入你的名字:(保证无空格,无特殊字符)\n"); 572 printf(" "); 573 cin>>a[0].name; 574 a[0].blood=1000; 575 a[0].atk=1; 576 a[0].iq=1; 577 a[0].live=true; 578 a[0].fa=-1; 579 jieshao(0); 580 } 581 582 void init1(int d) 583 { 584 your_num=0; 585 comp_num=0; 586 memset(nameused,false,sizeof(nameused)); 587 printf("加载人物信息中,请稍后"); 588 shenglve(); 589 printf("\n"); 590 printf("\n"); 591 printf(" ※双方轮流出牌※\n"); 592 renwu(); 593 printf("你的对手是:"); 594 int res=rand()%charac_num+1; 595 cout<<charac[res]<<endl; 596 a[1000].name=charac[res]; 597 a[1000].atk=1; 598 a[1000].iq=1; 599 a[1000].blood=1000; 600 a[1000].fa=-1; 601 a[1000].live=true; 602 printf("\n"); 603 printf("对手人物信息: \n"); 604 jieshao(1000); 605 your_choujiang(30,20,d); 606 comp_choujiang(30,20,d); 607 fuzhiyours(0,0); 608 fuzhicomps(0,1000); 609 } 610 611 void init2(int d) 612 { 613 your_num=0; 614 comp_num=0; 615 yourpar_num=0; 616 comppar_num=0; 617 memset(nameused,false,sizeof(nameused)); 618 printf("加载人物信息中,请稍后"); 619 shenglve(); 620 printf("\n"); 621 printf("\n"); 622 printf(" ※双方轮流出牌※\n"); 623 renwu(); 624 printf("你的队友是:"); 625 int res=rand()%charac_num+1; 626 while(nameused[res]==true) 627 res=rand()%charac_num+1; 628 nameused[res]=true; 629 cout<<charac[res]<<endl; 630 a[1001].name=charac[res]; 631 a[1001].atk=1; 632 a[1001].iq=1; 633 a[1001].blood=1000; 634 a[1001].fa=-1; 635 a[1001].live=true; 636 printf("\n"); 637 printf("你队友的人物信息: \n"); 638 jieshao(1001); 639 printf("你的对手是:"); 640 res=rand()%charac_num+1; 641 while(nameused[res]==true) 642 res=rand()%charac_num+1; 643 nameused[res]=true; 644 cout<<charac[res]<<endl; 645 a[1000].name=charac[res]; 646 a[1000].atk=1; 647 a[1000].iq=1; 648 a[1000].blood=1000; 649 a[1000].fa=-1; 650 a[1000].live=true; 651 printf("\n"); 652 printf("你对手的人物信息: \n"); 653 jieshao(1000); 654 printf("你的对手的队友是:"); 655 res=rand()%charac_num+1; 656 while(nameused[res]==true) 657 res=rand()%charac_num+1; 658 nameused[res]=true; 659 cout<<charac[res]<<endl; 660 a[2000].name=charac[res]; 661 a[2000].atk=1; 662 a[2000].iq=1; 663 a[2000].blood=1000; 664 a[2000].fa=-1; 665 a[2000].live=true; 666 printf("\n"); 667 printf("你对手的队友的人物信息: \n"); 668 jieshao(2000); 669 your_choujiang(30,20,d); 670 yourpar_choujiang(30,20,d); 671 comp_choujiang(30,20,d); 672 comppar_choujiang(30,20,d); 673 fuzhiyours(0,0); 674 fuzhicomps(0,1000); 675 fuzhiyourpars(0,1001); 676 fuzhicomppars(0,2000); 677 } 678 679 void play1() 680 { 681 a[0].blood=1000; 682 a[1000].blood=1000; 683 int temp_num; 684 printf("请选择双方武将数量: "); 685 scanf("%d",&temp_num); 686 init1(temp_num); 687 printf("对战开始!\n"); 688 printf("--------------------------------------\n"); 689 printf(" ※每回合双方各派出一名武将对决※\n"); 690 printf(" ※受到伤害=另一方攻击力*(随机一个1-6的数)-本方智商※\n"); 691 printf(" ※受到伤害可能为负数喲~※\n"); 692 printf(" ※每方主将如果阵亡,则此方视为失败※\n"); 693 printf("--------------------------------------\n"); 694 printf("\n"); 695 int turn=0; 696 while(yours[0].blood>0 && comps[0].blood>0) 697 { 698 turn++; 699 printf("^^^^^ ^^^^^ ^^^^^\n"); 700 printf("→第%d回合: \n",turn); 701 printf("选择一名己方武将参与本回合战斗: (输入对应数字) \n"); 702 int yourturn,compturn; 703 for(int i=0;i<=your_num;++i) 704 if(yours[i].live==true) 705 { 706 printf(" %d-",i); 707 cout<<yours[i].name; 708 } 709 printf("\n"); 710 scanf("%d",&yourturn); 711 compturn=rand()%(comp_num+1); 712 while(comps[compturn].live==false) 713 compturn=rand()%(comp_num+1); 714 printf("\n"); 715 printf("双方对战武将为: \n"); 716 printf(" "); 717 cout<<a[0].name; 718 printf("方: "); 719 cout<<yours[yourturn].name; 720 printf("\n"); 721 printf(" "); 722 cout<<a[1000].name; 723 printf("方: "); 724 cout<<comps[compturn].name; 725 printf("\n"); 726 printf("\n"); 727 int youratk=rand()%6+1,compatk=rand()%6+1; 728 while(compatk-youratk>=2) 729 compatk=rand()%6+1; 730 int youract=rand()%atkway_num+1,compact=rand()%atkway_num+1; 731 int yourharm=comps[compturn].atk*compatk-yours[yourturn].iq; 732 int compharm=yours[yourturn].atk*youratk-comps[compturn].iq; 733 comps[compturn].blood-=compharm; 734 a[comps[compturn].head].blood=comps[compturn].blood; 735 yours[compturn].blood-=yourharm; 736 a[yours[yourturn].head].blood=yours[yourturn].blood; 737 cout<<yours[yourturn].name<<" "<<attack_way[youract]; 738 printf(" (%d*%d-%d): ",yours[yourturn].atk,youratk,comps[compturn].iq); 739 cout<<comps[compturn].name; 740 printf("受到%d点伤害\n",compharm); 741 if(comps[compturn].blood<=0) 742 { 743 comps[compturn].live=false; 744 a[comps[compturn].head].live=false; 745 } 746 cout<<comps[compturn].name<<" "<<attack_way[compact]; 747 printf(" (%d*%d-%d): ",comps[compturn].atk,compatk,yours[yourturn].iq); 748 cout<<yours[yourturn].name; 749 printf("受到%d点伤害\n",yourharm); 750 if(yours[yourturn].blood<=0) 751 { 752 yours[yourturn].live=false; 753 a[yours[yourturn].head].live=false; 754 } 755 if(yours[yourturn].blood<=0) 756 { 757 cout<<a[0].name; 758 printf("方武将 "); 759 cout<<yours[yourturn].name; 760 printf("阵亡!\n"); 761 Sleep(200); 762 printf(" 默哀一秒钟"); 763 shenglve(); 764 printf("\n"); 765 } 766 if(comps[compturn].blood<=0) 767 { 768 cout<<a[1000].name; 769 printf("方武将 "); 770 cout<<comps[compturn].name; 771 printf("阵亡!\n"); 772 Sleep(200); 773 printf(" 默哀一秒钟"); 774 shenglve(); 775 printf("\n"); 776 } 777 printf("\n"); 778 } 779 printf("\n"); 780 if(yours[0].blood<=0) 781 { 782 cout<<comps[0].name; 783 printf("方胜利! ヾ( ̄ー ̄)X(^▽^)ゞ \n"); 784 } 785 if(comps[0].blood<=0) 786 { 787 cout<<yours[0].name; 788 printf("方胜利! ヾ( ̄ー ̄)X(^▽^)ゞ \n"); 789 human_num+=0; 790 } 791 printf("\n"); 792 } 793 794 void play2() 795 { 796 a[0].blood=1000; 797 a[1000].blood=1000; 798 a[1001].blood=1000; 799 a[2000].blood=1000; 800 int temp_num; 801 printf("请选择每人武将数量: "); 802 scanf("%d",&temp_num); 803 init2(temp_num); 804 printf("对战开始!\n"); 805 printf("--------------------------------------\n"); 806 printf(" ※每回合双方各派出一名武将对决※\n"); 807 printf(" ※受到伤害=另一方攻击力*(随机一个1-6的数)-本方智商※\n"); 808 printf(" ※受到伤害可能为负数喲~※\n"); 809 printf(" ※每方主将如果阵亡,则此人视为失败,不能继续战斗※\n"); 810 printf(" ※队友失败还可继续战斗,主人物失败则此方直接失败※\n"); 811 printf("--------------------------------------\n"); 812 printf("\n"); 813 int turn=0; 814 while(yours[0].blood>0 && comps[0].blood>0) 815 { 816 turn++; 817 printf("^^^^^ ^^^^^ ^^^^^\n"); 818 printf("→第%d回合: \n",turn); 819 printf("选择一名己方武将参与本回合战斗: (输入对应数字) \n"); 820 int yourturn,yourparturn,compturn,compparturn; 821 for(int i=0;i<=your_num;++i) 822 if(yours[i].live==true) 823 { 824 printf(" %d-",i); 825 cout<<yours[i].name; 826 } 827 printf("\n"); 828 scanf("%d",&yourturn); 829 yourparturn=rand()%(yourpar_num+1); 830 while(yourpars[yourparturn].live==false) 831 yourparturn=rand()%(yourpar_num+1); 832 compturn=rand()%(comp_num+1); 833 while(comps[compturn].live==false) 834 compturn=rand()%(comp_num+1); 835 compparturn=rand()%(comppar_num+1); 836 while(comppars[compparturn].live==false) 837 compparturn=rand()%(comppar_num+1); 838 printf("\n"); 839 printf("双方对战武将为: \n"); 840 printf(" "); 841 cout<<a[0].name; 842 printf("方: "); 843 cout<<yours[yourturn].name; 844 printf("\n"); 845 printf(" "); 846 cout<<a[1001].name; 847 printf("方: "); 848 cout<<yourpars[yourparturn].name; 849 printf("\n"); 850 printf("\n"); 851 printf(" "); 852 cout<<a[1000].name; 853 printf("方: "); 854 cout<<comps[compturn].name; 855 printf("\n"); 856 printf(" "); 857 cout<<a[2000].name; 858 printf("方: "); 859 cout<<comppars[compparturn].name; 860 printf("\n"); 861 printf("\n"); 862 int youratk=rand()%6+1,yourparatk=rand()%6+1; 863 int compatk=rand()%6+1,compparatk=rand()%6+1; 864 while(compatk-youratk>=2) 865 compatk=rand()%6+1; 866 while(compparatk-yourparatk>=2) 867 compparatk=rand()%6+1; 868 int yourdir=rand()%2,compdir=rand()%2; 869 int youract=rand()%atkway_num+1,compact=rand()%atkway_num+1; 870 int yourparact=rand()%atkway_num+1,compparact=rand()%atkway_num+1; 871 int yourharm,compharm,yourparharm,compparharm; 872 if(yourdir==0) 873 { 874 compharm=yours[yourturn].atk*youratk-comps[compturn].iq; 875 compparharm=yourpars[yourparturn].atk*yourparatk-comppars[compparturn].iq; 876 } 877 else 878 { 879 compharm=yourpars[yourparturn].atk*yourparatk-comps[compturn].iq; 880 compparharm=yours[yourturn].atk*youratk-comppars[compparturn].iq; 881 } 882 if(compdir==0) 883 { 884 yourharm=comps[compturn].atk*compatk-yours[yourturn].iq; 885 yourparharm=comppars[compparturn].atk*compparatk-yourpars[yourparturn].iq; 886 } 887 else 888 { 889 yourharm=comppars[compparturn].atk*compparatk-yours[yourturn].iq; 890 yourparharm=comps[compturn].atk*compatk-yourpars[yourparturn].iq; 891 } 892 comps[compturn].blood-=compharm; 893 a[comps[compturn].head].blood=comps[compturn].blood; 894 comppars[compparturn].blood-=compparharm; 895 a[comppars[compparturn].head].blood=comps[compparturn].blood; 896 yours[compturn].blood-=yourharm; 897 a[yours[yourturn].head].blood=yours[yourturn].blood; 898 yourpars[compparturn].blood-=yourparharm; 899 a[yourpars[yourparturn].head].blood=yourpars[yourparturn].blood; 900 if(comps[compturn].blood<=0) 901 { 902 comps[compturn].live=false; 903 a[comps[compturn].head].live=false; 904 } 905 if(comppars[compparturn].blood<=0) 906 { 907 comppars[compparturn].live=false; 908 a[comppars[compparturn].head].live=false; 909 } 910 if(yours[yourturn].blood<=0) 911 { 912 yours[yourturn].live=false; 913 a[yours[yourturn].head].live=false; 914 } 915 if(yourpars[yourparturn].blood<=0) 916 { 917 yourpars[yourparturn].live=false; 918 a[yourpars[yourparturn].head].live=false; 919 } 920 if(yourdir==0) 921 { 922 cout<<yours[yourturn].name<<" "<<attack_way[youract]; 923 printf(" (%d*%d-%d): ",yours[yourturn].atk,youratk,comps[compturn].iq); 924 cout<<comps[compturn].name; 925 printf("受到%d点伤害\n",compharm); 926 cout<<yourpars[yourparturn].name<<" "<<attack_way[yourparact]; 927 printf(" (%d*%d-%d): ",yourpars[yourparturn].atk,yourparatk,comppars[compparturn].iq); 928 cout<<comppars[compparturn].name; 929 printf("受到%d点伤害\n",compparharm); 930 printf("\n"); 931 } 932 else 933 { 934 cout<<yours[yourturn].name<<" "<<attack_way[youract]; 935 printf(" (%d*%d-%d): ",yours[yourturn].atk,youratk,comppars[compparturn].iq); 936 cout<<comppars[compparturn].name; 937 printf("受到%d点伤害\n",compparharm); 938 cout<<yourpars[yourparturn].name<<" "<<attack_way[yourparact]; 939 printf(" (%d*%d-%d): ",yourpars[yourturn].atk,yourparatk,comps[compturn].iq); 940 cout<<comps[compturn].name; 941 printf("受到%d点伤害\n",compharm); 942 printf("\n"); 943 } 944 if(compdir==0) 945 { 946 cout<<comps[compturn].name<<" "<<attack_way[compact]; 947 printf(" (%d*%d-%d): ",comps[compturn].atk,compatk,yours[yourturn].iq); 948 cout<<yours[yourturn].name; 949 printf("受到%d点伤害\n",yourharm); 950 cout<<comppars[compparturn].name<<" "<<attack_way[compparact]; 951 printf(" (%d*%d-%d): ",comppars[compparturn].atk,compparatk,yourpars[yourparturn].iq); 952 cout<<yourpars[yourparturn].name; 953 printf("受到%d点伤害\n",yourparharm); 954 } 955 else 956 { 957 cout<<comps[compturn].name<<" "<<attack_way[compact]; 958 printf(" (%d*%d-%d): ",comps[compturn].atk,compatk,yourpars[yourparturn].iq); 959 cout<<yourpars[yourparturn].name; 960 printf("受到%d点伤害\n",yourparharm); 961 cout<<comppars[compparturn].name<<" "<<attack_way[compparact]; 962 printf(" (%d*%d-%d): ",comppars[compparturn].atk,compparatk,yours[yourturn].iq); 963 cout<<yours[yourturn].name; 964 printf("受到%d点伤害\n",yourharm); 965 } 966 if(yours[yourturn].blood<=0) 967 { 968 cout<<a[0].name; 969 printf("方武将 "); 970 cout<<yours[yourturn].name; 971 printf(" 阵亡!\n"); 972 Sleep(200); 973 printf(" 默哀一秒钟"); 974 shenglve(); 975 printf("\n"); 976 } 977 if(yourpars[yourparturn].blood<=0) 978 { 979 cout<<a[1001].name; 980 printf("方武将 "); 981 cout<<yourpars[yourparturn].name; 982 printf(" 阵亡!\n"); 983 Sleep(200); 984 printf(" 默哀一秒钟"); 985 shenglve(); 986 printf("\n"); 987 } 988 if(comps[compturn].blood<=0) 989 { 990 cout<<a[1000].name; 991 printf("方武将 "); 992 cout<<comps[compturn].name; 993 printf(" 阵亡!\n"); 994 Sleep(200); 995 printf(" 默哀一秒钟"); 996 shenglve(); 997 printf("\n"); 998 } 999 if(comppars[compparturn].blood<=0) 1000 { 1001 cout<<a[2000].name; 1002 printf("方武将 "); 1003 cout<<comppars[compparturn].name; 1004 printf(" 阵亡!\n"); 1005 Sleep(200); 1006 printf(" 默哀一秒钟"); 1007 shenglve(); 1008 printf("\n"); 1009 } 1010 printf("\n"); 1011 } 1012 printf("\n"); 1013 if(yours[0].blood<=0) 1014 { 1015 cout<<comps[0].name<<" & "<<comppars[0].name; 1016 printf("方胜利! ヾ( ̄ー ̄)X(^▽^)ゞ \n"); 1017 } 1018 if(comps[0].blood<=0) 1019 { 1020 cout<<yours[0].name<<" & "<<yourpars[0].name; 1021 printf("方胜利! ヾ( ̄ー ̄)X(^▽^)ゞ \n"); 1022 } 1023 printf("\n"); 1024 } 1025 1026 void play3() 1027 { 1028 printf("暂未开放,敬请期待\n"); 1029 } 1030 1031 void choose() 1032 { 1033 printf("请选择对战模式:\n"); 1034 printf("-①.1V1模式 ···输入1\n"); 1035 printf("-②.2V2模式 ···输入2\n"); 1036 printf("-③.国战模式 ···输入3\n"); 1037 scanf("%d",&goal); 1038 while(goal>3 || goal<1) 1039 { 1040 printf("无此选项\n"); 1041 printf("\n"); 1042 printf("请选择对战模式:\n"); 1043 printf("-①.1V1模式 ···输入1\n"); 1044 printf("-②.2V2模式 ···输入2\n"); 1045 printf("-③.国战模式···输入3\n"); 1046 scanf("%d",&goal); 1047 } 1048 if(goal==1) 1049 play1(); 1050 if(goal==2) 1051 play2(); 1052 if(goal==3) 1053 play3(); 1054 printf("加载中"); 1055 shenglve(); 1056 printf("\n"); 1057 } 1058 1059 int main() 1060 { 1061 srand((unsigned int) time (NULL)); 1062 printf("~请按提示进行操作~\n"); 1063 Sleep(300); 1064 kaishi(); 1065 frinit(); 1066 choose(); 1067 while(1) 1068 { 1069 printf("是否重新开始? 1-是 2-否\n"); 1070 scanf("%d",&goal); 1071 if(goal==1) 1072 choose(); 1073 else 1074 break; 1075 } 1076 printf("Ending!\n"); 1077 return 0; 1078 }