f 数据仓库与分析-战舰世界2.0版本 版本号:2.6.1 - Powered by qidao123.com技术社区

战舰世界2.0版本 版本号:2.6.1

  论坛元老 | 2025-5-5 16:09:22 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 1993|帖子 1993|积分 5979

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. #include <bits/stdc++.h>
  2. #include <time.h>
  3. #include <windows.h>
  4. //#include <stdlib.h>
  5. #include <unistd.h>
  6. //#include <conio.h>
  7. //#include <fstream>
  8. //#include <random>
  9. using namespace std;
  10. bool sea;
  11. int km=0;
  12. bool look[300][300];
  13. long long money=4000000;
  14. int shuliang=1;
  15. struct zhan
  16. {
  17.         string name;
  18.         int ld;//雷达
  19.         int attack,guard;//攻击 防御
  20.         int Zhu,Fu,yulei,shuilei;//主炮 副炮 鱼雷 水雷
  21.         int att_s_1,att_s_2;
  22.         int att_good_1,att_good_2,att_good_3,att_good_4;
  23.         double HP,fire,HPm;
  24.         double shut_down[20];
  25.         int gas_good;
  26.         int gas,gasm;
  27.         int boat[90][40];
  28.         int long_;//长度
  29.         double Lv;
  30.         bool go;//出海
  31.         double lx,ly;
  32.         int jiao;///角度
  33.         double en_1,en_2,en_3,EPU;
  34. };
  35. zhan a[50];
  36. zhan lmap[300][300];
  37. zhan shop[105];
  38. void pr(const char* s, int color)
  39. {
  40.         HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
  41.         SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | color);
  42.         printf(s);
  43.         SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | 7);
  44. }
  45. /*
  46. 0 = 黑色 8 = 灰色
  47. 1 = 蓝色 9 = 淡蓝色
  48. 2 = 绿色 10 = 淡绿色
  49. 3 = 浅绿色 11 = 淡浅绿色
  50. 4 = 红色 12 = 淡红色
  51. 5 = 紫色 13 = 淡紫色
  52. 6 = 黄色 14 = 淡黄色
  53. 7 = 白色 15 = 亮白色
  54. */
  55. void new_do()
  56. {
  57.         system("cls");
  58.         Sleep(50);
  59.         cout<<setw(50)<<"----------新手指南----------"<<'\n';
  60.         cout<<"敌方会有1~3艘 旗舰(战列舰)        ";
  61.         cout<<"它们的正面装甲级厚,尽量使用鱼雷或在侧面使用主炮攻击"<<'\n';
  62.         cout<<"敌方会有3~10艘副舰(驱逐舰、护卫舰)"<<'\n';
  63.         cout<<"它们防空能力强悍,副炮数量极多,就连战机都很难靠近它们,想办法用潜艇鱼雷攻击它们";
  64.         cout<<'\n';
  65.         cout<<"敌方可能会有潜艇,如果你没有反潜设备就要小心了,它们不会出现在战斗时侦察机提供的《战舰清单》中"<<'\n';
  66.         cout<<"你在开始游戏时会有1艘(几乎)空荡荡的战列舰"<<'\n';
  67.         cout<<"你可以在 加工厂 升级战舰"<<'\n';
  68.         cout<<"你可以在 制造厂 制造战列舰(的空壳,几乎啥都没有)"<<'\n';
  69.         cout<<"提示"<<'\n';
  70.         cout<<"战列舰的所有数据都在 战舰情况 中,随时可以查看"<<'\n';
  71.         cout<<"你可以在战舰商店购买现成各类战舰"<<'\n';
  72.         cout<<"刚开始你会有  400w  资金,到了游戏中你就会知道,这远远不够"<<'\n';
  73.         system("pause");
  74. }
  75. void buy_shop()
  76. {
  77.        
  78. }
  79. void fight()
  80. {
  81.         int xz;
  82.         cout<<"输入出航的船只"<<'\n';
  83.         for(int i=1; i<=shuliang; i++)
  84.         {
  85.                 cout<<i<<" "<<a[i].name;
  86.                 if(a[i].gas>0) pr("  可以出战",2);
  87.                 else pr("  缺少燃油",4);
  88.                 if(a[i].attack==0) pr("  无战斗力",6);
  89.                 else pr("战斗力:",2),cout<<a[i].attack;
  90.                 cout<<'\n';
  91.         }
  92.         cin>>xz;
  93.         a[xz].go=1;
  94.         cout<<"确认:"<<'\n';
  95.         cout<<xz<<" "<<a[xz].name;
  96.         if(a[xz].gas>0) pr("  可以出战",2);
  97.         else pr("  缺少燃油",4);
  98.         if(a[xz].attack==0) pr("  无战斗力",6);
  99.         else pr("战斗力:",2),cout<<a[xz].attack;
  100.         cout<<'\n';
  101.         cout<<'\n';
  102.         system("pause");
  103.         int ling1=xz;
  104.         string ling2;
  105.         while(ling1!=-1&&ling2!="-1")
  106.         {
  107.                 cout<<"请输入指令-  按 0 0 查看您的指令输入方法"<<'\n';
  108.                 cin>>ling1>>ling2;
  109.                 if(ling2=="0"&&ling1==0)
  110.                 {
  111.                         cout<<"指令1 :编号+' '+w(小写) >>选中舰前进 前进速度在2~5次加速后会逐渐变快,不要急 例:1 w"<<'\n';
  112.                         cout<<"指令2 :编号+' '+a(小写)+' '+左转角度 >>选中舰左转 例:1 a 30 角度越小,";
  113.                         cout<<"转速越快"<<'\n';
  114.                         cout<<"指令3 :编号+' '+d(小写)+' '+右转角度 >>选中舰右转 例:1 d 30 角度越小,";
  115.                         cout<<"转速越快"<<'\n';
  116.                         cout<<"指令4 :编号+' '+q(小写) >>打开雷达"<<'\n';
  117.                         cout<<"指令5 :编号+' '+e(小写) >>关闭雷达"<<'\n';
  118.                         cout<<"指令6 :编号+' '+x(小写)+' '+敌方编号 >>向敌方开火"<<'\n';
  119.                         pr("指令7 :-1 -1 >>回航",2);
  120.                         pr("指令7 :指令输入并执行后自动进入下一轮",2);
  121.                         cout<<'\n';
  122.                         system("pause");
  123.                 }
  124.                 if(ling2=="w")
  125.                 {
  126.                         if(a[ling1].go==false) cout<<"不能使用两次!"<<'\n';
  127.                         else
  128.                         {
  129.                                 a[ling1].go=false;
  130.                                 a[ling1].en_1+=30;
  131.                                 a[ling1].en_2+=30;
  132.                                 if(a[ling1].en_1>0&&a[ling1].en_2>0)
  133.                                 {
  134.                                         if(a[ling1].jiao>=0&&a[ling1].jiao<=90)
  135.                                         {
  136.                                                 a[ling1].lx+=(a[ling1].en_1+a[ling1].en_2)*cos(a[ling1].jiao*a[ling1].jiao/180)/100;
  137.                                                 a[ling1].ly+=(a[ling1].en_1+a[ling1].en_2)*sin(a[ling1].jiao*a[ling1].jiao/180)/100;
  138.                                                 a[ling1].EPU+=5;
  139.                                         }
  140.                                         else if(a[ling1].jiao>90&&a[ling1].jiao<=180)
  141.                                         {
  142.                                                 a[ling1].lx-=(a[ling1].en_1+a[ling1].en_2)*cos((180-a[ling1].jiao)*a[ling1].jiao/180)/100;
  143.                                                 a[ling1].ly+=(a[ling1].en_1+a[ling1].en_2)*sin((180-a[ling1].jiao)*a[ling1].jiao/180)/100;
  144.                                                 a[ling1].EPU+=5;
  145.                                         }
  146.                                         else if(a[ling1].jiao>180&&a[ling1].jiao<=270)
  147.                                         {
  148.                                                 a[ling1].lx-=(a[ling1].en_1+a[ling1].en_2)*cos((a[ling1].jiao-180)*a[ling1].jiao/180)/100;
  149.                                                 a[ling1].ly-=(a[ling1].en_1+a[ling1].en_2)*sin((a[ling1].jiao-180)*a[ling1].jiao/180)/100;
  150.                                                 a[ling1].EPU+=5;
  151.                                         }
  152.                                         else if(a[ling1].jiao>270&&a[ling1].jiao<=360)
  153.                                         {
  154.                                                 a[ling1].lx+=(a[ling1].en_1+a[ling1].en_2)*cos((360-a[ling1].jiao)*a[ling1].jiao/180)/100;
  155.                                                 a[ling1].ly-=(a[ling1].en_1+a[ling1].en_2)*sin((360-a[ling1].jiao)*a[ling1].jiao/180)/100;
  156.                                                 a[ling1].EPU+=35;
  157.                                         }
  158.                                         a[ling1].EPU+=5;
  159.                                 }
  160.                                 cout<<"坐标x:"<<a[ling1].lx<<"    "<<"坐标y:"<<a[ling1].ly<<'\n';
  161.                         }
  162.                 }
  163.                 if(ling2=="a")
  164.                 {
  165.                         double jiao;
  166.                         cin>>jiao;
  167.                         Sleep(int(jiao/10.0));
  168.                         a[ling1].jiao-=jiao;
  169.                 }
  170.                 if(ling2=="d")
  171.                 {
  172.                         double jiao;
  173.                         cin>>jiao;
  174.                         Sleep(int(jiao/10.0));
  175.                         a[ling1].jiao+=jiao;
  176.                 }
  177.                 for(int i=1; i<=shuliang; i++)
  178.                 {
  179.                         if(a[i].en_1>0&&a[i].en_2>0)
  180.                         {
  181.                                 if(a[i].jiao>=0&&a[i].jiao<=90)
  182.                                 {
  183.                                         a[i].lx+=(a[i].en_1+a[i].en_2)*cos(a[i].jiao*a[ling1].jiao/180)/100;
  184.                                         a[i].ly+=(a[i].en_1+a[i].en_2)*sin(a[i].jiao*a[ling1].jiao/180)/100;
  185.                                         a[i].EPU+=5;
  186.                                 }
  187.                                 else if(a[i].jiao>90&&a[i].jiao<=180)
  188.                                 {
  189.                                         a[i].lx-=(a[i].en_1+a[i].en_2)*cos((180-a[i].jiao)*a[ling1].jiao/180)/100;
  190.                                         a[i].ly+=(a[i].en_1+a[i].en_2)*sin((180-a[i].jiao)*a[ling1].jiao/180)/100;
  191.                                         a[i].EPU+=5;
  192.                                 }
  193.                                 else if(a[i].jiao>180&&a[i].jiao<=270)
  194.                                 {
  195.                                         a[i].lx-=(a[i].en_1+a[i].en_2)*cos((a[i].jiao-180)*a[ling1].jiao/180)/100;
  196.                                         a[i].ly-=(a[i].en_1+a[i].en_2)*sin((a[i].jiao-180)*a[ling1].jiao/180)/100;
  197.                                         a[i].EPU+=5;
  198.                                 }
  199.                                 else if(a[i].jiao>270&&a[i].jiao<=360)
  200.                                 {
  201.                                         a[i].lx+=(a[i].en_1+a[i].en_2)*cos((360-a[i].jiao)*a[ling1].jiao/180)/100;
  202.                                         a[i].ly-=(a[i].en_1+a[i].en_2)*sin((360-a[i].jiao)*a[ling1].jiao/180)/100;
  203.                                         a[i].EPU+=35;
  204.                                 }
  205.                                 a[i].EPU+=5;
  206.                         }
  207.                         cout<<a[i].name<<"  坐标x:"<<a[i].lx<<"    "<<"坐标y:"<<a[i].ly<<'\n';
  208.                 }
  209.                 if(ling2=="q")
  210.                 {
  211.                         a[ling1].ld=true;
  212.                         for(int i=a[ling1].lx-20; i<=a[ling1].lx+20; i++)
  213.                         {
  214.                                 for(int j=a[ling1].ly-20; j<=a[ling1].ly+20; j++)
  215.                                 {
  216.                                         look[i][j]=true;
  217.                                 }
  218.                         }
  219.                 }
  220.                 if(ling2=="e")
  221.                 {
  222.                         a[ling1].ld=false;
  223.                         for(int i=max(0,int(a[ling1].lx-20)); i<=min(100,int(a[ling1].lx+20)); i++)
  224.                         {
  225.                                 for(int j=max(0,int(a[ling1].ly-20)); j<=min(100,int(a[ling1].ly+20)); j++)
  226.                                 {
  227.                                         look[i][j]=false;
  228.                                 }
  229.                         }
  230.                 }
  231.                 if(ling2=="x")
  232.                 {
  233.                        
  234.                 }
  235.                
  236.         }
  237. }
  238. void up_gas()
  239. {
  240.         cout<<"这里是加油站----------"<<'\n';
  241.         for(int i=1; i<=shuliang; i++)
  242.         {
  243.                 Sleep(500);
  244.                 system("cls");
  245.                 cout<<i<<" "<<a[i].name<<":"<<a[i].gas<<"/"<<a[i].gasm<<'\n';
  246.                 cout<<"    可以航行"<<a[i].gas*a[i].gas_good<<"km (需要在"<<a[i].gas*a[i].gas_good/2.0<<"km返回)";
  247.                 cout<<'\n';
  248.                 if(a[i].gas==0) pr("必须加油",4);
  249.                 else if(a[i].gas>0&&a[i].gas!=a[i].gasm) pr("可以加油",6);
  250.                 else pr("无需加油",2);
  251.                 cout<<"(y/n)"<<'\n';
  252.                 string xz;
  253.                 cin>>xz;
  254.                 if(xz=="y"||xz=="Y")
  255.                 {
  256.                         cout<<"正在加油..."<<'\n';
  257.                         system("pause");
  258.                         Sleep(500);
  259.                         if(a[i].gasm==a[i].gas) cout<<"无需加油--"<<'\n';
  260.                         else
  261.                         {
  262.                                 long long money_want=(a[i].gasm-a[i].gas)/(a[i].gas_good)*600;
  263.                                 cout<<"需要"<<money_want<<"资金"<<'\n';
  264.                                 if(money_want>money)
  265.                                 {
  266.                                         cout<<"资金不足,为您尽量加油↖(^ω^)↗"<<'\n';
  267.                                         a[i].gas=a[i].gas+money/600*a[i].gas_good;
  268.                                         money=0;
  269.                                 }
  270.                                 else
  271.                                 {
  272.                                         money-=money_want;
  273.                                         a[i].gas=a[i].gasm;
  274.                                 }
  275.                                 cout<<"加油完成---"<<'\n';
  276.                                 cout<<i<<" "<<a[i].name<<":"<<a[i].gas<<"/"<<a[i].gasm<<'\n';
  277.                                 cout<<"    可以航行"<<a[i].gas/a[i].gas_good<<"km (需要在"<<a[i].gas/a[i].gas_good/2.0<<"km返回)";
  278.                                 cout<<'\n';
  279.                                 if(a[i].gas==0) pr("必须加油",4);
  280.                                 else if(a[i].gas>0&&a[i].gas!=a[i].gasm) pr("可以加油",6);
  281.                                 else pr("无需加油",2);
  282.                                 cout<<'\n';
  283.                         }
  284.                 }
  285.                 else
  286.                 {
  287.                         cout<<'\n';
  288.                         system("pause");
  289.                 }
  290.         }
  291.         cout<<'\n';
  292.         system("pause");
  293. }
  294. void up_on1()
  295. {
  296.         while(1)
  297.         {
  298.                 for(int i=1; i<=shuliang; i++)
  299.                 {
  300.                         cout<<"当前资金:"<<money<<'\n';
  301.                         cout<<i<<" "<<a[i].name<<": Lv. "<<a[i].Lv<<'\n';
  302.                         a[i].HP=a[i].HPm;
  303.                         cout<<"0  不升级 下一个"<<'\n';
  304.                         cout<<"1  血量:"<<a[i].HP<<" / "<<a[i].HPm<<'\n';
  305.                         cout<<"2  油量:"<<a[i].gas<<" / "<<a[i].gasm<<'\n';
  306.                         cout<<"3  燃油等级:"<<a[i].gas_good<<"/1 (越小越好)"<<'\n';
  307.                         cout<<"4  长度:"<<a[i].long_<<"m"<<'\n';
  308.                         cout<<"5  主炮数量:"<<a[i].Zhu<<'\n';
  309.                         cout<<"6      精准度:"<<a[i].att_good_1<<"%"<<'\n';
  310.                         cout<<"7  副炮数量:"<<a[i].Fu<<'\n';
  311.                         cout<<"8      精准度:"<<a[i].att_good_2<<"%"<<'\n';
  312.                         cout<<"9  鱼雷精准度:"<<a[i].att_good_3<<"%"<<'\n';
  313.                         cout<<"10 水雷精准度:"<<a[i].att_good_4<<"%"<<'\n';
  314.                         cout<<'\n';
  315.                         system("pause");
  316.                         short k;
  317.                         cin>>k;
  318.                         double l;
  319.                         switch(k)
  320.                         {
  321.                                 case 0:
  322.                                         break;
  323.                                 case 1:
  324.                                         cout<<"血量升级价格:2点/资金   等级≥5时 5点/资金"<<'\n';
  325.                                         cout<<"购买血量(最大";
  326.                                         if(a[i].Lv>=5) cout<<money*5,l=money*5;
  327.                                         else cout<<money*2,l=money*2;
  328.                                         cout<<") :    ";
  329.                                         double xz;
  330.                                         cin>>xz;
  331.                                         while(xz>l) cout<<"Error!",cin>>xz;
  332.                                         if(a[i].Lv>=5) l=xz*5;
  333.                                         else l=xz*2;
  334.                                         money-=l;
  335.                                         a[i].HPm+=xz;
  336.                                         break;
  337.                                 case 2:
  338.                                         cout<<"油量升级价格:1点/资金   等级≥10时 2点/资金"<<'\n';
  339.                                         cout<<"购买油量(最大";
  340.                                         if(a[i].Lv>=5) cout<<money*1,l=money*1;
  341.                                         else cout<<money,l=money;
  342.                                         cout<<") :    ";
  343.                                         cin>>xz;
  344.                                         while(xz>l) cout<<"Error!",cin>>xz;
  345.                                         if(a[i].Lv>=10) l=xz*2;
  346.                                         else l=xz;
  347.                                         money-=l;
  348.                                         a[i].gasm+=xz;
  349.                                         break;
  350.                                 case 3:
  351.                                         cout<<"90w变为1(需要将该舰现有油量清零)"<<'\n';
  352.                                         if(money>=900000) a[i].gas_good=1,a[i].gas=0,money-=900000;
  353.                                         else system("pause");
  354.                                         a[i].Lv+=1;
  355.                                         break;
  356.                                 case 4:
  357.                                         cout<<"长度升级价格:5w/m"<<'\n';
  358.                                         cout<<"购买长度(最大";
  359.                                         cout<<fixed<<setprecision(2)<<money/5.0,l=money/5.0;
  360.                                         cout<<") :    ";
  361.                                         cin>>xz;
  362.                                         while(xz>l) cout<<"Error!",cin>>xz;
  363.                                         l=xz*50000;
  364.                                         money-=l;
  365.                                         a[i].long_+=xz;
  366.                                         a[i].Lv+=xz*0.1;
  367.                                         break;
  368.                                 case 5:
  369.                                         if(a[i].long_-a[i].Zhu*2-a[i].Fu*2-a[i].Zhu*1-a[i].Zhu*1-a[i].gasm/100<2)
  370.                                         {
  371.                                                 cout<<"甲板不够,去加长甲板吧"<<'\n';
  372.                                         }
  373.                                         else
  374.                                         {
  375.                                                 cout<<"口径:1  80mm 10w"<<'\n';
  376.                                                 cout<<"      2  95mm 12w"<<'\n';
  377.                                                 cout<<"      3 110mm 20w"<<'\n';
  378.                                                 cout<<"      4 160mm 50w"<<'\n';
  379.                                                 cout<<"      5 320mm 90w"<<'\n';
  380.                                         }
  381.                                         int kj;
  382.                                         cin>>kj;
  383.                                         if(kj==1)
  384.                                         {
  385.                                                 a[i].Zhu++;
  386.                                                 a[i].attack+=80;
  387.                                                 a[i].Lv+=0.1;
  388.                                                 money-=100000;
  389.                                         }
  390.                                         if(kj==2)
  391.                                         {
  392.                                                 a[i].Zhu++;
  393.                                                 a[i].attack+=95;
  394.                                                 a[i].Lv+=0.2;
  395.                                                 money-=120000;
  396.                                         }
  397.                                         if(kj==3)
  398.                                         {
  399.                                                 a[i].Zhu++;
  400.                                                 a[i].attack+=110;
  401.                                                 a[i].Lv+=0.3;
  402.                                                 money-=200000;
  403.                                         }
  404.                                         if(kj==4)
  405.                                         {
  406.                                                 a[i].Zhu++;
  407.                                                 a[i].attack+=160;
  408.                                                 a[i].Lv+=0.5;
  409.                                                 money-=500000;
  410.                                         }
  411.                                         if(kj==5)
  412.                                         {
  413.                                                 a[i].Zhu++;
  414.                                                 a[i].attack+=320;
  415.                                                 a[i].Lv+=1;
  416.                                                 money-=900000;
  417.                                         }
  418.                                         break;
  419.                                 case 6:
  420.                                         cout<<"精准度升级为 5000资金/ 0.1%"<<'\n';
  421.                                         cout<<"输入投入资金:";
  422.                                         int mon;
  423.                                         cin>>mon;
  424.                                         money-=mon;
  425.                                         a[i].att_good_1+=mon*1.0/5000.0;
  426.                                         a[i].Lv+=0.01*mon*1.0/5000.0;
  427.                                         break;
  428.        
  429.                                 case 7:
  430.                                         if(a[i].long_-a[i].Zhu*2-a[i].Fu*2-a[i].Zhu*1-a[i].Zhu*1-a[i].gasm/100<1)
  431.                                         {
  432.                                                 cout<<"甲板不够,去加长甲板吧"<<'\n';
  433.                                         }
  434.                                         else
  435.                                         {
  436.                                                 cout<<"口径:1  10mm 10w"<<'\n';
  437.                                                 cout<<"      2  25mm 12w"<<'\n';
  438.                                                 cout<<"      3  50mm 20w"<<'\n';
  439.                                                 cout<<"      4  60mm 50w"<<'\n';
  440.                                                 cout<<"      5  70mm 90w"<<'\n';
  441.                                                 cin>>kj;
  442.                                                 if(kj==1)
  443.                                                 {
  444.                                                         a[i].Fu++;
  445.                                                         a[i].attack+=10;
  446.                                                         money-=100000;
  447.                                                 }
  448.                                                 if(kj==2)
  449.                                                 {
  450.                                                         a[i].Fu++;
  451.                                                         a[i].attack+=25;
  452.                                                         money-=120000;
  453.                                                 }
  454.                                                 if(kj==3)
  455.                                                 {
  456.                                                         a[i].Fu++;
  457.                                                         a[i].attack+=50;
  458.                                                         money-=200000;
  459.                                                 }
  460.                                                 if(kj==4)
  461.                                                 {
  462.                                                         a[i].Fu++;
  463.                                                         a[i].attack+=60;
  464.                                                         money-=500000;
  465.                                                 }
  466.                                                 if(kj==5)
  467.                                                 {
  468.                                                         a[i].Fu++;
  469.                                                         a[i].attack+=70;
  470.                                                         money-=900000;
  471.                                                 }
  472.                                                 a[i].Lv=a[i].Lv+0.1*kj;
  473.                                         }
  474.        
  475.                                         break;
  476.                                         /*
  477.                                         cout<<"8      精准度:"<<a[i].att_good_2<<"%"<<'\n';
  478.                                         cout<<"9  鱼雷精准度:"<<a[i].att_good_3<<"%"<<'\n';
  479.                                         cout<<"10 水雷精准度:"<<a[i].att_good_4<<"%"<<'\n';
  480.                                         */
  481.                                 case 8:
  482.                                         cout<<"精准度升级为 5000资金/ 0.1%"<<'\n';
  483.                                         cout<<"输入投入资金:";
  484.                                         cin>>mon;
  485.                                         money-=mon;
  486.                                         a[i].att_good_2+=mon/5000;
  487.                                         a[i].Lv=a[i].Lv+mon/5000;
  488.                                         break;
  489.                                 case 9:
  490.                                         cout<<"精准度升级为 5000资金/ 0.1%"<<'\n';
  491.                                         cout<<"输入投入资金:";
  492.                                         cin>>mon;
  493.                                         money-=mon;
  494.                                         a[i].att_good_3+=mon/5000;
  495.                                         break;
  496.                                 case 10:
  497.                                         cout<<"精准度升级为 5000资金/ 0.1%"<<'\n';
  498.                                         cout<<"输入投入资金:";
  499.                                         cin>>mon;
  500.                                         money-=mon;
  501.                                         a[i].att_good_4+=mon/5000;
  502.                                         break;
  503.                         }
  504.                 }
  505.                 cout<<"是否需要结束升级?(y/n)"<<'\n';
  506.                 char l;
  507.                 cin>>l;
  508.                 if(l=='y') break;
  509.         }
  510.        
  511. }
  512. void up_build()
  513. {
  514.         int xz;
  515.         cout<<"需要:"<<'\n';
  516.         cout<<"1 驱逐舰  7500w"<<'\n';
  517.         cout<<"2 护卫舰  7500w"<<'\n';
  518.         cout<<"3 巡洋舰  8000w"<<'\n';
  519.         cout<<"4 战列舰  9500w"<<'\n';
  520.         cout<<"5 潜艇    7000w"<<'\n';
  521.         cout<<"6 弹药"<<'\n';
  522.         cin>>xz;
  523.         string namel;
  524.         if(xz==1)
  525.         {
  526.                 money-=75000000;
  527.                 cout<<"名字:";
  528.                 while(cin>>namel)
  529.                 {
  530.                         int f=1;
  531.                         for(int i=1; i<=shuliang; i++)
  532.                         {
  533.                                 if(a[i].name==namel)
  534.                                 {
  535.                                         f=0;
  536.                                         cout<<"已有重复名称"<<'\n';
  537.                                 }
  538.                         }
  539.                         if(f==1) break;
  540.                 }
  541.                 a[shuliang+1].gas=500;
  542.                 a[shuliang+1].attack=0;
  543.                 a[shuliang+1].Zhu=0;
  544.                 a[shuliang+1].Fu=0;
  545.                 a[shuliang+1].yulei=0;
  546.                 a[shuliang+1].shuilei=0;
  547.                 a[shuliang+1].fire=0;
  548.                 a[shuliang+1].gas_good=10;
  549.                 a[shuliang+1].guard=0;
  550.                 a[shuliang+1].HP=6000;
  551.                 a[shuliang+1].name=namel;
  552.                 a[shuliang+1].HPm=6000;
  553.                 a[shuliang+1].gasm=700;
  554.                 a[shuliang+1].boat[40][15]=100;
  555.                 a[shuliang+1].long_=40;
  556.                 a[shuliang+1].att_s_1=0;
  557.                 a[shuliang+1].att_good_1=50;
  558.                 a[shuliang+1].att_good_2=50;
  559.                 a[shuliang+1].att_good_3=95;
  560.                 a[shuliang+1].att_good_4=90;
  561.                 a[shuliang+1].Lv=1;
  562.                 shuliang++;
  563.         }
  564.         if(xz==2)
  565.         {
  566.                 money-=75000000;
  567.                 cout<<"名字:";
  568.                 while(cin>>namel)
  569.                 {
  570.                         int f=1;
  571.                         for(int i=1; i<=shuliang; i++)
  572.                         {
  573.                                 if(a[i].name==namel)
  574.                                 {
  575.                                         f=0;
  576.                                         cout<<"已有重复名称"<<'\n';
  577.                                 }
  578.                         }
  579.                         if(f==1) break;
  580.                 }
  581.                 a[shuliang+1].gas=500;
  582.                 a[shuliang+1].attack=0;
  583.                 a[shuliang+1].Zhu=0;
  584.                 a[shuliang+1].Fu=0;
  585.                 a[shuliang+1].yulei=0;
  586.                 a[shuliang+1].shuilei=0;
  587.                 a[shuliang+1].fire=0;
  588.                 a[shuliang+1].gas_good=10;
  589.                 a[shuliang+1].guard=0;
  590.                 a[shuliang+1].HP=7000;
  591.                 a[shuliang+1].name=namel;
  592.                 a[shuliang+1].HPm=7000;
  593.                 a[shuliang+1].gasm=900;
  594.                 a[shuliang+1].boat[40][15]=100;
  595.                 a[shuliang+1].long_=40;
  596.                 a[shuliang+1].att_s_1=0;
  597.                 a[shuliang+1].att_good_1=60;
  598.                 a[shuliang+1].att_good_2=60;
  599.                 a[shuliang+1].att_good_3=75;
  600.                 a[shuliang+1].att_good_4=82;
  601.                 a[shuliang+1].Lv=1;
  602.                 shuliang++;
  603.         }
  604.         if(xz==3)
  605.         {
  606.                 money-=80000000;
  607.                 cout<<"名字:";
  608.                 string namel;
  609.                 while(cin>>namel)
  610.                 {
  611.                         int f=1;
  612.                         for(int i=1; i<=shuliang; i++)
  613.                         {
  614.                                 if(a[i].name==namel)
  615.                                 {
  616.                                         f=0;
  617.                                         cout<<"已有重复名称"<<'\n';
  618.                                 }
  619.                         }
  620.                         if(f==1) break;
  621.                 }
  622.                 a[shuliang+1].gas=1000;
  623.                 a[shuliang+1].attack=0;
  624.                 a[shuliang+1].Zhu=0;
  625.                 a[shuliang+1].Fu=0;
  626.                 a[shuliang+1].yulei=0;
  627.                 a[shuliang+1].shuilei=0;
  628.                 a[shuliang+1].fire=0;
  629.                 a[shuliang+1].gas_good=10;
  630.                 a[shuliang+1].guard=0;
  631.                 a[shuliang+1].HP=10000;
  632.                 a[shuliang+1].name=namel;
  633.                 a[shuliang+1].HPm=10000;
  634.                 a[shuliang+1].gasm=1200;
  635.                 a[shuliang+1].boat[40][15]=100;
  636.                 a[shuliang+1].long_=70;
  637.                 a[shuliang+1].att_s_1=0;
  638.                 a[shuliang+1].att_good_1=10;
  639.                 a[shuliang+1].att_good_2=40;
  640.                 a[shuliang+1].att_good_3=15;
  641.                 a[shuliang+1].att_good_4=80;
  642.                 a[shuliang+1].Lv=1;
  643.                 shuliang++;
  644.         }
  645.         if(xz==4)
  646.         {
  647.                 money-=95000000;
  648.                 cout<<"名字:";
  649.                 string namel;
  650.                 while(cin>>namel)
  651.                 {
  652.                         int f=1;
  653.                         for(int i=1; i<=shuliang; i++)
  654.                         {
  655.                                 if(a[i].name==namel)
  656.                                 {
  657.                                         f=0;
  658.                                         cout<<"已有重复名称"<<'\n';
  659.                                 }
  660.                         }
  661.                         if(f==1) break;
  662.                 }
  663.                 a[shuliang+1].gas=1000;
  664.                 a[shuliang+1].attack=0;
  665.                 a[shuliang+1].Zhu=0;
  666.                 a[shuliang+1].Fu=0;
  667.                 a[shuliang+1].yulei=0;
  668.                 a[shuliang+1].shuilei=0;
  669.                 a[shuliang+1].fire=0;
  670.                 a[shuliang+1].gas_good=10;
  671.                 a[shuliang+1].guard=0;
  672.                 a[shuliang+1].HP=15000;
  673.                 a[shuliang+1].name=namel;
  674.                 a[shuliang+1].HPm=15000;
  675.                 a[shuliang+1].gasm=1200;
  676.                 a[shuliang+1].boat[40][15]=100;
  677.                 a[shuliang+1].long_=70;
  678.                 a[shuliang+1].att_s_1=0;
  679.                 a[shuliang+1].att_good_1=10;
  680.                 a[shuliang+1].att_good_2=40;
  681.                 a[shuliang+1].att_good_3=15;
  682.                 a[shuliang+1].att_good_4=80;
  683.                 a[shuliang+1].Lv=1;
  684.                 shuliang++;
  685.         }
  686.         if(xz==5)
  687.         {
  688.                 money-=70000000;
  689.                 cout<<"名字:";
  690.                 while(cin>>namel)
  691.                 {
  692.                         int f=1;
  693.                         for(int i=1; i<=shuliang; i++)
  694.                         {
  695.                                 if(a[i].name==namel)
  696.                                 {
  697.                                         f=0;
  698.                                         cout<<"已有重复名称"<<'\n';
  699.                                 }
  700.                         }
  701.                         if(f==1) break;
  702.                 }
  703.                 a[shuliang+1].gas=1500;
  704.                 a[shuliang+1].attack=0;
  705.                 a[shuliang+1].Zhu=0;
  706.                 a[shuliang+1].Fu=0;
  707.                 a[shuliang+1].yulei=0;
  708.                 a[shuliang+1].shuilei=0;
  709.                 a[shuliang+1].fire=0;
  710.                 a[shuliang+1].gas_good=10;
  711.                 a[shuliang+1].guard=0;
  712.                 a[shuliang+1].HP=1000;
  713.                 a[shuliang+1].name=namel;
  714.                 a[shuliang+1].HPm=1000;
  715.                 a[shuliang+1].gasm=3500;
  716.                 a[shuliang+1].boat[40][3]=100;
  717.                 a[shuliang+1].long_=8;
  718.                 a[shuliang+1].att_s_1=0;
  719.                 a[shuliang+1].att_good_1=0;
  720.                 a[shuliang+1].att_good_2=0;
  721.                 a[shuliang+1].att_good_3=95;
  722.                 a[shuliang+1].att_good_4=90;
  723.                 a[shuliang+1].Lv=1;
  724.                 shuliang++;
  725.         }
  726.         if(xz==6)
  727.         {
  728.                 for(int i=1; i<=shuliang; i++)
  729.                 {
  730.                         cout<<a[i].name;
  731.                         cout<<"1 主炮弹药数量:";
  732.                         int l=a[i].att_s_1;
  733.                         cout<<l<<'\n';
  734.                         if(l==0) pr("没有弹药 建议增添",4);
  735.                         else if(l<=30) pr("弹药较少 建议增添",6);
  736.                         else pr("基本足够(仅为评估)",2);
  737.                         cout<<'\n';
  738.                         int want;
  739.                         cout<<"输入需要弹药(40w/枚)数量:";
  740.                         cin>>want;
  741.                         money-=want*400000;
  742.                         a[i].att_s_1+=want;
  743.                         cout<<"2 副炮弹药数量:";
  744.                         l=a[i].att_s_2;
  745.                         cout<<l<<'\n';
  746.                         if(l==0) pr("没有弹药 建议增添",4);
  747.                         else if(l<=30) pr("弹药较少 建议增添",6);
  748.                         else pr("基本足够(仅为评估)",2);
  749.                         cout<<'\n';
  750.                         cout<<"输入需要弹药(40w/枚)数量:";
  751.                         cin>>want;
  752.                         money-=want*400000;
  753.                         a[i].att_s_2+=want;
  754.                 }
  755.         }
  756.         cout<<"OK"<<'\n';
  757.         return ;
  758. }
  759. void meself()
  760. {
  761.         cout<<"以下是个人情况:"<<'\n';
  762.         for(int i=1; i<=shuliang; i++)
  763.         {
  764.                 cout<<i<<" "<<a[i].name<<'\n';
  765.                 a[i].HP=a[i].HPm;
  766.                 int f=100;
  767.                 if(a[i].gas<=0) pr("油量警告->必须加油",4),f-=40,cout<<'\n';
  768.                 else if(a[i].gas<=100) pr("油量警告->需要加油",4),f-=40,cout<<'\n';
  769.                 else if(a[i].gas<=400) pr("油量警告",6),f-=35,cout<<'\n';
  770.                 if(a[i].fire==0) pr("舰艇无火灾",2),cout<<'\n';
  771.                 else if(a[i].fire>0&&a[i].fire<=1.5) pr("舰艇火灾警告",6),f-=0.1,cout<<'\n';
  772.                 else if(a[i].fire<=5) pr("中等火灾警告",6),f-=5,cout<<'\n';
  773.                 else if(a[i].fire<=10) pr("最高火灾警告->立即返航/弃船",4),f-=40,cout<<'\n';
  774.                 cout<<"血量:"<<a[i].HP<<" / "<<a[i].HPm<<'\n';
  775.                 cout<<"油量:"<<a[i].gas<<" / "<<a[i].gasm<<'\n';
  776.                 cout<<"长度:"<<a[i].long_<<'\n';
  777.                 cout<<"主炮数量:"<<a[i].Zhu<<'\n';
  778.                 cout<<"副炮数量:"<<a[i].Fu<<'\n';
  779.                 cout<<"1 主炮弹药数量:";
  780.                 int l=a[i].att_s_1;
  781.                 cout<<l<<'\n';
  782.                 if(l==0) pr("没有弹药 建议增添",4);
  783.                 else if(l<=30) pr("弹药较少 建议增添",6);
  784.                 else pr("基本足够(仅为评估)",2);
  785.                 cout<<'\n';
  786.                 cout<<"2 副炮弹药数量:";
  787.                 l=a[i].att_s_2;
  788.                 cout<<l<<'\n';
  789.                 if(l==0) pr("没有弹药 建议增添",4);
  790.                 else if(l<=30) pr("弹药较少 建议增添",6);
  791.                 else pr("基本足够(仅为评估)",2);
  792.                 cout<<'\n';
  793.                 if(a[i].Zhu==0) pr("主炮不足",4),cout<<'\n';
  794.                 if(a[i].Fu==0) pr("副炮不足",4),cout<<'\n';
  795.                 if(a[i].Fu==0) pr("鱼雷不足",4),cout<<'\n';
  796.                 if(a[i].Fu==0) pr("水雷不足",4),cout<<'\n';
  797.                 cout<<'\n';
  798.         }
  799. }
  800. void up()
  801. {
  802.         cout<<"1 加油站"<<'\n';
  803.         cout<<"2 加工厂"<<'\n';
  804.         cout<<"3 制造厂"<<'\n';
  805.         cout<<"4 出航"  <<'\n';
  806.         cout<<"5 查看状态"<<'\n';
  807.         string xz;
  808.         cin>>xz;
  809.         while(xz!="1"&&xz!="2"&&xz!="3"&&xz!="4"&&xz!="5")
  810.         {
  811.                 cout<<"错误--- 请再次输入"<<'\n';
  812.                 system("pause");
  813.                 cin>>xz;
  814.         }
  815.         int xz_int=stoi(xz);
  816.         switch(xz_int)
  817.         {
  818.                 case 1:
  819.                         up_gas();
  820.                         break;
  821.                 case 2:
  822.                         up_on1();
  823.                         break;
  824.                 case 3:
  825.                         up_build();
  826.                         break;
  827.                 case 4:
  828.                         sea=true;
  829.                         break;
  830.                 default:
  831.                         meself();
  832.                         break;
  833.         }
  834. }
  835. void play()
  836. {
  837.         shuliang=1;
  838.         a[1].gas=1000;
  839.         a[1].attack=0;
  840.         a[1].Zhu=0;
  841.         a[1].Fu=0;
  842.         a[1].yulei=0;
  843.         a[1].shuilei=0;
  844.         a[1].fire=0;
  845.         a[1].gas_good=10;
  846.         a[1].guard=0;
  847.         a[1].HP=15000;
  848.         a[1].name="max fight 1";
  849.         a[1].HPm=15000;
  850.         a[1].gasm=1200;
  851.         a[1].boat[40][15]=100;
  852.         a[1].long_=70;
  853.         a[1].att_s_1=0;
  854.         a[1].att_good_1=10;
  855.         a[1].att_good_2=40;
  856.         a[1].att_good_3=15;
  857.         a[1].att_good_4=80;
  858.         a[1].Lv=1;
  859.         cout<<"游戏开始"<<'\n';
  860.         system("pause");
  861.         system("cls");
  862.         while(1+1==2)
  863.         {
  864.                 system("cls");
  865.                 cout<<"游戏进行中----------"<<'\n';
  866.                 system("pause");
  867.                 cout<<"资金:"<<money;
  868.                 if(money<-10000000)
  869.                 {
  870.                         cout<<"欠债过多 挑战失败"<<'\n';
  871.                         return ;
  872.                 }
  873.                 if(sea)
  874.                 {
  875.                         for(int i=1; i<=shuliang; i++)
  876.                         {
  877.                                 int f=100;
  878.                                 cout<<a[i].name<<":"<<'\n';
  879.                                 cout<<"该舰艇现在距离基地"<<km<<"km,需要"<<km*a[i].gas_good<<"升燃油"<<'\n';
  880.                                 if(a[i].fire==0) pr("舰艇无火灾",2),cout<<'\n';
  881.                                 else if(a[i].fire>0&&a[i].fire<=1.5) pr("舰艇火灾警告",6),f-=0.1,cout<<'\n';
  882.                                 else if(a[i].fire<=5) pr("中等火灾警告",6),f-=5,cout<<'\n';
  883.                                 else if(a[i].fire<=10) pr("最高火灾警告->立即返航/弃船",4),f-=40,cout<<'\n';
  884.                                 if(km*a[i].gas_good>=a[i].gas*2) pr("最高油量警告->立即返航",4),f-=40,cout<<'\n';
  885.                                 else if(km*a[i].gas_good>=a[i].gas) pr("油量警告",6),f-=35,cout<<'\n';
  886.                                 if(a[i].HP<=100) pr("重伤警告->立即返航/弃船",4),f-=60,cout<<'\n';
  887.                                 else if(a[i].HP<=1000) pr("警告->注意躲避火力",6),f-=20,cout<<'\n';
  888.                                 cout<<"1 主炮弹药数量:";
  889.                                 int l=a[i].att_s_1;
  890.                                 cout<<l<<'\n';
  891.                                 if(l==0) pr("没有弹药 建议增添",4);
  892.                                 else if(l<=30) pr("弹药较少 建议增添",6);
  893.                                 else pr("基本足够(仅为评估)",2);
  894.                                 cout<<'\n';
  895.                                 cout<<"2 副炮弹药数量:";
  896.                                 l=a[i].att_s_2;
  897.                                 cout<<l<<'\n';
  898.                                 if(l==0) pr("没有弹药 建议增添",4);
  899.                                 else if(l<=30) pr("弹药较少 建议增添",6);
  900.                                 else pr("基本足够(仅为评估)",2);
  901.                                 cout<<'\n';
  902.                                 if(a[i].Zhu==0) pr("主炮不足",4),cout<<'\n';
  903.                                 if(a[i].Fu==0) pr("副炮不足",4),cout<<'\n';
  904.                                 if(a[i].Fu==0) pr("鱼雷不足",4),cout<<'\n';
  905.                                 if(a[i].Fu==0) pr("水雷不足",4),cout<<'\n';
  906.                         }
  907.                         fight();
  908.                 }
  909.                 else
  910.                 {
  911.                         for(int i=1; i<=shuliang; i++)
  912.                         {
  913.                                 cout<<i<<" "<<a[i].name<<'\n';
  914.                                 a[i].HP=a[i].HPm;
  915.                                 a[i].fire=0;
  916.                                 a[i].go=false;
  917.                                 a[i].lx=0;
  918.                                 a[i].ly=0;
  919.                                 int f=100;
  920.                                 if(a[i].gas<=0) pr("油量警告->必须加油",4),f-=40,cout<<'\n';
  921.                                 else if(a[i].gas<=100) pr("油量警告->需要加油",4),f-=40,cout<<'\n';
  922.                                 else if(a[i].gas<=400) pr("油量警告",6),f-=35,cout<<'\n';
  923.                                 cout<<"血量:"<<a[i].HP<<" / "<<a[i].HPm<<'\n';
  924.                                 cout<<"油量:"<<a[i].gas<<" / "<<a[i].gasm<<'\n';
  925.                                 cout<<"长度:"<<a[i].long_<<'\n';
  926.                                 cout<<"主炮数量:"<<a[i].Zhu<<'\n';
  927.                                 cout<<"副炮数量:"<<a[i].Fu<<'\n';
  928.                                 cout<<"1 主炮弹药数量:";
  929.                                 int l=a[i].att_s_1;
  930.                                 cout<<l<<'\n';
  931.                                 if(l==0) pr("没有弹药 建议增添",4);
  932.                                 else if(l<=30) pr("弹药较少 建议增添",6);
  933.                                 else pr("基本足够(仅为评估)",2);
  934.                                 cout<<'\n';
  935.                                 cout<<"2 副炮弹药数量:";
  936.                                 l=a[i].att_s_2;
  937.                                 cout<<l<<'\n';
  938.                                 if(l==0) pr("没有弹药 建议增添",4);
  939.                                 else if(l<=30) pr("弹药较少 建议增添",6);
  940.                                 else pr("基本足够(仅为评估)",2);
  941.                                 cout<<'\n';
  942.                                 if(a[i].Zhu==0) pr("主炮不足",4),cout<<'\n';
  943.                                 if(a[i].Fu==0) pr("副炮不足",4),cout<<'\n';
  944.                                 if(a[i].Fu==0) pr("鱼雷不足",4),cout<<'\n';
  945.                                 if(a[i].Fu==0) pr("水雷不足",4),cout<<'\n';
  946.                                 cout<<'\n';
  947.                         }
  948.                         up();
  949.                 }
  950.                 sleep(1);
  951.         }
  952. }
  953. int main()
  954. {
  955.         random_device rd;
  956.         a[1].gas=1000;
  957.         a[1].attack=0;
  958.         a[1].Zhu=3;
  959.         a[1].Fu=5;
  960.         a[1].yulei=5;
  961.         a[1].shuilei=0;
  962.         a[1].fire=0;
  963.         a[1].gas_good=7;
  964.         a[1].guard=0;
  965.         a[1].HP=15000;
  966.         a[1].name="";
  967.         a[1].HPm=15000;
  968.         a[1].gasm=1200;
  969.         a[1].boat[40][15]=100;
  970.         a[1].long_=70;
  971.         a[1].att_s_1=0;
  972.         a[1].att_good_1=10;
  973.         a[1].att_good_2=40;
  974.         a[1].att_good_3=15;
  975.         a[1].att_good_4=80;
  976.         a[1].Lv=1;
  977.         cout<<"是否需要新手指南?(y/n)"<<'\n';
  978.         char xing;
  979.         cin>>xing;
  980.         if(xing=='y') new_do();
  981.         play();
  982.         std::ofstream outFile("log.txt");
  983.         //
  984.         outFile.close();
  985.         cout<<"感谢游玩 个人主页:    https://blog.csdn.net/YYDS314?type=blog"<<'\n';
  986.         return 0;
  987. }
