using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; namespace 对战 { class Program { public struct name { public string mingzi; public int gongjili; public double xueliang; public double fangyuli; } public struct Jineng { public string mingcheng; public double shanghai; } public struct Jineng2 { public string mingcheng; public double shanghai; } public struct wuqi { public string mingcheng; public int shanghai; } public struct fangyu { public string mingcheng; public int fangyuli; public double fanshang; public double huixue; public int gongjili; } static void Main(string[] args) { #region 攻击武器库 wuqi wq1 = new wuqi(); wq1.mingcheng = "倚天剑"; wq1.shanghai = 5; wuqi wq2 = new wuqi(); wq2.mingcheng = "屠龙刀"; wq2.shanghai = 10; wuqi wq3 = new wuqi(); wq3.mingcheng = "沙漠之鹰"; wq3.shanghai = 20; wuqi wq4 = new wuqi(); wq4.mingcheng = "AWM"; wq4.shanghai = 100; Random wq = new Random(); #endregion #region 防装 fangyu fy1 = new fangyu(); fy1.mingcheng = "反伤甲"; fy1.fangyuli = 30; fy1.fanshang = 0.3; fangyu fy2 = new fangyu(); fy2.mingcheng = "狂徒铠甲"; fy2.huixue = 2; fy2.fanshang = 1; fangyu fy3 = new fangyu(); fy3.mingcheng = "烈焰护臂"; fy3.fangyuli = 15; fy3.gongjili = 3; #endregion #region 创建技能库 ArrayList jineng = new ArrayList(); Jineng ji1 = new Jineng(); ji1.mingcheng = "德玛西亚正义"; ji1.shanghai = 8; Jineng ji2 = new Jineng(); ji2.mingcheng = "诺克萨斯断头台"; ji2.shanghai = 6; Jineng ji3 = new Jineng(); ji3.mingcheng = "狂风绝息斩"; ji3.shanghai = 5; Jineng ji4 = new Jineng(); ji4.mingcheng = "禁奥义!瞬狱影杀阵"; ji4.shanghai = 10; jineng.Add(ji1); jineng.Add(ji2); jineng.Add(ji3); jineng.Add(ji4); ArrayList jineng2 = new ArrayList(); Jineng2 ji2_1 = new Jineng2(); ji2_1.mingcheng = "慈航普度"; ji2_1.shanghai = 1.5; Jineng2 ji2_2 = new Jineng2(); ji2_2.mingcheng = "神佑复生"; ji2_2.shanghai = 2; Jineng2 ji2_3 = new Jineng2(); ji2_3.mingcheng = "四海升平"; ji2_3.shanghai = 0.8; jineng2.Add(ji2_1); jineng2.Add(ji2_2); jineng2.Add(ji2_3); #endregion #region 创建战士 Console.Write("请输入第一个战士姓名:"); name name1 = new name(); name1.mingzi = (Console.ReadLine()); Random chushigongji = new Random(); Random chushixuliang = new Random(); Random chushifangyuli = new Random(); name1.fangyuli = chushifangyuli.Next(0, 31); name1.gongjili = chushigongji.Next(10000, 100001); name1.xueliang = chushixuliang.Next(100000, 1000001); int huodewuqi = wq.Next(0, 101); int huodefz = wq.Next(0, 101); System.Threading.Thread.Sleep(1000); Console.ForegroundColor = ConsoleColor.DarkYellow; if (huodefz <= 33) { Console.WriteLine("恭喜" + name1.mingzi + "获得防御武器" + fy1.mingcheng); name1.fangyuli += fy1.fangyuli; } else if (huodefz <= 66) { Console.WriteLine("恭喜" + name1.mingzi + "获得防御武器" + fy2.mingcheng + "生命值翻倍!!"); name1.fangyuli += fy2.fangyuli; name1.xueliang *= Convert.ToInt32(fy2.huixue); } else if (huodefz <= 99) { Console.WriteLine("恭喜" + name1.mingzi + "获得防御武器" + fy3.mingcheng + "增加攻击力"); name1.fangyuli += fy3.fangyuli; name1.gongjili += fy3.gongjili; } else { Console.WriteLine("你厉害!!" + name1.mingzi + "1%概率都能抽到!!"); } System.Threading.Thread.Sleep(1000); Console.ForegroundColor = ConsoleColor.DarkRed; if (huodewuqi <= 5) { Console.WriteLine(name1.mingzi + "获得武器" + wq4.mingcheng); name1.gongjili *= wq4.shanghai; } else if (huodewuqi <= 20) { Console.WriteLine(name1.mingzi + "获得武器" + wq3.mingcheng); name1.gongjili *= wq3.shanghai; } else if (huodewuqi <= 50) { Console.WriteLine(name1.mingzi + "获得武器" + wq2.mingcheng); name1.gongjili *= wq2.shanghai; } else { Console.WriteLine(name1.mingzi + "获得武器" + wq1.mingcheng); name1.gongjili *= wq1.shanghai; } System.Threading.Thread.Sleep(1000); Console.WriteLine("角色信息"); Console.WriteLine("人物姓名:" + name1.mingzi); Console.WriteLine("初始防御力为:" + name1.fangyuli); Console.WriteLine("初始攻击力为:" + name1.gongjili); Console.WriteLine("初始生命值为:" + name1.xueliang); System.Threading.Thread.Sleep(1000); Console.Write("请输入第二个战士姓名:"); name name2 = new name(); name2.mingzi = (Console.ReadLine()); name2.fangyuli = chushifangyuli.Next(0, 31); name2.gongjili = chushigongji.Next(10000, 100001); name2.xueliang = chushixuliang.Next(100000, 1000001); int huodewuqi2 = wq.Next(0, 101); System.Threading.Thread.Sleep(1000); Console.ForegroundColor = ConsoleColor.DarkYellow; if (huodefz <= 33) { Console.WriteLine("恭喜" + name1.mingzi + "获得防御武器" + fy1.mingcheng); name1.fangyuli += fy1.fangyuli; } else if (huodefz <= 66) { Console.WriteLine("恭喜" + name1.mingzi + "获得防御武器" + fy2.mingcheng + "生命值翻倍"); name1.fangyuli += fy2.fangyuli; name2.xueliang *= Convert.ToInt32(fy2.huixue); } else if (huodefz <= 99) { Console.WriteLine("恭喜" + name1.mingzi + "获得防御武器" + fy3.mingcheng + "增加攻击力"); name1.fangyuli += fy3.fangyuli; } else { Console.WriteLine("你厉害!!" + name1.mingzi + "1%概率都能抽到!!"); } System.Threading.Thread.Sleep(1000); Console.ForegroundColor = ConsoleColor.DarkRed; if (huodewuqi2 <= 5) { Console.WriteLine(name2.mingzi + "获得武器" + wq4.mingcheng); name2.gongjili *= wq4.shanghai; } else if (huodewuqi2 <= 20) { Console.WriteLine(name2.mingzi + "获得武器" + wq3.mingcheng); name2.gongjili *= wq3.shanghai; } else if (huodewuqi2 <= 50) { Console.WriteLine(name2.mingzi + "获得武器" + wq2.mingcheng); name2.gongjili *= wq2.shanghai; } else { Console.WriteLine(name2.mingzi + "获得武器" + wq1.mingcheng); name2.gongjili *= wq1.shanghai; } System.Threading.Thread.Sleep(1000); Console.WriteLine("角色信息"); Console.WriteLine("人物姓名:" + name2.mingzi); Console.WriteLine("初始防御力" + name2.fangyuli); Console.WriteLine("初始攻击力为:" + name2.gongjili); Console.WriteLine("初始生命值为:" + name2.xueliang); System.Threading.Thread.Sleep(1000); Console.WriteLine("开始对战请按任意键!"); Console.ReadKey(); System.Threading.Thread.Sleep(1000); #endregion while (true) { double shanghai = 0; double shanghai2 = 0; double xueliang = 0; //name1对name2造成伤害 Random x = new Random(); int syjn = x.Next(1, 101); if (syjn <= 40) { Jineng jn = (Jineng)jineng[x.Next(0, jineng.Count)]; shanghai = Program.Gongjili(name1.gongjili) * jn.shanghai * (name2.fangyuli / 100); xueliang = name2.xueliang - shanghai; Console.ForegroundColor = ConsoleColor.Cyan; Console.WriteLine(name1.mingzi + "对" + name2.mingzi + "使用了★★★" + jn.mingcheng + "★★★,造成" + shanghai + "点伤害," + name2.mingzi + "剩余血量为" + xueliang); System.Threading.Thread.Sleep(1000); Console.WriteLine(); } else if (syjn <= 55) { Jineng2 jn = (Jineng2)jineng2[x.Next(0, jineng2.Count)]; shanghai = Convert.ToInt32(Program.Gongjili(name1.gongjili) * jn.shanghai); xueliang = name2.xueliang + shanghai; Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine(name1.mingzi + "触发回血技能★★★" + jn.mingcheng + "★★★,对自身恢复" + shanghai + "剩余血量:" + xueliang); System.Threading.Thread.Sleep(1000); Console.WriteLine(); } else { shanghai = Program.Gongjili(name1.gongjili) * (name2.fangyuli / 100); xueliang = name2.xueliang - shanghai; Console.ForegroundColor = ConsoleColor.White; Console.WriteLine(name1.mingzi + "对" + name2.mingzi + "使用了普通攻击,造成" + shanghai + "点伤害," + name2.mingzi + "剩余血量为" + xueliang); System.Threading.Thread.Sleep(1000); Console.WriteLine(); } if (xueliang <= 0) { Console.WriteLine("恭喜" + name1.mingzi + "胜利"); break; } //name2对name1造成伤害 if (syjn <= 40) { Jineng jn = (Jineng)jineng[x.Next(0, jineng.Count)]; shanghai2 = Program.Gongjili(name2.gongjili) * jn.shanghai*(name1.fangyuli / 100); xueliang = name1.xueliang - shanghai2; Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine(name2.mingzi + "对" + name1.mingzi + "使用了★★★" + jn.mingcheng + "★★★,造成" + shanghai2 + "点伤害," + name1.mingzi + "剩余血量为" + xueliang); System.Threading.Thread.Sleep(1000); Console.WriteLine(); } else if (syjn <= 55) { Jineng2 jn = (Jineng2)jineng2[x.Next(0, jineng2.Count)]; shanghai2 = Program.Gongjili(name2.gongjili) * jn.shanghai; xueliang = name1.xueliang + shanghai; Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine(name2.mingzi + "触发回血技能★★★" + jn.mingcheng + "★★★,对自身恢复" + shanghai2 + "剩余血量:" + xueliang); System.Threading.Thread.Sleep(1000); Console.WriteLine(); } else { shanghai = Program.Gongjili(name1.gongjili) * (name1.fangyuli / 100); xueliang = name1.xueliang - shanghai; Console.ForegroundColor = ConsoleColor.White; Console.WriteLine(name2.mingzi + "对" + name1.mingzi + "使用了普通攻击,造成" + shanghai + "点伤害," + name1.mingzi + "剩余血量为" + xueliang); System.Threading.Thread.Sleep(1000); Console.WriteLine(); } //当name2生命值低于0时name1胜利 if (xueliang <= 0) { Console.WriteLine("恭喜" + name2.mingzi + "胜利"); break; } } Console.ReadKey(); } public static int Gongjili(int a) { int cc = 0; Random r = new Random(); int aa = r.Next(1, 15000); int bb = r.Next(0, 2); if (bb == 0) { cc = a + aa; } else { cc = a - aa; } return cc; } public static int fangyuli(int b) { Random r = new Random(); int aa = r.Next(0, 30); return aa; } } }