结构体练习--自做对战练习
//做这个的时候,遇到一个问题。
//用结构体定义了四组变量,来表示英雄的各种属性。先做出游戏使用英雄的模板。在玩家输入要调用的英雄后,再进行对战。
//当时思考,我不知道玩家会选择哪个英雄,难道我要把所有的对战情况都写出来,当玩家选择的时候,用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 "欢迎各位大神指导修正! 目前正在做三个忍者村:木叶、砂忍、晓。每个英雄各自有归属,随着学习知识的深入不断进行完善,希望做成桌游。啊哈哈!"+ 140 " 此版本加入了查克拉,维持生命的基础查克拉量是200,也就是说查克拉如果低于200就无法施放技能。可以判断是否同归于尽,判定玩家一查克拉量是否高于"+ 141 "150生命值是否低于250并且玩家二生命值高于玩家一生命值且玩家二生命值低于玩家一最强技能伤害值,满足条件玩家一可与玩家二同归于尽!"); 142 Console.WriteLine("点击任意键继续。。。。"); 143 Console.ReadKey(); 144 Console.Clear(); 145 Console.WriteLine("请玩家一选择英雄: 1.初代 2.旗木卡卡西 3.我爱罗 4.漩涡鸣人 5.宇智波佐助"); 146 int a1 = Convert.ToInt32(Console.ReadLine()); 147 Console.WriteLine("请玩家二选择英雄: 1.初代 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 + "点伤害 " + 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 + "点伤害 " + 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 + "点伤害 " + 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 + "点伤害 " + 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 + "点伤害 " + 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 + "点伤害 " + 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 + "点伤害 " + 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 + "点伤害 " + 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 + "点伤害 " + 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 + "点伤害 " + 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 + "点伤害 " + 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 + "点伤害 " + 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 + "点伤害 " + 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 + "点伤害 " + 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 + "点伤害 " + 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 + "点伤害 " + 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 }