复制代码
#include <bits/stdc++.h>
#include <time.h>
#include <windows.h>
//#include <stdlib.h>
#include <unistd.h>
//#include <conio.h>
//#include <fstream>
//#include <random>
using namespace std;
bool sea;
int km=0;
bool look[300][300];
long long money=4000000;
int shuliang=1;
struct zhan
{
    string name;
    int ld;//雷达
    int attack,guard;//攻击 防御
    int Zhu,Fu,yulei,shuilei;//主炮 副炮 鱼雷 水雷
    int att_s_1,att_s_2;
    int att_good_1,att_good_2,att_good_3,att_good_4;
    double HP,fire,HPm;
    double shut_down[20];
    int gas_good;
    int gas,gasm;
    int boat[90][40];
    int long_;//长度
    double Lv;
    bool go;//出海
    double lx,ly;
    int jiao;///角度
    double en_1,en_2,en_3,EPU;
};
zhan a[50];
zhan lmap[300][300];
zhan shop[105];
void pr(const char* s, int color)
{
    HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | color);
    printf(s);
    SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | 7);
}
/*
0 = 黑色 8 = 灰色
1 = 蓝色 9 = 淡蓝色
2 = 绿色 10 = 淡绿色
3 = 浅绿色 11 = 淡浅绿色
4 = 赤色 12 = 淡赤色
5 = 紫色 13 = 淡紫色
6 = 黄色 14 = 淡黄色
7 = 白色 15 = 亮白色
*/
void new_do()
{
    system("cls");
    Sleep(50);
    cout<<setw(50)<<"----------新手指南----------"<<'\n';
    cout<<"敌方会有1~3艘 旗舰(战列舰)        ";
    cout<<"它们的正面装甲级厚,只管使用鱼雷或在侧面使用主炮攻击"<<'\n';
    cout<<"敌方会有3~10艘副舰(驱逐舰、保护舰)"<<'\n';
    cout<<"它们防空能力强悍,副炮数量极多,就连战机都很难靠近它们,想办法用潜艇鱼雷攻击它们";
    cout<<'\n';
    cout<<"敌方大概会有潜艇,假如你没有反潜设备就要小心了,它们不会出现在战斗时侦察机提供的《战舰清单》中"<<'\n';
    cout<<"你在开始游戏时会有1艘(几乎)空荡荡的战列舰"<<'\n';
    cout<<"你可以在 加工厂 升级战舰"<<'\n';
    cout<<"你可以在 制造厂 制造战列舰(的空壳,几乎啥都没有)"<<'\n';
    cout<<"提示"<<'\n';
    cout<<"战列舰的所有数据都在 战舰情况 中,随时可以查看"<<'\n';
    cout<<"你可以在战舰商店购买现成各类战舰"<<'\n';
    cout<<"刚开始你会有  400w  资金,到了游戏中你就会知道,这远远不够"<<'\n';
    system("pause");
}
void buy_shop()
{
    
}
void fight()
{
    int xz;
    cout<<"输入出航的船只"<<'\n';
    for(int i=1; i<=shuliang; i++)
    {
        cout<<i<<" "<<a.name;
        if(a.gas>0) pr("  可以出战",2);
        else pr("  缺少燃油",4);
        if(a.attack==0) pr("  无战斗力",6);
        else pr("战斗力:",2),cout<<a.attack;
        cout<<'\n';
    }
    cin>>xz;
    a[xz].go=1;
    cout<<"确认:"<<'\n';
    cout<<xz<<" "<<a[xz].name;
    if(a[xz].gas>0) pr("  可以出战",2);
    else pr("  缺少燃油",4);
    if(a[xz].attack==0) pr("  无战斗力",6);
    else pr("战斗力:",2),cout<<a[xz].attack;
    cout<<'\n';
    cout<<'\n';
    system("pause");
    int ling1=xz;
    string ling2;
    while(ling1!=-1&&ling2!="-1")
    {
        cout<<"请输入指令-  按 0 0 查看您的指令输入方法"<<'\n';
        cin>>ling1>>ling2;
        if(ling2=="0"&&ling1==0)
        {
            cout<<"指令1 :编号+' '+w(小写) >>选中舰前进 前进速率在2~5次加速后会渐渐变快,不要急 例:1 w"<<'\n';
            cout<<"指令2 :编号+' '+a(小写)+' '+左转角度 >>选中舰左转 例:1 a 30 角度越小,";
            cout<<"转速越快"<<'\n';
            cout<<"指令3 :编号+' '+d(小写)+' '+右转角度 >>选中舰右转 例:1 d 30 角度越小,";
            cout<<"转速越快"<<'\n';
            cout<<"指令4 :编号+' '+q(小写) >>打开雷达"<<'\n';
            cout<<"指令5 :编号+' '+e(小写) >>关闭雷达"<<'\n';
            cout<<"指令6 :编号+' '+x(小写)+' '+敌方编号 >>向敌方开火"<<'\n';
            pr("指令7 :-1 -1 >>回航",2);
            pr("指令7 :指令输入并实验后自动进入下一轮",2);
            cout<<'\n';
            system("pause");
        }
        if(ling2=="w")
        {
            if(a[ling1].go==false) cout<<"不能使用两次!"<<'\n';
            else
            {
                a[ling1].go=false;
                a[ling1].en_1+=30;
                a[ling1].en_2+=30;
                if(a[ling1].en_1>0&&a[ling1].en_2>0)
                {
                    if(a[ling1].jiao>=0&&a[ling1].jiao<=90)
                    {
                        a[ling1].lx+=(a[ling1].en_1+a[ling1].en_2)*cos(a[ling1].jiao*a[ling1].jiao/180)/100;
                        a[ling1].ly+=(a[ling1].en_1+a[ling1].en_2)*sin(a[ling1].jiao*a[ling1].jiao/180)/100;
                        a[ling1].EPU+=5;
                    }
                    else if(a[ling1].jiao>90&&a[ling1].jiao<=180)
                    {
                        a[ling1].lx-=(a[ling1].en_1+a[ling1].en_2)*cos((180-a[ling1].jiao)*a[ling1].jiao/180)/100;
                        a[ling1].ly+=(a[ling1].en_1+a[ling1].en_2)*sin((180-a[ling1].jiao)*a[ling1].jiao/180)/100;
                        a[ling1].EPU+=5;
                    }
                    else if(a[ling1].jiao>180&&a[ling1].jiao<=270)
                    {
                        a[ling1].lx-=(a[ling1].en_1+a[ling1].en_2)*cos((a[ling1].jiao-180)*a[ling1].jiao/180)/100;
                        a[ling1].ly-=(a[ling1].en_1+a[ling1].en_2)*sin((a[ling1].jiao-180)*a[ling1].jiao/180)/100;
                        a[ling1].EPU+=5;
                    }
                    else if(a[ling1].jiao>270&&a[ling1].jiao<=360)
                    {
                        a[ling1].lx+=(a[ling1].en_1+a[ling1].en_2)*cos((360-a[ling1].jiao)*a[ling1].jiao/180)/100;
                        a[ling1].ly-=(a[ling1].en_1+a[ling1].en_2)*sin((360-a[ling1].jiao)*a[ling1].jiao/180)/100;
                        a[ling1].EPU+=35;
                    }
                    a[ling1].EPU+=5;
                }
                cout<<"坐标x:"<<a[ling1].lx<<"    "<<"坐标y:"<<a[ling1].ly<<'\n';
            }
        }
        if(ling2=="a")
        {
            double jiao;
            cin>>jiao;
            Sleep(int(jiao/10.0));
            a[ling1].jiao-=jiao;
        }
        if(ling2=="d")
        {
            double jiao;
            cin>>jiao;
            Sleep(int(jiao/10.0));
            a[ling1].jiao+=jiao;
        }
        for(int i=1; i<=shuliang; i++)
        {
            if(a.en_1>0&&a.en_2>0)
            {
                if(a.jiao>=0&&a.jiao<=90)
                {
                    a.lx+=(a.en_1+a.en_2)*cos(a.jiao*a[ling1].jiao/180)/100;
                    a.ly+=(a.en_1+a.en_2)*sin(a.jiao*a[ling1].jiao/180)/100;
                    a.EPU+=5;
                }
                else if(a.jiao>90&&a.jiao<=180)
                {
                    a.lx-=(a.en_1+a.en_2)*cos((180-a.jiao)*a[ling1].jiao/180)/100;
                    a.ly+=(a.en_1+a.en_2)*sin((180-a.jiao)*a[ling1].jiao/180)/100;
                    a.EPU+=5;
                }
                else if(a.jiao>180&&a.jiao<=270)
                {
                    a.lx-=(a.en_1+a.en_2)*cos((a.jiao-180)*a[ling1].jiao/180)/100;
                    a.ly-=(a.en_1+a.en_2)*sin((a.jiao-180)*a[ling1].jiao/180)/100;
                    a.EPU+=5;
                }
                else if(a.jiao>270&&a.jiao<=360)
                {
                    a.lx+=(a.en_1+a.en_2)*cos((360-a.jiao)*a[ling1].jiao/180)/100;
                    a.ly-=(a.en_1+a.en_2)*sin((360-a.jiao)*a[ling1].jiao/180)/100;
                    a.EPU+=35;
                }
                a.EPU+=5;
            }
            cout<<a.name<<"  坐标x:"<<a.lx<<"    "<<"坐标y:"<<a.ly<<'\n';
        }
        if(ling2=="q")
        {
            a[ling1].ld=true;
            for(int i=a[ling1].lx-20; i<=a[ling1].lx+20; i++)
            {
                for(int j=a[ling1].ly-20; j<=a[ling1].ly+20; j++)
                {
                    look[j]=true;
                }
            }
        }
        if(ling2=="e")
        {
            a[ling1].ld=false;
            for(int i=max(0,int(a[ling1].lx-20)); i<=min(100,int(a[ling1].lx+20)); i++)
            {
                for(int j=max(0,int(a[ling1].ly-20)); j<=min(100,int(a[ling1].ly+20)); j++)
                {
                    look[j]=false;
                }
            }
        }
        if(ling2=="x")
        {
            
        }
        
    }
}
void up_gas()
{
    cout<<"这里是加油站----------"<<'\n';
    for(int i=1; i<=shuliang; i++)
    {
        Sleep(500);
        system("cls");
        cout<<i<<" "<<a.name<<":"<<a.gas<<"/"<<a.gasm<<'\n';
        cout<<"    可以飞行"<<a.gas*a.gas_good<<"km (必要在"<<a.gas*a.gas_good/2.0<<"km返回)";
        cout<<'\n';
        if(a.gas==0) pr("必须加油",4);
        else if(a.gas>0&&a.gas!=a.gasm) pr("可以加油",6);
        else pr("无需加油",2);
        cout<<"(y/n)"<<'\n';
        string xz;
        cin>>xz;
        if(xz=="y"||xz=="Y")
        {
            cout<<"正在加油..."<<'\n';
            system("pause");
            Sleep(500);
            if(a.gasm==a.gas) cout<<"无需加油--"<<'\n';
            else
            {
                long long money_want=(a.gasm-a.gas)/(a.gas_good)*600;
                cout<<"必要"<<money_want<<"资金"<<'\n';
                if(money_want>money)
                {
                    cout<<"资金不敷,为您只管加油↖(^ω^)↗"<<'\n';
                    a.gas=a.gas+money/600*a.gas_good;
                    money=0;
                }
                else
                {
                    money-=money_want;
                    a.gas=a.gasm;
                }
                cout<<"加油完成---"<<'\n';
                cout<<i<<" "<<a.name<<":"<<a.gas<<"/"<<a.gasm<<'\n';
                cout<<"    可以飞行"<<a.gas/a.gas_good<<"km (必要在"<<a.gas/a.gas_good/2.0<<"km返回)";
                cout<<'\n';
                if(a.gas==0) pr("必须加油",4);
                else if(a.gas>0&&a.gas!=a.gasm) pr("可以加油",6);
                else pr("无需加油",2);
                cout<<'\n';
            }
        }
        else
        {
            cout<<'\n';
            system("pause");
        }
    }
    cout<<'\n';
    system("pause");
}
void up_on1()
{
    while(1)
    {
        for(int i=1; i<=shuliang; i++)
        {
            cout<<"当前资金:"<<money<<'\n';
            cout<<i<<" "<<a.name<<": Lv. "<<a.Lv<<'\n';
            a.HP=a.HPm;
            cout<<"0  不升级 下一个"<<'\n';
            cout<<"1  血量:"<<a.HP<<" / "<<a.HPm<<'\n';
            cout<<"2  油量:"<<a.gas<<" / "<<a.gasm<<'\n';
            cout<<"3  燃油等级:"<<a.gas_good<<"/1 (越小越好)"<<'\n';
            cout<<"4  长度:"<<a.long_<<"m"<<'\n';
            cout<<"5  主炮数量:"<<a.Zhu<<'\n';
            cout<<"6      精准度:"<<a.att_good_1<<"%"<<'\n';
            cout<<"7  副炮数量:"<<a.Fu<<'\n';
            cout<<"8      精准度:"<<a.att_good_2<<"%"<<'\n';
            cout<<"9  鱼雷精准度:"<<a.att_good_3<<"%"<<'\n';
            cout<<"10 水雷精准度:"<<a.att_good_4<<"%"<<'\n';
            cout<<'\n';
            system("pause");
            short k;
            cin>>k;
            double l;
            switch(k)
            {
                case 0:
                    break;
                case 1:
                    cout<<"血量升级代价:2点/资金   等级≥5时 5点/资金"<<'\n';
                    cout<<"购买血量(最大";
                    if(a.Lv>=5) cout<<money*5,l=money*5;
                    else cout<<money*2,l=money*2;
                    cout<<") :    ";
                    double xz;
                    cin>>xz;
                    while(xz>l) cout<<"Error!",cin>>xz;
                    if(a.Lv>=5) l=xz*5;
                    else l=xz*2;
                    money-=l;
                    a.HPm+=xz;
                    break;
                case 2:
                    cout<<"油量升级代价:1点/资金   等级≥10时 2点/资金"<<'\n';
                    cout<<"购买油量(最大";
                    if(a.Lv>=5) cout<<money*1,l=money*1;
                    else cout<<money,l=money;
                    cout<<") :    ";
                    cin>>xz;
                    while(xz>l) cout<<"Error!",cin>>xz;
                    if(a.Lv>=10) l=xz*2;
                    else l=xz;
                    money-=l;
                    a.gasm+=xz;
                    break;
                case 3:
                    cout<<"90w变为1(必要将该舰现有油量清零)"<<'\n';
                    if(money>=900000) a.gas_good=1,a.gas=0,money-=900000;
                    else system("pause");
                    a.Lv+=1;
                    break;
                case 4:
                    cout<<"长度升级代价:5w/m"<<'\n';
                    cout<<"购买长度(最大";
                    cout<<fixed<<setprecision(2)<<money/5.0,l=money/5.0;
                    cout<<") :    ";
                    cin>>xz;
                    while(xz>l) cout<<"Error!",cin>>xz;
                    l=xz*50000;
                    money-=l;
                    a.long_+=xz;
                    a.Lv+=xz*0.1;
                    break;
                case 5:
                    if(a.long_-a.Zhu*2-a.Fu*2-a.Zhu*1-a.Zhu*1-a.gasm/100<2)
                    {
                        cout<<"甲板不够,去加长甲板吧"<<'\n';
                    }
                    else
                    {
                        cout<<"口径:1  80mm 10w"<<'\n';
                        cout<<"      2  95mm 12w"<<'\n';
                        cout<<"      3 110mm 20w"<<'\n';
                        cout<<"      4 160mm 50w"<<'\n';
                        cout<<"      5 320mm 90w"<<'\n';
                    }
                    int kj;
                    cin>>kj;
                    if(kj==1)
                    {
                        a.Zhu++;
                        a.attack+=80;
                        a.Lv+=0.1;
                        money-=100000;
                    }
                    if(kj==2)
                    {
                        a.Zhu++;
                        a.attack+=95;
                        a.Lv+=0.2;
                        money-=120000;
                    }
                    if(kj==3)
                    {
                        a.Zhu++;
                        a.attack+=110;
                        a.Lv+=0.3;
                        money-=200000;
                    }
                    if(kj==4)
                    {
                        a.Zhu++;
                        a.attack+=160;
                        a.Lv+=0.5;
                        money-=500000;
                    }
                    if(kj==5)
                    {
                        a.Zhu++;
                        a.attack+=320;
                        a.Lv+=1;
                        money-=900000;
                    }
                    break;
                case 6:
                    cout<<"精准度升级为 5000资金/ 0.1%"<<'\n';
                    cout<<"输入投入资金:";
                    int mon;
                    cin>>mon;
                    money-=mon;
                    a.att_good_1+=mon*1.0/5000.0;
                    a.Lv+=0.01*mon*1.0/5000.0;
                    break;
    
                case 7:
                    if(a.long_-a.Zhu*2-a.Fu*2-a.Zhu*1-a.Zhu*1-a.gasm/100<1)
                    {
                        cout<<"甲板不够,去加长甲板吧"<<'\n';
                    }
                    else
                    {
                        cout<<"口径:1  10mm 10w"<<'\n';
                        cout<<"      2  25mm 12w"<<'\n';
                        cout<<"      3  50mm 20w"<<'\n';
                        cout<<"      4  60mm 50w"<<'\n';
                        cout<<"      5  70mm 90w"<<'\n';
                        cin>>kj;
                        if(kj==1)
                        {
                            a.Fu++;
                            a.attack+=10;
                            money-=100000;
                        }
                        if(kj==2)
                        {
                            a.Fu++;
                            a.attack+=25;
                            money-=120000;
                        }
                        if(kj==3)
                        {
                            a.Fu++;
                            a.attack+=50;
                            money-=200000;
                        }
                        if(kj==4)
                        {
                            a.Fu++;
                            a.attack+=60;
                            money-=500000;
                        }
                        if(kj==5)
                        {
                            a.Fu++;
                            a.attack+=70;
                            money-=900000;
                        }
                        a.Lv=a.Lv+0.1*kj;
                    }
    
                    break;
                    /*
                    cout<<"8      精准度:"<<a.att_good_2<<"%"<<'\n';
                    cout<<"9  鱼雷精准度:"<<a.att_good_3<<"%"<<'\n';
                    cout<<"10 水雷精准度:"<<a.att_good_4<<"%"<<'\n';
                    */
                case 8:
                    cout<<"精准度升级为 5000资金/ 0.1%"<<'\n';
                    cout<<"输入投入资金:";
                    cin>>mon;
                    money-=mon;
                    a.att_good_2+=mon/5000;
                    a.Lv=a.Lv+mon/5000;
                    break;
                case 9:
                    cout<<"精准度升级为 5000资金/ 0.1%"<<'\n';
                    cout<<"输入投入资金:";
                    cin>>mon;
                    money-=mon;
                    a.att_good_3+=mon/5000;
                    break;
                case 10:
                    cout<<"精准度升级为 5000资金/ 0.1%"<<'\n';
                    cout<<"输入投入资金:";
                    cin>>mon;
                    money-=mon;
                    a.att_good_4+=mon/5000;
                    break;
            }
        }
        cout<<"是否必要结束升级?(y/n)"<<'\n';
        char l;
        cin>>l;
        if(l=='y') break;
    }
    
}
void up_build()
{
    int xz;
    cout<<"必要:"<<'\n';
    cout<<"1 驱逐舰  7500w"<<'\n';
    cout<<"2 保护舰  7500w"<<'\n';
    cout<<"3 巡洋舰  8000w"<<'\n';
    cout<<"4 战列舰  9500w"<<'\n';
    cout<<"5 潜艇    7000w"<<'\n';
    cout<<"6 弹药"<<'\n';
    cin>>xz;
    string namel;
    if(xz==1)
    {
        money-=75000000;
        cout<<"名字:";
        while(cin>>namel)
        {
            int f=1;
            for(int i=1; i<=shuliang; i++)
            {
                if(a.name==namel)
                {
                    f=0;
                    cout<<"已有重复名称"<<'\n';
                }
            }
            if(f==1) break;
        }
        a[shuliang+1].gas=500;
        a[shuliang+1].attack=0;
        a[shuliang+1].Zhu=0;
        a[shuliang+1].Fu=0;
        a[shuliang+1].yulei=0;
        a[shuliang+1].shuilei=0;
        a[shuliang+1].fire=0;
        a[shuliang+1].gas_good=10;
        a[shuliang+1].guard=0;
        a[shuliang+1].HP=6000;
        a[shuliang+1].name=namel;
        a[shuliang+1].HPm=6000;
        a[shuliang+1].gasm=700;
        a[shuliang+1].boat[40][15]=100;
        a[shuliang+1].long_=40;
        a[shuliang+1].att_s_1=0;
        a[shuliang+1].att_good_1=50;
        a[shuliang+1].att_good_2=50;
        a[shuliang+1].att_good_3=95;
        a[shuliang+1].att_good_4=90;
        a[shuliang+1].Lv=1;
        shuliang++;
    }
    if(xz==2)
    {
        money-=75000000;
        cout<<"名字:";
        while(cin>>namel)
        {
            int f=1;
            for(int i=1; i<=shuliang; i++)
            {
                if(a.name==namel)
                {
                    f=0;
                    cout<<"已有重复名称"<<'\n';
                }
            }
            if(f==1) break;
        }
        a[shuliang+1].gas=500;
        a[shuliang+1].attack=0;
        a[shuliang+1].Zhu=0;
        a[shuliang+1].Fu=0;
        a[shuliang+1].yulei=0;
        a[shuliang+1].shuilei=0;
        a[shuliang+1].fire=0;
        a[shuliang+1].gas_good=10;
        a[shuliang+1].guard=0;
        a[shuliang+1].HP=7000;
        a[shuliang+1].name=namel;
        a[shuliang+1].HPm=7000;
        a[shuliang+1].gasm=900;
        a[shuliang+1].boat[40][15]=100;
        a[shuliang+1].long_=40;
        a[shuliang+1].att_s_1=0;
        a[shuliang+1].att_good_1=60;
        a[shuliang+1].att_good_2=60;
        a[shuliang+1].att_good_3=75;
        a[shuliang+1].att_good_4=82;
        a[shuliang+1].Lv=1;
        shuliang++;
    }
    if(xz==3)
    {
        money-=80000000;
        cout<<"名字:";
        string namel;
        while(cin>>namel)
        {
            int f=1;
            for(int i=1; i<=shuliang; i++)
            {
                if(a.name==namel)
                {
                    f=0;
                    cout<<"已有重复名称"<<'\n';
                }
            }
            if(f==1) break;
        }
        a[shuliang+1].gas=1000;
        a[shuliang+1].attack=0;
        a[shuliang+1].Zhu=0;
        a[shuliang+1].Fu=0;
        a[shuliang+1].yulei=0;
        a[shuliang+1].shuilei=0;
        a[shuliang+1].fire=0;
        a[shuliang+1].gas_good=10;
        a[shuliang+1].guard=0;
        a[shuliang+1].HP=10000;
        a[shuliang+1].name=namel;
        a[shuliang+1].HPm=10000;
        a[shuliang+1].gasm=1200;
        a[shuliang+1].boat[40][15]=100;
        a[shuliang+1].long_=70;
        a[shuliang+1].att_s_1=0;
        a[shuliang+1].att_good_1=10;
        a[shuliang+1].att_good_2=40;
        a[shuliang+1].att_good_3=15;
        a[shuliang+1].att_good_4=80;
        a[shuliang+1].Lv=1;
        shuliang++;
    }
    if(xz==4)
    {
        money-=95000000;
        cout<<"名字:";
        string namel;
        while(cin>>namel)
        {
            int f=1;
            for(int i=1; i<=shuliang; i++)
            {
                if(a.name==namel)
                {
                    f=0;
                    cout<<"已有重复名称"<<'\n';
                }
            }
            if(f==1) break;
        }
        a[shuliang+1].gas=1000;
        a[shuliang+1].attack=0;
        a[shuliang+1].Zhu=0;
        a[shuliang+1].Fu=0;
        a[shuliang+1].yulei=0;
        a[shuliang+1].shuilei=0;
        a[shuliang+1].fire=0;
        a[shuliang+1].gas_good=10;
        a[shuliang+1].guard=0;
        a[shuliang+1].HP=15000;
        a[shuliang+1].name=namel;
        a[shuliang+1].HPm=15000;
        a[shuliang+1].gasm=1200;
        a[shuliang+1].boat[40][15]=100;
        a[shuliang+1].long_=70;
        a[shuliang+1].att_s_1=0;
        a[shuliang+1].att_good_1=10;
        a[shuliang+1].att_good_2=40;
        a[shuliang+1].att_good_3=15;
        a[shuliang+1].att_good_4=80;
        a[shuliang+1].Lv=1;
        shuliang++;
    }
    if(xz==5)
    {
        money-=70000000;
        cout<<"名字:";
        while(cin>>namel)
        {
            int f=1;
            for(int i=1; i<=shuliang; i++)
            {
                if(a.name==namel)
                {
                    f=0;
                    cout<<"已有重复名称"<<'\n';
                }
            }
            if(f==1) break;
        }
        a[shuliang+1].gas=1500;
        a[shuliang+1].attack=0;
        a[shuliang+1].Zhu=0;
        a[shuliang+1].Fu=0;
        a[shuliang+1].yulei=0;
        a[shuliang+1].shuilei=0;
        a[shuliang+1].fire=0;
        a[shuliang+1].gas_good=10;
        a[shuliang+1].guard=0;
        a[shuliang+1].HP=1000;
        a[shuliang+1].name=namel;
        a[shuliang+1].HPm=1000;
        a[shuliang+1].gasm=3500;
        a[shuliang+1].boat[40][3]=100;
        a[shuliang+1].long_=8;
        a[shuliang+1].att_s_1=0;
        a[shuliang+1].att_good_1=0;
        a[shuliang+1].att_good_2=0;
        a[shuliang+1].att_good_3=95;
        a[shuliang+1].att_good_4=90;
        a[shuliang+1].Lv=1;
        shuliang++;
    }
    if(xz==6)
    {
        for(int i=1; i<=shuliang; i++)
        {
            cout<<a.name;
            cout<<"1 主炮弹药数量:";
            int l=a.att_s_1;
            cout<<l<<'\n';
            if(l==0) pr("没有弹药 建议增加",4);
            else if(l<=30) pr("弹药较少 建议增加",6);
            else pr("基本足够(仅为评估)",2);
            cout<<'\n';
            int want;
            cout<<"输入必要弹药(40w/枚)数量:";
            cin>>want;
            money-=want*400000;
            a.att_s_1+=want;
            cout<<"2 副炮弹药数量:";
            l=a.att_s_2;
            cout<<l<<'\n';
            if(l==0) pr("没有弹药 建议增加",4);
            else if(l<=30) pr("弹药较少 建议增加",6);
            else pr("基本足够(仅为评估)",2);
            cout<<'\n';
            cout<<"输入必要弹药(40w/枚)数量:";
            cin>>want;
            money-=want*400000;
            a.att_s_2+=want;
        }
    }
    cout<<"OK"<<'\n';
    return ;
}
void meself()
{
    cout<<"以下是个情面况:"<<'\n';
    for(int i=1; i<=shuliang; i++)
    {
        cout<<i<<" "<<a.name<<'\n';
        a.HP=a.HPm;
        int f=100;
        if(a.gas<=0) pr("油量警告->必须加油",4),f-=40,cout<<'\n';
        else if(a.gas<=100) pr("油量警告->必要加油",4),f-=40,cout<<'\n';
        else if(a.gas<=400) pr("油量警告",6),f-=35,cout<<'\n';
        if(a.fire==0) pr("舰艇无火灾",2),cout<<'\n';
        else if(a.fire>0&&a.fire<=1.5) pr("舰艇火灾警告",6),f-=0.1,cout<<'\n';
        else if(a.fire<=5) pr("中等火灾警告",6),f-=5,cout<<'\n';
        else if(a.fire<=10) pr("最高火灾警告->立即返航/弃船",4),f-=40,cout<<'\n';
        cout<<"血量:"<<a.HP<<" / "<<a.HPm<<'\n';
        cout<<"油量:"<<a.gas<<" / "<<a.gasm<<'\n';
        cout<<"长度:"<<a.long_<<'\n';
        cout<<"主炮数量:"<<a.Zhu<<'\n';
        cout<<"副炮数量:"<<a.Fu<<'\n';
        cout<<"1 主炮弹药数量:";
        int l=a.att_s_1;
        cout<<l<<'\n';
        if(l==0) pr("没有弹药 建议增加",4);
        else if(l<=30) pr("弹药较少 建议增加",6);
        else pr("基本足够(仅为评估)",2);
        cout<<'\n';
        cout<<"2 副炮弹药数量:";
        l=a.att_s_2;
        cout<<l<<'\n';
        if(l==0) pr("没有弹药 建议增加",4);
        else if(l<=30) pr("弹药较少 建议增加",6);
        else pr("基本足够(仅为评估)",2);
        cout<<'\n';
        if(a.Zhu==0) pr("主炮不敷",4),cout<<'\n';
        if(a.Fu==0) pr("副炮不敷",4),cout<<'\n';
        if(a.Fu==0) pr("鱼雷不敷",4),cout<<'\n';
        if(a.Fu==0) pr("水雷不敷",4),cout<<'\n';
        cout<<'\n';
    }
}
void up()
{
    cout<<"1 加油站"<<'\n';
    cout<<"2 加工厂"<<'\n';
    cout<<"3 制造厂"<<'\n';
    cout<<"4 出航"  <<'\n';
    cout<<"5 查看状态"<<'\n';
    string xz;
    cin>>xz;
    while(xz!="1"&&xz!="2"&&xz!="3"&&xz!="4"&&xz!="5")
    {
        cout<<"错误--- 请再次输入"<<'\n';
        system("pause");
        cin>>xz;
    }
    int xz_int=stoi(xz);
    switch(xz_int)
    {
        case 1:
            up_gas();
            break;
        case 2:
            up_on1();
            break;
        case 3:
            up_build();
            break;
        case 4:
            sea=true;
            break;
        default:
            meself();
            break;
    }
}
void play()
{
    shuliang=1;
    a[1].gas=1000;
    a[1].attack=0;
    a[1].Zhu=0;
    a[1].Fu=0;
    a[1].yulei=0;
    a[1].shuilei=0;
    a[1].fire=0;
    a[1].gas_good=10;
    a[1].guard=0;
    a[1].HP=15000;
    a[1].name="max fight 1";
    a[1].HPm=15000;
    a[1].gasm=1200;
    a[1].boat[40][15]=100;
    a[1].long_=70;
    a[1].att_s_1=0;
    a[1].att_good_1=10;
    a[1].att_good_2=40;
    a[1].att_good_3=15;
    a[1].att_good_4=80;
    a[1].Lv=1;
    cout<<"游戏开始"<<'\n';
    system("pause");
    system("cls");
    while(1+1==2)
    {
        system("cls");
        cout<<"游戏举行中----------"<<'\n';
        system("pause");
        cout<<"资金:"<<money;
        if(money<-10000000)
        {
            cout<<"负债过多 挑衅失败"<<'\n';
            return ;
        }
        if(sea)
        {
            for(int i=1; i<=shuliang; i++)
            {
                int f=100;
                cout<<a.name<<":"<<'\n';
                cout<<"该舰艇现在距离基地"<<km<<"km,必要"<<km*a.gas_good<<"升燃油"<<'\n';
                if(a.fire==0) pr("舰艇无火灾",2),cout<<'\n';
                else if(a.fire>0&&a.fire<=1.5) pr("舰艇火灾警告",6),f-=0.1,cout<<'\n';
                else if(a.fire<=5) pr("中等火灾警告",6),f-=5,cout<<'\n';
                else if(a.fire<=10) pr("最高火灾警告->立即返航/弃船",4),f-=40,cout<<'\n';
                if(km*a.gas_good>=a.gas*2) pr("最高油量警告->立即返航",4),f-=40,cout<<'\n';
                else if(km*a.gas_good>=a.gas) pr("油量警告",6),f-=35,cout<<'\n';
                if(a.HP<=100) pr("重伤警告->立即返航/弃船",4),f-=60,cout<<'\n';
                else if(a.HP<=1000) pr("警告->留意躲避火力",6),f-=20,cout<<'\n';
                cout<<"1 主炮弹药数量:";
                int l=a.att_s_1;
                cout<<l<<'\n';
                if(l==0) pr("没有弹药 建议增加",4);
                else if(l<=30) pr("弹药较少 建议增加",6);
                else pr("基本足够(仅为评估)",2);
                cout<<'\n';
                cout<<"2 副炮弹药数量:";
                l=a.att_s_2;
                cout<<l<<'\n';
                if(l==0) pr("没有弹药 建议增加",4);
                else if(l<=30) pr("弹药较少 建议增加",6);
                else pr("基本足够(仅为评估)",2);
                cout<<'\n';
                if(a.Zhu==0) pr("主炮不敷",4),cout<<'\n';
                if(a.Fu==0) pr("副炮不敷",4),cout<<'\n';
                if(a.Fu==0) pr("鱼雷不敷",4),cout<<'\n';
                if(a.Fu==0) pr("水雷不敷",4),cout<<'\n';
            }
            fight();
        }
        else
        {
            for(int i=1; i<=shuliang; i++)
            {
                cout<<i<<" "<<a.name<<'\n';
                a.HP=a.HPm;
                a.fire=0;
                a.go=false;
                a.lx=0;
                a.ly=0;
                int f=100;
                if(a.gas<=0) pr("油量警告->必须加油",4),f-=40,cout<<'\n';
                else if(a.gas<=100) pr("油量警告->必要加油",4),f-=40,cout<<'\n';
                else if(a.gas<=400) pr("油量警告",6),f-=35,cout<<'\n';
                cout<<"血量:"<<a.HP<<" / "<<a.HPm<<'\n';
                cout<<"油量:"<<a.gas<<" / "<<a.gasm<<'\n';
                cout<<"长度:"<<a.long_<<'\n';
                cout<<"主炮数量:"<<a.Zhu<<'\n';
                cout<<"副炮数量:"<<a.Fu<<'\n';
                cout<<"1 主炮弹药数量:";
                int l=a.att_s_1;
                cout<<l<<'\n';
                if(l==0) pr("没有弹药 建议增加",4);
                else if(l<=30) pr("弹药较少 建议增加",6);
                else pr("基本足够(仅为评估)",2);
                cout<<'\n';
                cout<<"2 副炮弹药数量:";
                l=a.att_s_2;
                cout<<l<<'\n';
                if(l==0) pr("没有弹药 建议增加",4);
                else if(l<=30) pr("弹药较少 建议增加",6);
                else pr("基本足够(仅为评估)",2);
                cout<<'\n';
                if(a.Zhu==0) pr("主炮不敷",4),cout<<'\n';
                if(a.Fu==0) pr("副炮不敷",4),cout<<'\n';
                if(a.Fu==0) pr("鱼雷不敷",4),cout<<'\n';
                if(a.Fu==0) pr("水雷不敷",4),cout<<'\n';
                cout<<'\n';
            }
            up();
        }
        sleep(1);
    }
}
int main()
{
    random_device rd;
    a[1].gas=1000;
    a[1].attack=0;
    a[1].Zhu=3;
    a[1].Fu=5;
    a[1].yulei=5;
    a[1].shuilei=0;
    a[1].fire=0;
    a[1].gas_good=7;
    a[1].guard=0;
    a[1].HP=15000;
    a[1].name="";
    a[1].HPm=15000;
    a[1].gasm=1200;
    a[1].boat[40][15]=100;
    a[1].long_=70;
    a[1].att_s_1=0;
    a[1].att_good_1=10;
    a[1].att_good_2=40;
    a[1].att_good_3=15;
    a[1].att_good_4=80;
    a[1].Lv=1;
    cout<<"是否必要新手指南?(y/n)"<<'\n';
    char xing;
    cin>>xing;
    if(xing=='y') new_do();
    play();
    std:fstream outFile("log.txt");
    //
    outFile.close();
    cout<<"感谢游玩 个人主页:    https://blog.csdn.net/YYDS314?type=blog"<<'\n';
    return 0;
}
 
注:更新时间:2025 : 05

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
继续阅读请点击广告
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表