对战游戏

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;
        }
    }
}
原文地址:https://www.cnblogs.com/yangchuanqi/p/7804764.html