• 对战游戏自己简单版+大神版


    自己简单版:

    namespace ConsoleApplication25
    {
        
        class Program
        {
            struct player
            {
                public string name;
                public int hp,atk,def;
                public wugong wg;
            }
            struct wugong
            {
                public string name;
                public int gongji;
            }
            static void Main(string[] args)
            {
                Console.Write("请输入玩家P1名字:");
                string x=Console.ReadLine();
                Console.Write("请输入玩家P2名字:");
                string y = Console.ReadLine();
                player p1 = new player();
                Random r = new Random();
                p1.name = x;
                p1.hp = r.Next(1,100)+1000;
                p1.atk = r.Next(1,50)+100;
                p1.def = r.Next(1, 20)+50;
                player p2 = new player();
                p2.name = y;
                p2.hp = r.Next(1, 100) + 1000;
                p2.atk = r.Next(1, 50)+100;
                p2.def = r.Next(1, 20)+50;
                Console.WriteLine(p1.name + "的血量为:" + p1.hp + "	攻击力为:" + p1.atk + "	防御为:" + p1.def + "
    " + p2.name + "的血量为:" + p2.hp + "	攻击力为:" + p2.atk + "	防御为:" + p2.def);
                Console.WriteLine("请按Enter键开始攻击!");
                Console.ReadLine();
    
                int hp1=p1.hp, hp2=p2.hp,m,n;
                while (true)
                {
                    m = p2.atk + r.Next(20, 50) - (p1.def / 2);
                    hp1 = hp1 - m;
                    n = p1.atk + r.Next(20, 50) - (p1.def / 2);
                    hp2 = hp2 - n;
                    if (hp1<0)
                    {
                        hp1 = 0;
                    }
                    if (hp2 < 0)
                    {
                        hp2 = 0;
                    }
                    Console.WriteLine(p1.name + "受到了" + p2.name + "" + m + "点攻击," + "剩余血量为" + hp1 + "	" + p2.name + "受到了" + p1.name + "" + n + "点攻击," + "剩余血量为" + hp2);
                    
                    if (hp1<=0&&hp2<=0)
                    {
                        Console.WriteLine(p1.name+""+p2.name+"同归于尽!");
                        break;
                    }
                    if (hp1<=0)
                    {
                        Console.WriteLine(p2.name + "获胜!");
                        break;
                    }
                    if (hp2 <= 0)
                    {
                        Console.WriteLine(p1.name + "获胜!");
                        break;
                    }
    
                }
                Console.ReadLine();
            }
        }
    }


    大神版:
    namespace ConsoleApplication5
    {
    
    
    
    
    
        class Program
        {
            struct player
            {
                public string name;
                public int hp;
                public int attack;
                public int defend;
                public int quick;
                public WuGong WG;
            }
            struct WuGong
            {
                public string name;
                public int atk;
            }
    
            static void Main(string[] args)
            {
    
                Console.BackgroundColor = ConsoleColor.White;
                Console.ForegroundColor = ConsoleColor.Black;
                Console.Clear();
                player p1 = new player();
                player p2 = new player();
                Random r = new Random();
    
                //生成两个玩家
                Console.Write("请输入第一个战士的名字:");
                p1.name = Console.ReadLine();
                Console.Write("请输入第二个战士的名字:");
                p2.name = Console.ReadLine();
                //生成血量
                p1.hp = r.Next(1, 1000) + 1000;//初始血量
                p2.hp = r.Next(1, 1000) + 1000;
                //生成攻防
                p1.attack = r.Next(1, 50) + 80;
                p2.attack = r.Next(1, 50) + 80;
                p1.defend = r.Next(1, 50) + 50;
                p2.defend = r.Next(1, 50) + 50;
                //生成身法-敏捷度
                p1.quick = r.Next(100);
                p2.quick = r.Next(100);
    
                Console.WriteLine("玩家:" + p1.name + " 血量:" + p1.hp + "	攻击力:" + p1.attack
                 + "	物防:" + p1.defend + " 敏捷度:" + p1.quick);
                Console.WriteLine("VS");
                Console.WriteLine("玩家:" + p2.name + " 血量:" + p2.hp + "	攻击力:" + p2.attack
                + "	物防:" + p2.defend + " 敏捷度:" + p2.quick);
                Console.WriteLine("点击任意键开始游戏.....");
                Console.ReadKey();
    
                while (true)
                {
                    // 得出最后结果,跳出循环
                    if (p1.hp <= 0 && p2.hp <= 0)
                    {
                        Console.WriteLine(p1.name + "" + p2.name + "同归于尽!");
                        Console.ReadLine();
                        break;
                    }
                    if (p1.hp <= 0)
                    {
                        Console.WriteLine(p2.name + "" + p1.name + "KO..");
                        Console.ReadLine();
                        break;
                    }
                    if (p2.hp <= 0)
                    {
                        Console.WriteLine(p1.name + "" + p2.name + "KO..");
                        Console.ReadLine();
                        break;
                    }
    
                    //对战
    
                    WuGong[] wg = new WuGong[3];
                    //gongfu(wg);
                    wg[0].name = "降龙十八掌";
                    wg[0].atk = 500;
    
                    wg[1].name = "打狗棒法";
                    wg[1].atk = 600;
    
                    wg[2].name = "独孤九剑";
                    wg[2].atk = 600;
                    //大招
                    int dz1 = r.Next(10);//大招随机
                    if (dz1 >= 5) //从1到9的随机数里 取8和9 有20%的几率用大招。
                    {
                        Random x = new Random();
                        int a = x.Next(0, 3);
                        int dx1 = r.Next(100);//声明 掉血 变量
                        int gj1 = r.Next(100) - 50;//为了浮动 P2的 攻击力;
                        int fy1 = r.Next(100) - 50;//为了浮动 P1的防御力;
                        dx1 = ((dx1 + wg[a].atk) - (p1.defend + fy1)) < 0 ? 0 : ((dx1 + wg[a].atk) - (p1.defend + fy1));
                        //为了防止掉血 出现负值
                        p1.hp -= dx1;
                        if (p1.hp < 0)
                        {
                            p1.hp = 0;
                        }
                        Console.ForegroundColor = ConsoleColor.Red;
                        Console.WriteLine(p2.name + "使用大招 " + wg[a].name + " 攻击,对" + p1.name + "造成" + dx1 + "的伤害。");
    
                    }
                    else //平常招式
                    {
                        //躲闪
                        int sf1 = r.Next(80);//身法的随机数
    
                        if (p1.quick - sf1 >= 0)
                        {
                            Console.ForegroundColor = ConsoleColor.Black;
                            Console.WriteLine(p1.name + "躲闪" + p2.name + "的攻击");
                        }
                        else
                        {
                            int dx1 = r.Next(100);//声明 掉血 变量
                            int gj1 = r.Next(100) - 50;//为了浮动 P2的 攻击力;
                            int fy1 = r.Next(100) - 50;//为了浮动 P1的防御力;
                            dx1 = (dx1 + (p2.attack + gj1) - (p1.defend + fy1)) < 0 ? 0 : (dx1 + (p2.attack + gj1) - (p1.defend + fy1));
                            //为了防止掉血 出现负值
                            p1.hp -= dx1;
                            if (p1.hp < 0)
                            {
                                p1.hp = 0;
                            }
                            Console.ForegroundColor = ConsoleColor.Red;
                            Console.WriteLine(p1.name + "使用普通攻击,对" + p2.name + "造成" + dx1 + "的伤害。");
                        }
                    }
                    //稍等一下
                    System.Threading.Thread.Sleep(1000);
    
                    int dz2 = r.Next(10);
                    if (dz2 >= 5)
                    {
                        Random y = new Random();
                        int b = y.Next(0, 3);
                        int dx2 = r.Next(100);
                        int gj2 = r.Next(100) - 50;//为了浮动 P1的 攻击力;
                        int fy2 = r.Next(100) - 50;//为了浮动 P2的防御力;
                        dx2 = ((dx2 + wg[b].atk) - (p2.defend + fy2)) < 0 ? 0 : ((dx2 + wg[b].atk) - (p2.defend + fy2));
                        //为了防止掉血 出现负值
                        p2.hp -= dx2;
                        if (p2.hp < 0)
                        {
                            p2.hp = 0;
                        }
                        Console.ForegroundColor = ConsoleColor.DarkMagenta;
                        Console.WriteLine(p1.name + "使用大招 " + wg[b].name + " 攻击,对" + p2.name + "造成" + dx2 + "的伤害。");
                    }
                    else
                    {
                        //躲闪
                        int sf2 = r.Next(80);
                        if (p2.quick - sf2 > sf2)
                        {
                            Console.ForegroundColor = ConsoleColor.Black;
                            Console.WriteLine(p2.name + "躲闪" + p1.name + "的攻击");
                        }
                        else
                        {
                            int dx2 = r.Next(100);
                            int gj2 = r.Next(100) - 50;//为了浮动 P1的 攻击力;
                            int fy2 = r.Next(100) - 50;//为了浮动 P2的防御力;
                            dx2 = (dx2 + (p1.attack + gj2) - (p2.defend + fy2)) < 0 ? 0 : (dx2 + (p1.attack + gj2) - (p2.defend + fy2));
                            //为了防止掉血 出现负值
                            p2.hp -= dx2;
                            if (p2.hp < 0)
                            {
                                p2.hp = 0;
                            }
                            Console.ForegroundColor = ConsoleColor.DarkMagenta;
                            Console.WriteLine(p2.name + "使用普通攻击,对" + p1.name + "造成" + dx2 + "的伤害。");
                        }
                    }
                    //稍等一下
                    System.Threading.Thread.Sleep(1000);
                    Console.ForegroundColor = ConsoleColor.DarkBlue;
                    Console.WriteLine("玩家:" + p1.name + "	血量:" + p1.hp + "	");
                    Console.WriteLine("玩家:" + p2.name + "	血量:" + p2.hp);
    
    
                }
            }
    
        }
    
    }
    
    
    
     
    二百个不间断的重复,只是让我看到了人的命运无法改变这一事实而已。
  • 相关阅读:
    事半功倍系列 javascript(一)
    网页播放的视频代码
    显示消息提示对话框,并进行页面跳转
    GirdView不足10条显示为空行
    网页虚线效果
    JavaScript身份证号码验证支持新的带x身份证
    几个好用的ButtonCSS样式
    按钮超链接样式
    FlashCom学习第一课:了解名词、概念,安装FlashCom服务器。
    留住最后的激情,准备转向管理层的程序员们必看!
  • 原文地址:https://www.cnblogs.com/dlexia/p/4439421.html
Copyright © 2020-2023  润新知