结构体练习

结构体练习--自做对战练习

//做这个的时候,遇到一个问题。

//用结构体定义了四组变量,来表示英雄的各种属性。先做出游戏使用英雄的模板。在玩家输入要调用的英雄后,再进行对战。

//当时思考,我不知道玩家会选择哪个英雄,难道我要把所有的对战情况都写出来,当玩家选择的时候,用if去判别?对战情况太多。。。累死

//我可不可以在后面只做两个人a,b对战,当玩家选择完英雄后,我直接把英雄的属性值赋值给a,b

//想法有了,开始做吧。可是我把5个英雄的属性放入arraylist集合中后,让玩家输入英雄的名字进行选择,把输入的string类型变量直接赋值给struct类型的a,b不行,强制转换也不行

//后来想到原因,集合中的一个英雄元素包含太多属性,不是单一的,无法直接赋值吧,估计需要用foreach罗列,再去检索吧,太麻烦

//后来直接改输入数字选英雄,用下标把整个元素赋值给a,b 问题解决

 

  1 using System;
  2 using System.Collections;
  3 using System.Collections.Generic;
  4 using System.Text;
  5 
  6 namespace 对战练习
  7 {
  8     class Program
  9     {
 10         struct player
 11         {
 12             public string name;
 13             public int atk;
 14             public int hp;
 15             public int defense;
 16             public int quick;
 17             public int power;
 18             public int mp;
 19             public renshu jn;
 20         }
 21         struct renshu
 22         {
 23             public renshuming name;
 24             public int chakela;
 25         }
 26         struct renshuming
 27         {
 28             public string renshu1;
 29             public string renshu2;
 30             public string renshu3;
 31             public string renshu4;
 32             public JNshanghai shanghai;
 33         }
 34         struct JNshanghai
 35         {
 36             
 37             public int shanghai1;
 38             public int shanghai2;
 39             public int shanghai3;
 40             public int shanghai4;
 41         }
 42         static void Main(string[] args)
 43         {
 44             Random r=new Random();
 45             player wanjia1 = new player();
 46             player wanjia2 = new player();
 47             player p1 = new player();
 48             player p2 = new player();
 49             player p3 = new player();
 50             player p4 = new player();
 51             player p5 = new player();
 52             p1.name = "初代-千手柱间";
 53             p1.power = r.Next(60,80);
 54             p1.hp = r.Next(3000, 3500) + p1.power * 10;
 55             p1.quick = r.Next(30, 40);
 56             p1.defense = p1.quick;
 57             p1.mp = r.Next(40,50);
 58             p1.atk = r.Next(80, 100) + p1.power * 2+p1.mp;
 59             p1.jn.chakela = 1500;
 60             p1.jn.name.renshu1 = "仙法-木遁-真数千手";
 61             p1.jn.name.shanghai.shanghai1 = 900;
 62             p1.jn.name.renshu2 = "木遁-花树界降临";
 63             p1.jn.name.shanghai.shanghai2 = 800;
 64             p1.jn.name.renshu3 = "木遁-树界降诞";
 65             p1.jn.name.shanghai.shanghai3 = 700;
 66             p1.jn.name.renshu4 = "木遁-巨木人之术";
 67             p1.jn.name.shanghai.shanghai4 = 600;
 68             p2.name = "旗木卡卡西";
 69             p2.power = r.Next(40, 60);
 70             p2.hp = r.Next(2800, 3300) + p2.power * 5;
 71             p2.quick = r.Next(60, 80);
 72             p2.defense = p2.quick * 2;
 73             p2.mp = r.Next(30,40);
 74             p2.atk = r.Next(90, 110) + p2.quick * 2+p2.mp;
 75             p2.jn.chakela = 1000;
 76             p2.jn.name.renshu1 = "神威";
 77             p2.jn.name.shanghai.shanghai1 = 900;
 78             p2.jn.name.renshu2 = "水遁·大瀑布之术";
 79             p2.jn.name.shanghai.shanghai2 = 500;
 80             p2.jn.name.renshu3 = "冰遁·一角白鲸";
 81             p2.jn.name.shanghai.shanghai3 = 600;
 82             p2.jn.name.renshu4 = "雷遁-雷切";
 83             p2.jn.name.shanghai.shanghai4 = 650;
 84             p3.name = "我爱罗";
 85             p3.power = r.Next(20, 40);
 86             p3.hp = r.Next(2700, 3200) + p3.power * 5;
 87             p3.quick = r.Next(30, 50);
 88             p3.defense = p3.quick;
 89             p3.mp = r.Next(100, 120);
 90             p3.atk = r.Next(100, 120) + p3.mp * 2+p3.quick;
 91             p3.jn.chakela = 1200;
 92             p3.jn.name.renshu1 = "砂之守鹤";
 93             p3.jn.name.shanghai.shanghai1 = 850;
 94             p3.jn.name.renshu2 = "守鹤之矛";
 95             p3.jn.name.shanghai.shanghai2 = 800;
 96             p3.jn.name.renshu3 = "砂瀑层大葬";
 97             p3.jn.name.shanghai.shanghai3 = 600;
 98             p3.jn.name.renshu4 = "风遁-无限砂尘大突破";
 99             p3.jn.name.shanghai.shanghai4 = 650;
100             p4.name = "漩涡鸣人";
101             p4.power = r.Next(60, 80);
102             p4.hp = r.Next(3000, 3500) + p4.power * 10;
103             p4.quick = r.Next(80, 90);
104             p4.defense = p1.quick+30;
105             p4.mp = r.Next(1,10);
106             p4.atk = r.Next(80, 100) + p4.power * 2+p4.mp;
107             p4.jn.chakela = 1500;
108             p4.jn.name.renshu1 = "仙法-风遁-螺旋手里剑";
109             p4.jn.name.shanghai.shanghai1 = 800;
110             p4.jn.name.renshu2 = "超大玉螺旋丸";
111             p4.jn.name.shanghai.shanghai2 = 650;
112             p4.jn.name.renshu3 = "大玉螺旋丸";
113             p4.jn.name.shanghai.shanghai3 = 600;
114             p4.jn.name.renshu4 = "螺旋丸";
115             p4.jn.name.shanghai.shanghai4 = 500;
116             p5.name = "宇智波佐助";
117             p5.power = r.Next(40, 60);
118             p5.hp = r.Next(2800, 3300) + p5.power * 5;
119             p5.quick = r.Next(60, 80);
120             p5.defense = p2.quick * 2;
121             p5.mp = r.Next(20,30);
122             p5.atk = r.Next(90, 110) + p5.quick * 2+p5.mp;
123             p5.jn.chakela = 1000;
124             p5.jn.name.renshu1 = "须佐能乎";
125             p5.jn.name.shanghai.shanghai1= 850;
126             p5.jn.name.renshu2 = "天照";
127             p5.jn.name.shanghai.shanghai2 = 800;
128             p5.jn.name.renshu3 = "火遁-豪火球之术";
129             p5.jn.name.shanghai.shanghai3 = 500;
130             p5.jn.name.renshu4 = "雷遁-千鸟";
131             p5.jn.name.shanghai.shanghai4 = 600;
132             ArrayList p = new ArrayList();
133             p.Add(p1);
134             p.Add(p2);
135             p.Add(p3);
136             p.Add(p4);
137             p.Add(p5);
138             Console.WriteLine("火影第二版!暂时放出5个英雄,每个英雄四个专属技能。后续添加!"+
139             "欢迎各位大神指导修正!\n    目前正在做三个忍者村:木叶、砂忍、晓。每个英雄各自有归属,随着学习知识的深入不断进行完善,希望做成桌游。啊哈哈!"+
140             "\n   此版本加入了查克拉,维持生命的基础查克拉量是200,也就是说查克拉如果低于200就无法施放技能。可以判断是否同归于尽,判定玩家一查克拉量是否高于"+
141             "150生命值是否低于250并且玩家二生命值高于玩家一生命值且玩家二生命值低于玩家一最强技能伤害值,满足条件玩家一可与玩家二同归于尽!");
142             Console.WriteLine("点击任意键继续。。。。");
143             Console.ReadKey();
144             Console.Clear();
145             Console.WriteLine("请玩家一选择英雄:\n1.初代 2.旗木卡卡西 3.我爱罗 4.漩涡鸣人 5.宇智波佐助");
146             int a1 = Convert.ToInt32(Console.ReadLine());
147             Console.WriteLine("请玩家二选择英雄:\n1.初代 2.旗木卡卡西 3.我爱罗 4.漩涡鸣人 5.宇智波佐助");
148             int a2 = Convert.ToInt32(Console.ReadLine());
149             wanjia1 = (player)p[a1-1];
150             wanjia2 = (player)p[a2-1];
151             Console.Clear();
152             Console.ForegroundColor = ConsoleColor.Red;
153             Console.WriteLine("英雄名称:"+wanjia1.name+" HP "+wanjia1.hp+" 防御 "+wanjia1.defense+" 攻击 "+wanjia1.atk+" 敏捷 "+wanjia1.quick+" 智商 "
154                 +wanjia1.mp+" 查克拉 "+wanjia1.jn.chakela);
155             Console.WriteLine("VS");
156             Console.WriteLine("英雄名称:" + wanjia2.name + " HP " + wanjia2.hp + " 防御 " + wanjia2.defense + " 攻击 " + wanjia2.atk +" 敏捷 "+
157                 wanjia2.quick+ " 智商 " + wanjia2.mp+" 查克拉 "+wanjia2.jn.chakela);
158             Console.ResetColor();
159             Console.WriteLine("点击任意键开始游戏.....");
160             Console.ReadKey();
161             while (true)
162             {
163                 if (wanjia1.hp<=0&&wanjia2.hp<=0)
164                 {
165                     Console.WriteLine("卧槽~战的不爽~来~~再来大战三百回合");
166                     break;
167                 }
168                 else if (wanjia1.hp<=0&&wanjia2.hp>0)
169                 {
170                     Console.WriteLine(" "+wanjia1.name+"  你丫~回家修炼十年再来比过");
171                     break;
172                 }
173                 else if (wanjia1.hp>0&&wanjia2.hp<=0)
174                 {
175                      Console.WriteLine(" "+wanjia2.name+"  你丫~回家修炼十年再来比过");
176                      break;
177                 }
178                 else if (wanjia1.hp<250&&wanjia1.jn.chakela>150&&wanjia2.hp>wanjia1.hp&&wanjia2.hp<wanjia1.jn.name.shanghai.shanghai1)
179                 {
180                     Console.WriteLine(" "+wanjia1.name+" 施放最强技能 "+wanjia1.jn.name+""+wanjia2.name+"同归于尽");
181                     break;
182                 }
183                 else if (wanjia2.hp<250&&wanjia2.jn.chakela>150&&wanjia1.hp>wanjia2.hp&&wanjia1.hp<wanjia2.jn.name.shanghai.shanghai1)
184                 {
185                     Console.WriteLine(" "+wanjia2.name+" 施放最强技能 "+wanjia2.jn.name+""+wanjia1.name+"同归于尽");
186                     break;
187                 }
188                 if (wanjia1.quick>wanjia2.quick)//敏捷高的先出手
189                 {
190                     int s1 = r.Next(0, 10);//随机取值,来调节技能的施放几率
191                     if (s1 > 7 && wanjia1.jn.chakela > 200)//调节技能的施放几率,并且必须在查克拉量200以上才可以施放,200为基础查克拉量,低于这个值便进入虚弱状态
192                     {
193                         int c = r.Next(200,300);//随机取值,查克拉的消耗量
194                         int x1 = r.Next(0,4);//取随机数,用来施放不同的技能
195                         int dhp2;//玩家二的掉血量
196                         int atk1 = wanjia1.atk - 50;//浮动玩家一的普通攻击
197                         int defense2 = wanjia2.defense - 10;//浮动玩家二的防御
198                         switch (x1)
199                         {
200                             case 0:
201                                 dhp2 = (atk1 + wanjia1.jn.name.shanghai.shanghai1 - defense2) < 0 ? 0 : (atk1 + wanjia1.jn.name.shanghai.shanghai1 - defense2);
202                                 wanjia2.hp -= dhp2;
203                                 wanjia1.jn.chakela -= c;
204                                 if (wanjia2.hp<0)
205                                 {
206                                     wanjia2.hp = 0;
207                                 }
208                                 Console.ForegroundColor = ConsoleColor.Red;
209                                 Console.WriteLine(wanjia1.name + "消耗 " + c + " 点查克拉" + "施放 " + wanjia1.jn.name.renshu1 + "" + wanjia2.name + "造成" + dhp2 + "点伤害\n" + wanjia1.name + "剩余查克拉" + wanjia1.jn.chakela);
210                                 break;
211                             case 1:
212                                 dhp2 = (atk1 + wanjia1.jn.name.shanghai.shanghai2 - defense2) < 0 ? 0 : (atk1 + wanjia1.jn.name.shanghai.shanghai2 - defense2);
213                                 wanjia2.hp -= dhp2;
214                                 wanjia1.jn.chakela -= c;
215                                 if (wanjia2.hp<0)
216                                 {
217                                     wanjia2.hp = 0;
218                                 }
219                                 Console.ForegroundColor = ConsoleColor.Red;
220                                 Console.WriteLine(wanjia1.name + "消耗 " + c + " 点查克拉" + "施放 " + wanjia1.jn.name.renshu2 + "" + wanjia2.name + "造成" + dhp2 + "点伤害\n" + wanjia1.name + "剩余查克拉" + wanjia1.jn.chakela);
221                                 break;
222                             case 2:
223                                 dhp2 = (atk1 + wanjia1.jn.name.shanghai.shanghai3 - defense2) < 0 ? 0 : (atk1 + wanjia1.jn.name.shanghai.shanghai3 - defense2);
224                                 wanjia2.hp -= dhp2;
225                                 wanjia1.jn.chakela -= c;
226                                 if (wanjia2.hp<0)
227                                 {
228                                     wanjia2.hp = 0;
229                                 }
230                                 Console.ForegroundColor = ConsoleColor.Red;
231                                 Console.WriteLine(wanjia1.name + "消耗 " + c + " 点查克拉" + "施放 " + wanjia1.jn.name.renshu3 + "" + wanjia2.name + "造成" + dhp2 + "点伤害\n" + wanjia1.name + "剩余查克拉" + wanjia1.jn.chakela);
232                                 break;
233                             case 3:
234                                 dhp2 = (atk1 + wanjia1.jn.name.shanghai.shanghai4 - defense2) < 0 ? 0 : (atk1 + wanjia1.jn.name.shanghai.shanghai4 - defense2);
235                                 wanjia2.hp -= dhp2;
236                                 wanjia1.jn.chakela -= c;
237                                 if (wanjia2.hp<0)
238                                 {
239                                     wanjia2.hp = 0;
240                                 }
241                                 Console.ForegroundColor = ConsoleColor.Red;
242                                 Console.WriteLine(wanjia1.name + "消耗 " + c + " 点查克拉" + "施放 " + wanjia1.jn.name.renshu4 + "" + wanjia2.name + "造成" + dhp2 + "点伤害\n" + wanjia1.name + "剩余查克拉" + wanjia1.jn.chakela);
243                                 break;
244                         }
245                     }
246                     else
247                     {
248                         int dodge = r.Next(0,10);
249                         if (dodge>6)//取随机数,用来调节闪避的几率
250                         {
251                             Console.ForegroundColor = ConsoleColor.Green;
252                             Console.WriteLine(wanjia2.name+" 躲避了 "+wanjia1.name+"的攻击");
253                         }
254                         else
255                         {
256                             int dhp2;//玩家二的掉血量
257                             int atk1 = wanjia1.atk - 50;
258                             int defense2 = wanjia2.defense - 10;
259                             dhp2 = (atk1 - defense2) < 0 ? 0 : (atk1 - defense2);
260                             wanjia2.hp -= dhp2;
261                             if (wanjia2.hp < 0)
262                             {
263                                 wanjia2.hp = 0;
264                             }
265                             Console.ForegroundColor = ConsoleColor.Blue;
266                             Console.WriteLine(wanjia1.name + "使用 普通攻击 对" + wanjia2.name + "造成" + dhp2 + "点伤害");
267                         }
268                     }
269                     System.Threading.Thread.Sleep(1500);
270                     int s2 = r.Next(0, 10);
271                     if (s2 > 7&&wanjia2.jn.chakela>200)//调节技能的施放几率,并且必须在查克拉量200以上才可以施放,200为基础查克拉量,低于这个值便进入虚弱状态
272                     {
273                         int c = r.Next(200,300);//随机取值,表示查克拉的消耗量
274                         int x2 = r.Next(0, 4);//取随机数,用来施放不同的技能
275                         int dhp1;//玩家一的掉血量
276                         int atk2 = wanjia2.atk - 50;//浮动玩家二的普通攻击
277                         int defense1 = wanjia1.defense - 10;//浮动玩家一的防御
278                         switch (x2)
279                         {
280                             case 0:
281                                 dhp1 = (atk2 + wanjia2.jn.name.shanghai.shanghai1 - defense1) < 0 ? 0 : (atk2 + wanjia2.jn.name.shanghai.shanghai1 - defense1);
282                                 wanjia1.hp -= dhp1;
283                                 wanjia2.jn.chakela -= c;
284                                 if (wanjia1.hp < 0)
285                                 {
286                                     wanjia1.hp = 0;
287                                 }
288                                 Console.ForegroundColor = ConsoleColor.Red;
289                                 Console.WriteLine(wanjia2.name + "消耗 " + c + " 点查克拉" + "施放 " + wanjia2.jn.name.renshu1 + "" + wanjia1.name + "造成" + dhp1 + "点伤害\n" + wanjia2.name + "剩余查克拉量" + wanjia2.jn.chakela);
290                                 break;
291                             case 1:
292                                 dhp1 = (atk2 + wanjia2.jn.name.shanghai.shanghai2 - defense1) < 0 ? 0 : (atk2 + wanjia2.jn.name.shanghai.shanghai2 - defense1);
293                                 wanjia1.hp -= dhp1;
294                                 wanjia2.jn.chakela -= c;
295                                 if (wanjia1.hp < 0)
296                                 {
297                                     wanjia1.hp = 0;
298                                 }
299                                 Console.ForegroundColor = ConsoleColor.Red;
300                                 Console.WriteLine(wanjia2.name + "消耗 " + c + " 点查克拉" + "施放 " + wanjia2.jn.name.renshu2 + "" + wanjia1.name + "造成" + dhp1 + "点伤害\n" + wanjia2.name + "剩余查克拉量" + wanjia2.jn.chakela);
301                                 break;
302                             case 2:
303                                 dhp1 = (atk2 + wanjia2.jn.name.shanghai.shanghai3 - defense1) < 0 ? 0 : (atk2 + wanjia2.jn.name.shanghai.shanghai3 - defense1);
304                                 wanjia1.hp -= dhp1;
305                                 wanjia2.jn.chakela -= c;
306                                 if (wanjia1.hp < 0)
307                                 {
308                                     wanjia1.hp = 0;
309                                 }
310                                 Console.ForegroundColor = ConsoleColor.Red;
311                                 Console.WriteLine(wanjia2.name + "消耗 " + c + " 点查克拉" + "施放 " + wanjia2.jn.name.renshu3 + "" + wanjia1.name + "造成" + dhp1 + "点伤害\n" + wanjia2.name + "剩余查克拉量" + wanjia2.jn.chakela);
312                                 break;
313                             case 3:
314                                 dhp1 = (atk2 + wanjia2.jn.name.shanghai.shanghai4 - defense1) < 0 ? 0 : (atk2 + wanjia2.jn.name.shanghai.shanghai4 - defense1);
315                                 wanjia1.hp -= dhp1;
316                                 wanjia2.jn.chakela -= c;
317                                 if (wanjia1.hp < 0)
318                                 {
319                                     wanjia1.hp = 0;
320                                 }
321                                 Console.ForegroundColor = ConsoleColor.Red;
322                                 Console.WriteLine(wanjia2.name + "消耗 " + c + " 点查克拉" + "施放 " + wanjia2.jn.name.renshu4 + "" + wanjia1.name + "造成" + dhp1 + "点伤害\n" + wanjia2.name + "剩余查克拉量" + wanjia2.jn.chakela);
323                                 break;
324                         }
325                     }
326                     else
327                     {
328                         int dodge = r.Next(0, 10);
329                         if (dodge > 6)
330                         {
331                             Console.ForegroundColor = ConsoleColor.Green;
332                             Console.WriteLine(wanjia1.name + " 躲避了 " + wanjia2.name + "的攻击");
333                         }
334                         else
335                         {
336                             int dhp1;//玩家一的掉血量
337                             int atk2 = wanjia2.atk - 50;
338                             int defense1 = wanjia2.defense - 10;
339                             dhp1 = (atk2 - defense1) < 0 ? 0 : (atk2 - defense1);
340                             wanjia1.hp -= dhp1;
341                             if (wanjia1.hp < 0)
342                             {
343                                 wanjia1.hp = 0;
344                             }
345                             Console.ForegroundColor = ConsoleColor.Blue;
346                             Console.WriteLine(wanjia2.name + "使用 普通攻击 对" + wanjia1.name + "造成" + dhp1 + "点伤害");
347                         }
348                     }
349                     System.Threading.Thread.Sleep(1500);
350                 }
351                 else
352                 {
353                     int s2 = r.Next(0, 10);
354                     if (s2 > 7&&wanjia2.jn.chakela>200)
355                     {
356                         int c = r.Next(200,300);
357                         int x2 = r.Next(0, 4);//取随机数,用来施放不同的技能
358                         int dhp1;//玩家一的掉血量
359                         int atk2 = wanjia2.atk - 50;//浮动玩家二的普通攻击
360                         int defense1 = wanjia1.defense - 10;//浮动玩家一的防御
361                         switch (x2)
362                         {
363                             case 0:
364                                 dhp1 = (atk2 + wanjia2.jn.name.shanghai.shanghai1 - defense1) < 0 ? 0 : (atk2 + wanjia2.jn.name.shanghai.shanghai1 - defense1);
365                                 wanjia1.hp -= dhp1;
366                                 wanjia2.jn.chakela -= c;
367                                 if (wanjia1.hp < 0)
368                                 {
369                                     wanjia1.hp = 0;
370                                 }
371                                 Console.ForegroundColor = ConsoleColor.Red;
372                                 Console.WriteLine(wanjia2.name + "消耗 " + c + " 点查克拉" + "施放 " + wanjia2.jn.name.renshu1 + "" + wanjia1.name + "造成" + dhp1 + "点伤害\n" + wanjia2.name + "剩余查克拉量" + wanjia2.jn.chakela);
373                                 break;
374                             case 1:
375                                 dhp1 = (atk2 + wanjia2.jn.name.shanghai.shanghai2 - defense1) < 0 ? 0 : (atk2 + wanjia2.jn.name.shanghai.shanghai2 - defense1);
376                                 wanjia1.hp -= dhp1;
377                                 wanjia2.jn.chakela -= c;
378                                 if (wanjia1.hp < 0)
379                                 {
380                                     wanjia1.hp = 0;
381                                 }
382                                 Console.ForegroundColor = ConsoleColor.Red;
383                                 Console.WriteLine(wanjia2.name + "消耗 " + c + " 点查克拉" + "施放 " + wanjia2.jn.name.renshu2 + "" + wanjia1.name + "造成" + dhp1 + "点伤害\n" + wanjia2.name + "剩余查克拉量" + wanjia2.jn.chakela);
384                                 break;
385                             case 2:
386                                 dhp1 = (atk2 + wanjia2.jn.name.shanghai.shanghai3 - defense1) < 0 ? 0 : (atk2 + wanjia2.jn.name.shanghai.shanghai3 - defense1);
387                                 wanjia1.hp -= dhp1;
388                                 wanjia2.jn.chakela -= c;
389                                 if (wanjia1.hp < 0)
390                                 {
391                                     wanjia1.hp = 0;
392                                 }
393                                 Console.ForegroundColor = ConsoleColor.Red;
394                                 Console.WriteLine(wanjia2.name + "消耗 " + c + " 点查克拉" + "施放 " + wanjia2.jn.name.renshu3 + "" + wanjia1.name + "造成" + dhp1 + "点伤害\n" + wanjia2.name + "剩余查克拉量" + wanjia2.jn.chakela);
395                                 break;
396                             case 3:
397                                 dhp1 = (atk2 + wanjia2.jn.name.shanghai.shanghai4 - defense1) < 0 ? 0 : (atk2 + wanjia2.jn.name.shanghai.shanghai4 - defense1);
398                                 wanjia1.hp -= dhp1;
399                                 wanjia2.jn.chakela -= c;
400                                 if (wanjia1.hp < 0)
401                                 {
402                                     wanjia1.hp = 0;
403                                 }
404                                 Console.ForegroundColor = ConsoleColor.Red;
405                                 Console.WriteLine(wanjia2.name + "消耗 " + c + " 点查克拉" + "施放 " + wanjia2.jn.name.renshu4 + "" + wanjia1.name + "造成" + dhp1 + "点伤害\n" + wanjia2.name + "剩余查克拉量" + wanjia2.jn.chakela);
406                                 break;
407                         }
408                     }
409                     else
410                     {
411                         int dodge = r.Next(0, 10);
412                         if (dodge > 6)
413                         {
414                             Console.ForegroundColor = ConsoleColor.Green;
415                             Console.WriteLine(wanjia1.name + " 躲避了 " + wanjia2.name + "的攻击");
416                         }
417                         else
418                         {
419                             int dhp1;//玩家一的掉血量
420                             int atk2 = wanjia2.atk - 50;
421                             int defense1 = wanjia2.defense - 10;
422                             dhp1 = (atk2 - defense1) < 0 ? 0 : (atk2 - defense1);
423                             wanjia1.hp -= dhp1;
424                             if (wanjia1.hp < 0)
425                             {
426                                 wanjia1.hp = 0;
427                             }
428                             Console.ForegroundColor = ConsoleColor.Blue;
429                             Console.WriteLine(wanjia2.name + "使用 普通攻击 对" + wanjia1.name + "造成" + dhp1 + "点伤害");
430                         }
431                     }
432                     System.Threading.Thread.Sleep(1500);
433                     int s1 = r.Next(0, 10);
434                     if (s1 > 7)
435                     {
436                         int c = r.Next(200,300);
437                         int x1 = r.Next(0, 4);//取随机数,用来施放不同的技能
438                         int dhp2;//玩家二的掉血量
439                         int atk1 = wanjia1.atk - 50;//浮动玩家一的普通攻击
440                         int defense2 = wanjia2.defense - 10;//浮动玩家二的防御
441                         switch (x1)
442                         {
443                             case 0:
444                                 dhp2 = (atk1 + wanjia1.jn.name.shanghai.shanghai1 - defense2) < 0 ? 0 : (atk1 + wanjia1.jn.name.shanghai.shanghai1 - defense2);
445                                 wanjia2.hp -= dhp2;
446                                 wanjia1.jn.chakela -= c;
447                                 if (wanjia2.hp < 0)
448                                 {
449                                     wanjia2.hp = 0;
450                                 }
451                                 Console.ForegroundColor = ConsoleColor.Red;
452                                 Console.WriteLine(wanjia1.name + "消耗 " + c + " 点查克拉" + "施放 " + wanjia1.jn.name.renshu1 + "" + wanjia2.name + "造成" + dhp2 + "点伤害\n" + wanjia1.name + "剩余查克拉" + wanjia1.jn.chakela);
453                                 break;
454                             case 1:
455                                 dhp2 = (atk1 + wanjia1.jn.name.shanghai.shanghai2 - defense2) < 0 ? 0 : (atk1 + wanjia1.jn.name.shanghai.shanghai2 - defense2);
456                                 wanjia2.hp -= dhp2;
457                                 wanjia1.jn.chakela -= c;
458                                 if (wanjia2.hp < 0)
459                                 {
460                                     wanjia2.hp = 0;
461                                 }
462                                 Console.ForegroundColor = ConsoleColor.Red;
463                                 Console.WriteLine(wanjia1.name + "消耗 " + c + " 点查克拉" + "施放 " + wanjia1.jn.name.renshu2 + "" + wanjia2.name + "造成" + dhp2 + "点伤害\n" + wanjia1.name + "剩余查克拉" + wanjia1.jn.chakela);
464                                 break;
465                             case 2:
466                                 dhp2 = (atk1 + wanjia1.jn.name.shanghai.shanghai3 - defense2) < 0 ? 0 : (atk1 + wanjia1.jn.name.shanghai.shanghai3 - defense2);
467                                 wanjia2.hp -= dhp2;
468                                 wanjia1.jn.chakela -= c;
469                                 if (wanjia2.hp < 0)
470                                 {
471                                     wanjia2.hp = 0;
472                                 }
473                                 Console.ForegroundColor = ConsoleColor.Red;
474                                 Console.WriteLine(wanjia1.name + "消耗 " + c + " 点查克拉" + "施放 " + wanjia1.jn.name.renshu3 + "" + wanjia2.name + "造成" + dhp2 + "点伤害\n" + wanjia1.name + "剩余查克拉" + wanjia1.jn.chakela);
475                                 break;
476                             case 3:
477                                 dhp2 = (atk1 + wanjia1.jn.name.shanghai.shanghai4 - defense2) < 0 ? 0 : (atk1 + wanjia1.jn.name.shanghai.shanghai4 - defense2);
478                                 wanjia2.hp -= dhp2;
479                                 wanjia1.jn.chakela -= c;
480                                 if (wanjia2.hp < 0)
481                                 {
482                                     wanjia2.hp = 0;
483                                 }
484                                 Console.ForegroundColor = ConsoleColor.Red;
485                                 Console.WriteLine(wanjia1.name + "消耗 " + c + " 点查克拉" + "施放 " + wanjia1.jn.name.renshu4 + "" + wanjia2.name + "造成" + dhp2 + "点伤害\n" + wanjia1.name + "剩余查克拉" + wanjia1.jn.chakela);
486                                 break;
487                         }
488                     }
489                     else
490                     {
491                         int dodge = r.Next(0, 10);
492                         if (dodge > 6)
493                         {
494                             Console.ForegroundColor = ConsoleColor.Green;
495                             Console.WriteLine(wanjia2.name + " 躲避了 " + wanjia1.name + "的攻击");
496                         }
497                         else
498                         {
499                             int dhp2;//玩家二的掉血量
500                             int atk1 = wanjia1.atk - 50;
501                             int defense2 = wanjia2.defense - 10;
502                             dhp2 = (atk1 - defense2) < 0 ? 0 : (atk1 - defense2);
503                             wanjia2.hp -= dhp2;
504                             if (wanjia2.hp < 0)
505                             {
506                                 wanjia2.hp = 0;
507                             }
508                             Console.ForegroundColor = ConsoleColor.Blue;
509                             Console.WriteLine(wanjia1.name + "使用 普通攻击 对" + wanjia2.name + "造成" + dhp2 + "点伤害");
510                         }
511                     }
512                     System.Threading.Thread.Sleep(1500);
513                 }
514                 Console.ResetColor();
515                 Console.WriteLine();
516                 Console.WriteLine(wanjia1.name+"剩余血量  "+wanjia1.hp+"   "+wanjia2.name+"剩余血量  "+wanjia2.hp);
517                 Console.WriteLine();
518             }
519             Console.ReadLine();
520         }
521     }
522 }

 

posted @ 2015-04-12 19:58  九省巡按  阅读(177)  评论(0)    收藏  举报