欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于C#模擬實(shí)現(xiàn)回合制游戲

 更新時(shí)間:2021年12月29日 10:02:11   作者:九九IT筆記  
這篇文章主要介紹了通過C#模擬實(shí)現(xiàn)回合制游戲,文中的示例代碼講解詳細(xì),對(duì)我們的學(xué)習(xí)和工作有一定的幫助,感興趣的可以跟隨小編一起學(xué)習(xí)一下

前言

文章開始把我喜歡的這句話送個(gè)大家:這個(gè)世界上還有什么比自己寫的代碼運(yùn)行在一億人的電腦上更酷的事情嗎,如果有那就是讓這個(gè)數(shù)字再擴(kuò)大十倍?。?!

底部有下載鏈接:附帶代碼、答辯PPT、數(shù)據(jù)、音樂等素材。

規(guī)則簡(jiǎn)介

1>創(chuàng)建一個(gè)Hero類特征name(英雄名字),hp(血量),mp(魔法值), physicsAttack(物理攻擊力),magicAttack(魔法攻擊力)

2>創(chuàng)建一個(gè)BattleControl戰(zhàn)斗管理類,該類有兩個(gè)字段分別為L(zhǎng)ist<Hero> ours(存儲(chǔ)己方陣營(yíng)中五個(gè)英雄)和List<Hero> enemy(存儲(chǔ)對(duì)方五個(gè)英雄)類型,分別創(chuàng)建五個(gè)英雄和五個(gè)敵人分別添加到對(duì)應(yīng)List泛型列表中。添加int類型字段round 記錄戰(zhàn)斗開始到結(jié)束總的回合數(shù)。注:英雄名字自定義,血量200 魔法值100 攻擊力自定義。

3>模擬回合制游戲邏輯,初始化完畢后首先己方攻擊,每次攻擊隨機(jī)從對(duì)方陣營(yíng)篩選一個(gè)敵人進(jìn)行攻擊,

每次造成的傷害為物理攻擊和魔法攻擊的疊加值,如果沒有魔法值那么傷害值只是物理攻擊力即可。

每次魔法攻擊之后需要減去相應(yīng)的魔法值,比如魔法攻擊力為20,那么魔法值也需要消耗20個(gè)點(diǎn)。

攻擊的同時(shí)輸出信息格式:小一攻擊了小二,小二剩余血量為80。

己方所有英雄攻擊完畢之后,敵人攻擊,攻擊流程同上。

4>當(dāng)某一個(gè)敵人或者己方英雄死亡后將死亡角色從對(duì)應(yīng)List泛型列表中移除,某一個(gè)陣營(yíng)全部死亡,游戲結(jié)束,開始結(jié)算,顯示獲勝方。顯示總的回合數(shù)。

可思考完善上述流程,比如添加加血buff,技能釋放,閃避等等功能,豐富戰(zhàn)斗內(nèi)容

PS:如有報(bào)錯(cuò),請(qǐng)根據(jù)本機(jī)音樂文件設(shè)置絕對(duì)路徑!!!

功能介紹

初始化界面:復(fù)制測(cè)試用例即可

開始界面

查看敵我方英雄信息界面

更改敵我方英雄狀況界面

強(qiáng)化敵我方英雄屬性界面

激活敵我方英雄大招界面

打斗界面

實(shí)現(xiàn)代碼

using System;
using System.Collections.Generic;
using System.Threading;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Media;//在命名空間中添加
 
namespace BigWork
{
 
    class Program
    {
        static void Main(string[] args)
        {
            System.Media.SoundPlayer sp = new SoundPlayer();
            sp.SoundLocation = @"E:\qianyan\大作業(yè)\Test\music\英雄聯(lián)盟 - Welcome to Planet Urf.wav";
            sp.PlayLooping();
 
            List<Hero> ours = new List<Hero>(); //存放我方英雄集合
            List<Hero> enemy = new List<Hero>();//存放敵方英雄集合
 
            input(ours, enemy);   //輸入我方、敵方英雄信息(引用傳遞)
 
            BattleControl.Instance.Ours = ours;
            BattleControl.Instance.Enemy = enemy;
 
            while (true)
            {
                function_print();
                string a = Console.ReadLine();
                if (string.IsNullOrEmpty(a))
                {
                    Console.WriteLine("輸出指令有誤,按任意鍵重新輸入");
                    Console.ReadKey();
                    Console.Clear();
                    continue;
                }
                int n = int.Parse(a);
                switch (n)
                {
                    case 1:
                        showAllInfo(ours);
                        Console.WriteLine("點(diǎn)擊任意按鍵繼續(xù)…………");
                        Console.ReadKey();
                        Console.Clear();
                        break;
                    case 2:
                        showAllInfo(enemy);
                        Console.WriteLine("點(diǎn)擊任意按鍵繼續(xù)…………");
                        Console.ReadKey();
                        Console.Clear();
                        break;
                    case 3:
                        if (ours[0].Modify == true)
                            modifyInfo(ours);
                        else
                            Console.WriteLine("戰(zhàn)斗已經(jīng)進(jìn)行,無(wú)法再進(jìn)行修改");
                        Console.ReadKey();
                        Console.Clear();
                        break;
                    case 4:
                        if (ours[0].Modify == true)
                            modifyInfo(enemy);
                        else
                            Console.WriteLine("戰(zhàn)斗已經(jīng)進(jìn)行,無(wú)法再進(jìn)行修改");
                        Console.ReadKey();
                        Console.Clear();
                        break;
                    case 5:
                        strengthenHero(ours);
                        break;
                    case 6:
                        strengthenHero(enemy);
                        break;
                    case 7:
                        activateHeroUltimateSkills(ours);
                        break;
                    case 8:
                        activateHeroUltimateSkills(enemy);
                        break;
                    case 9:
                        System.Media.SoundPlayer sp1 = new SoundPlayer();
                        sp1.SoundLocation = @"E:\qianyan\大作業(yè)\Test\music\網(wǎng)絡(luò)歌手 - 德瑪?shù)卢數(shù)卢斘鱽?00_00_00-00_00_04.wav";
                        sp1.Play();
                        Thread.Sleep(5000);
                        sp.SoundLocation = @"E:\qianyan\大作業(yè)\Test\music\英雄聯(lián)盟 - Welcome to Planet Urf.wav";
                        sp.PlayLooping();
                        BattleControl.Instance.fight(3);//3回合后激活一次
                        break;
 
                }
 
            }
 
            Console.ReadKey();
        }
 
        #region 輸入我方、敵方英雄信息功能
        public static void input(List<Hero> ours, List<Hero> enemy)
        {
            string a, d;
            int b, c;
            //輸入我方英雄基本信息
            for (int i = 1; i <= 5; i++)
            {
                Console.WriteLine("請(qǐng)輸入我方第{0}位英雄的名稱:", i);
                a = Console.ReadLine();
                Console.WriteLine("請(qǐng)輸入我方第{0}位英雄的物理攻擊力:", i);
                b = int.Parse(Console.ReadLine());
                Console.WriteLine("請(qǐng)輸入我方第{0}位英雄的魔法攻擊力:", i);
                c = int.Parse(Console.ReadLine());
                Console.WriteLine("請(qǐng)輸入我方第{0}位英雄的終極技能:", i);
                d = Console.ReadLine();
                Hero hero = new Hero(a, b, c, d);
 
                ours.Add(hero);
                Console.Clear();    //清屏函數(shù)
            }
 
            //輸入敵方英雄基本信息
            for (int i = 1; i <= 5; i++)
            {
 
                Console.WriteLine("請(qǐng)輸入敵方第{0}位英雄的名稱:", i);
                a = Console.ReadLine();
                Console.WriteLine("請(qǐng)輸入敵方第{0}位英雄的物理攻擊力:", i);
                b = int.Parse(Console.ReadLine());
                Console.WriteLine("請(qǐng)輸入敵方第{0}位英雄的魔法攻擊力:", i);
                c = int.Parse(Console.ReadLine());
                Console.WriteLine("請(qǐng)輸入敵方第{0}位英雄的終極技能:", i);
                d = Console.ReadLine();
                Hero hero = new Hero(a, b, c, d);
 
                enemy.Add(hero);
                Console.Clear();    //清屏函數(shù)
            }
            Console.WriteLine("正在為您初始化英雄角色,請(qǐng)稍等…………");
            Thread.Sleep(1000);
            Console.Clear();
        }
        #endregion
 
        #region 顯示功能選項(xiàng)函數(shù)
        //static:不用創(chuàng)建對(duì)象就可以調(diào)用
        public static void function_print()
        {
 
            Console.WriteLine("****************************");
            Console.WriteLine("*                          *");
            Console.WriteLine("*   英雄大亂斗回合制游戲   *");
            Console.WriteLine("*                          *");
            Console.WriteLine("*    1、查看我方英雄情況   *");
            Console.WriteLine("*    2、查看敵方英雄情況   *");
            Console.WriteLine("*    3、更改我方英雄情況   *");
            Console.WriteLine("*    4、更改敵方英雄情況   *");
            Console.WriteLine("*    5、強(qiáng)化我方英雄       *");
            Console.WriteLine("*    6、強(qiáng)化敵方英雄       *");
            Console.WriteLine("*    7、激活我方英雄大招   *");
            Console.WriteLine("*    8、激活敵方英雄大招   *");
            Console.WriteLine("*    9、開始回合制打斗     *");
            Console.WriteLine("*                          *");
            Console.WriteLine("****************************");
        }
        #endregion
 
        #region 查看英雄信息函數(shù)
        public static void showAllInfo(List<Hero> hero)
        {
            Console.WriteLine("5位英雄信息如下:");
            foreach (var i in hero)
            {
                i.showInfo();
            }
        }
        #endregion
 
        #region 修改信息
        public static void modifyInfo(List<Hero> heros)
        {
 
            string a;
            showAllInfo(heros);
            Console.Write("\n輸入修改的編號(hào)(從1開始):");
            a = Console.ReadLine();
            if (string.IsNullOrEmpty(a))
            {
                Console.WriteLine("輸入有誤,重新選擇");
                Console.ReadLine();
                Console.Clear();
                return;
            }
            int t = int.Parse(a);
 
            if (t > heros.Count)
            {
                Console.WriteLine("輸入數(shù)值超過英雄編號(hào)長(zhǎng)度,重新選擇需求");
            }
            else
            {
                Hero hero = heros[t - 1];
                Console.WriteLine("輸入修改的值(按:姓名、血量、藍(lán)量、物理攻擊、魔法攻擊寫,不修改填-1或直接回車,填寫好后按回車鍵修改各個(gè)值):");
                Hero.setColor(ConsoleColor.Red, ConsoleColor.Black);
                Console.WriteLine("注:英雄終極技能一旦創(chuàng)建無(wú)法更改");
                Hero.colorReset();
 
                a = Console.ReadLine();
                if (a != "-1" && !string.IsNullOrEmpty(a))
                    hero.Name = a;
                a = Console.ReadLine();
                if (a != "-1" && !string.IsNullOrEmpty(a))
                    hero.Hp = int.Parse(a);
                a = Console.ReadLine();
                if (a != "-1" && !string.IsNullOrEmpty(a))
                    hero.Mp = int.Parse(a);
                a = Console.ReadLine();
                if (a != "-1" && !string.IsNullOrEmpty(a))
                    hero.PhysicsAttack = int.Parse(a);
                a = Console.ReadLine();
                if (a != "-1" && !string.IsNullOrEmpty(a))
                    hero.MagicAttack = int.Parse(a);
 
                Console.WriteLine("修改后的數(shù)據(jù)");
                showAllInfo(heros);
            }
        }
        #endregion
 
        #region 強(qiáng)化英雄
        public static void strengthenHero(List<Hero> heros)
        {
            string a;
            showAllInfo(heros);
            Console.Write("\n輸入強(qiáng)化的編號(hào)(從1開始):");
            a = Console.ReadLine();
            if (string.IsNullOrEmpty(a))
            {
                Console.WriteLine("輸入有誤,重新選擇");
                Console.ReadLine();
                Console.Clear();
                return;
            }
            int t = int.Parse(a);
 
            if (t > heros.Count)
            {
                Console.WriteLine("輸入數(shù)值超過英雄編號(hào)長(zhǎng)度,重新選擇需求");
                Console.ReadLine();
                Console.Clear();
            }
            else
            {
                Hero hero = heros[t - 1];
                Console.Write("添加血量值:");
                a = Console.ReadLine();
                if (!string.IsNullOrEmpty(a) && int.Parse(a) >= 0)
                    hero.Hp += int.Parse(a);
 
                Console.Write("添加藍(lán)量值:");
                a = Console.ReadLine();
                if (!string.IsNullOrEmpty(a) && int.Parse(a) >= 0)
                    hero.Mp += int.Parse(a);
 
                Console.Write("設(shè)置紅BUFF(輸入1為設(shè)置):");
                a = Console.ReadLine();
                if (!string.IsNullOrEmpty(a) && int.Parse(a) == 1)
                    hero.RedBuff = true;
 
                Console.Write("設(shè)置藍(lán)BUFF(輸入1為設(shè)置):");
                a = Console.ReadLine();
                if (!string.IsNullOrEmpty(a) && int.Parse(a) == 1)
                    hero.BlueBuff = true;
 
                Console.Write("設(shè)置眩暈BUFF(輸入1為設(shè)置):");
                a = Console.ReadLine();
                if (!string.IsNullOrEmpty(a) && int.Parse(a) == 1)
                    hero.DizzyBuff = true;
            }
        }
        #endregion
 
        #region 激活終極技能
        public static void activateHeroUltimateSkills(List<Hero> heros)
        {
            Console.WriteLine("終極技能激活情況");
            foreach (var hero in heros)
            {
                Console.Write("{0}的終極技能:", hero.Name);
                if (hero.ActivateUltimateSkills == false)
                {
                    Hero.setColor(ConsoleColor.Red, ConsoleColor.Black);
                    Console.WriteLine("未激活");
                    Hero.colorReset();
                }
                else
                {
                    Hero.setColor(ConsoleColor.Green, ConsoleColor.Black);
                    Console.WriteLine("已激活");
                    Hero.colorReset();
                }
            }
            Console.Write("\n輸入激活大招的編號(hào)(從1開始):");
            string a = Console.ReadLine();
            if (string.IsNullOrEmpty(a))
            {
                Console.WriteLine("輸入有誤,重新選擇");
                Console.ReadLine();
                Console.Clear();
                return;
            }
            int t = int.Parse(a);
 
            if (t > heros.Count)
            {
                Console.WriteLine("輸入數(shù)值超過英雄編號(hào)長(zhǎng)度,重新選擇需求");
                Console.ReadKey();
            }
            else
                heros[t - 1].ActivateUltimateSkills = true;
 
            Console.Clear();
        }
        #endregion
    }
 
 
    class Hero
    {
        private string name;
        private int hp = 200;           // 血量 
        private int mp = 100;           // 魔法值
        private int physicsAttack;      // 物理攻擊力
        private int magicAttack;        // 魔法攻擊力
        private string ultimateSkills;  // 終極技能
        private bool sign = false;      //本回合攻擊過就標(biāo)記
 
 
        private bool modify = true;            // 設(shè)置是否能再次修改信息
        private bool activateUltimateSkills = false;    // 終極技能的激活情況
 
        private bool blueBuff = false;         // 設(shè)置藍(lán)Buff效果
        private bool redBuff = false;          // 設(shè)置紅BUFF效果 
        private bool dizzyBuff = false;            // 設(shè)置暈眩BUFF效果
        private bool dizzy = false;            // 設(shè)置暈眩效果
 
        public string Name { get => name; set => name = value; }
        public int Hp { get => hp; set => hp = value; }
        public int Mp { get => mp; set => mp = value; }
        public int PhysicsAttack { get => physicsAttack; set => physicsAttack = value; }
        public int MagicAttack { get => magicAttack; set => magicAttack = value; }
        public string UltimateSkills { get => ultimateSkills; set => ultimateSkills = value; }
        public bool Modify { get => modify; set => modify = value; }
        public bool ActivateUltimateSkills { get => activateUltimateSkills; set => activateUltimateSkills = value; }
        public bool BlueBuff { get => blueBuff; set => blueBuff = value; }
        public bool RedBuff { get => redBuff; set => redBuff = value; }
        public bool DizzyBuff { get => dizzyBuff; set => dizzyBuff = value; }
        public bool Dizzy { get => dizzy; set => dizzy = value; }
        public bool Sign { get => sign; set => sign = value; }
 
        public Hero() { }
        public Hero(string name, int physicsAttack, int magicAttack, string ultimateSkills)
        {
            this.Name = name;
            this.PhysicsAttack = physicsAttack;
            this.MagicAttack = magicAttack;
            this.ultimateSkills = ultimateSkills;
        }
 
        // 展示信息
        public void showInfo()
        {
            Console.Write("英雄名稱:");
            setColor(ConsoleColor.Green, ConsoleColor.Black);
            Console.Write(" " + Name + " ");
            colorReset();
 
            Console.Write("  血量:");
            setColor(ConsoleColor.Red, ConsoleColor.Black);
            Console.Write(" " + Hp + " ");
            colorReset();
 
            Console.Write("  魔法值:");
            setColor(ConsoleColor.Blue, ConsoleColor.Black);
            Console.Write(" " + Mp + " ");
            colorReset();
 
            Console.Write("  物理攻擊力:");
            setColor(ConsoleColor.Green, ConsoleColor.Black);
            Console.Write(" " + PhysicsAttack + " ");
            colorReset();
 
            Console.Write("  魔法攻擊力:");
            setColor(ConsoleColor.Green, ConsoleColor.Black);
            Console.Write(" " + MagicAttack + " ");
            colorReset();
 
            Console.Write("  終極技能:");
            setColor(ConsoleColor.Cyan, ConsoleColor.Black);
            Console.Write(" " + UltimateSkills + " ");
            colorReset();
 
            Console.WriteLine();
        }
 
        public static void setColor(ConsoleColor a, ConsoleColor b)
        {
            Console.BackgroundColor = a;
            Console.ForegroundColor = b;
        }
 
        public static void colorReset()
        {
            Console.BackgroundColor = ConsoleColor.Black;
            Console.ForegroundColor = ConsoleColor.White;
        }
 
 
    }
 
    class BattleControl
    {
        //回合
        private int round = 1;
 
        //己方人物
        private List<Hero> ours;
        //敵方人物
        private List<Hero> enemy;
 
 
        private static BattleControl instance = null;
 
        private BattleControl() { }
 
        public static BattleControl Instance
        {
            get
            {
                if (instance == null)
                {
                    instance = new BattleControl();
                }
                return instance;
            }
        }
 
        public int Round { get => round; set => round = value; }
 
        internal List<Hero> Ours { get => ours; set => ours = value; }
        internal List<Hero> Enemy { get => enemy; set => enemy = value; }
 
 
 
        //實(shí)現(xiàn)回合制打斗方法
        public void fight(int activation)
        {
            int i, j;
 
            Random random = new Random();
            int sum = 0;
 
            while (true)
            {
 
                Console.WriteLine("第{0}回合開始?。。。。。。?!", round);
 
                sum = 0;
                while (sum != (ours.Count + enemy.Count))
                {
                    sum = 0;
 
                    #region 選出所要戰(zhàn)斗的英雄
                    i = (int)random.Next(0, ours.Count);//我方英雄
                    Thread.Sleep(1000);
                    j = (int)random.Next(0, enemy.Count);//敵方英雄
                    #endregion
 
                    #region 大招
                    //回合數(shù)達(dá)到三 就可以釋放或者不釋放
                    if (round == activation)
                    {
                        Console.WriteLine("是否放大招1是放 2不放:");
                        string a = Console.ReadLine();
                        int n = int.Parse(a);
 
                        for (int t = 0; t < ours.Count; t++)
                        {
                            if (ours[t].Hp != 0)
                            {
                                ours[t].ActivateUltimateSkills = true;
                            }
                            switch (n)
                            {
                                case 1:
                                    for (int k = 0; k < ours.Count; k++)
                                    {
                                        if (enemy[j].Hp > 0)
                                        {
                                            enemy[j].Hp = enemy[j].Hp > 10 ? enemy[j].Hp - 10 : 0;
                                        }
                                    }
                                    break;
                                case 2:
                                    break;
                            }
                        }
 
                        n = int.Parse(a);
                        for (int t = 0; t < enemy.Count; t++)
                        {
                            if (enemy[t].Hp != 0)
                            {
                                ours[t].ActivateUltimateSkills = true;
                            }
                            switch (n)
                            {
                                case 1:
                                    for (int k = 0; k < ours.Count; k++)
                                    {
                                        if (ours[i].Hp > 0)
                                        {
                                            ours[i].Hp = ours[i].Hp > 10 ? ours[i].Hp - 10 : 0;
                                        }
                                    }
                                    break;
                                case 2:
                                    break;
                            }
                        }
 
                    }
                    #endregion
 
                    if (ours.Count == 0)
                    {
                        break;
                    }
                    if (enemy.Count == 0)
                    {
                        break;
                    }
 
                    if (!ours[i].Sign && !enemy[j].Sign)//本回合都未進(jìn)攻過
                    {
 
                        //進(jìn)攻操作 
                        //首先把選出的英雄進(jìn)行標(biāo)記
                        ours[i].Sign = true;
                        enemy[j].Sign = true;
 
                        //去判斷雙方所帶的增益有哪些
                        //如果進(jìn)攻方有一方有眩暈buff就讓對(duì)方眩暈
                        if (ours[i].DizzyBuff)
                        {
                            enemy[j].Dizzy = true;
                        }
                        if (enemy[j].DizzyBuff)
                        {
                            ours[i].Dizzy = true;
                        }
 
                        //進(jìn)攻的時(shí)候判斷 如果已經(jīng)被眩暈就不進(jìn)攻
                        if (ours[i].Dizzy && !enemy[j].Dizzy)
                        {
                            enemy_attack(i, j);
                        }
 
                        else if (!ours[i].Dizzy && enemy[j].Dizzy)
                        {
                            ours_attack(i, j);
                        }
 
                        else if (!ours[i].Dizzy && !enemy[j].Dizzy)
                        {
                            ours_attack(i, j);
                            enemy_attack(i, j);
                        }
                        else if (ours[i].Dizzy && enemy[j].Dizzy)
                        {
                            Console.WriteLine("雙方都被眩暈所以這回合兩個(gè)英雄都未掉血!?。?);
                        }
 
                    }
                    else if (ours[i].Sign && !enemy[j].Sign)
                    {
                        enemy[j].Sign = true;//把沒有進(jìn)行進(jìn)攻的標(biāo)記
 
                        enemy_attack(i, j);
 
                    }
                    else if (!ours[i].Sign && enemy[j].Sign)
                    {
 
                        ours[i].Sign = true;//把沒有進(jìn)行進(jìn)攻的標(biāo)記
                        ours_attack(i, j);
 
                    }
 
                    else if (ours[i].Sign && enemy[j].Sign)
                    {
                        Console.WriteLine("選出的兩個(gè)英雄本回合都出戰(zhàn)過~~~系統(tǒng)從新選擇");
                    }
 
 
                    for (int k = 0; k < ours.Count; k++)
                    {
                        if (ours[k].Sign == true)
                        {
                            sum++;
                        }
                    }
 
                    for (int k = 0; k < enemy.Count; k++)
                    {
                        if (enemy[k].Sign == true)
                        {
                            sum++;
                        }
                    }
 
                    Console.WriteLine("{0}與{1}對(duì)戰(zhàn),{2}剩余血量{3},{4}剩余血量{5}", ours[i].Name, enemy[j].Name, ours[i].Name, ours[i].Hp, enemy[j].Name, enemy[j].Hp);
 
                    #region 如果已經(jīng)戰(zhàn)死就移除
                    if (ours[i].Hp == 0)
                    {
                        Console.WriteLine("{0}死亡將會(huì)從新選擇英雄", ours[i].Name);
                        ours.Remove(ours[i]);
 
 
                    }
 
                    if (enemy[j].Hp == 0)
                    {
                        Console.WriteLine("{0}死亡將會(huì)從新選擇英雄", enemy[j].Name);
 
                        enemy.Remove(enemy[j]);
 
 
                    }
                    #endregion
 
                }
 
                Console.WriteLine("第{0}回合結(jié)束?。。。。。。?!", round);
 
 
                //一回合結(jié)束后更新所有英雄的狀態(tài)
                update_status();
 
                if (ours.Count == 0)
                {
                    break;
                }
                if (enemy.Count == 0)
                {
                    break;
                }
 
                //更新回合數(shù)
                round++;
 
            }
 
 
 
            if (ours.Count == 0)
            {
                Console.WriteLine("我方輸");
            }
            else if (enemy.Count == 0)
            {
                Console.WriteLine("敵方輸");
 
            }
            else if (enemy.Count == 0 && ours.Count == 0)
            {
                Console.WriteLine("平局");
 
            }
 
 
 
        }
 
        //更新狀態(tài)
        public void update_status()
        {
            int i;
 
            for (i = 0; i < ours.Count; i++)
            {
                ours[i].Dizzy = false;
                ours[i].Sign = false;
 
                //開局給的buff最多支撐三回合
                if (round == 3)
                {
                    ours[i].BlueBuff = false;
                    ours[i].RedBuff = false;
                }
            }
 
            for (i = 0; i < enemy.Count; i++)
            {
                enemy[i].Dizzy = false;
                enemy[i].Sign = false;
 
                //開局給的buff最多支撐三回合
                if (round == 3)
                {
                    enemy[i].BlueBuff = false;
                    enemy[i].RedBuff = false;
                }
            }
        }
 
        //ours進(jìn)攻
        public void ours_attack(int i, int j)
        {
            //紅buff
            if (ours[i].RedBuff)
            {
                Console.WriteLine("紅buff對(duì){0}造成10點(diǎn)傷害", enemy[j].Name);
 
                //紅buff造成的傷害,和回血
                //防止血量出現(xiàn)負(fù)數(shù)
                enemy[j].Hp = enemy[j].Hp > 10 ? enemy[j].Hp - 10 : 0;
                if (ours[i].Hp == 200)
                {
                    Console.WriteLine("{0}血量已滿無(wú)法回血", ours[i].Name);
                }
                else
                {
                    //防止血量超過200
                    ours[i].Hp = 200 > (ours[i].Hp + 4) ? ours[i].Hp + 4 : 200;
                    Console.WriteLine("{0}回了4點(diǎn)血", ours[i].Name);
                }
            }
 
            //藍(lán)buff
            if (ours[i].BlueBuff)
            {
                Console.WriteLine("{0}回復(fù)了10點(diǎn)魔法值", ours[i].Name);
 
                //最高值限定
                ours[i].Mp = ours[i].Mp + 10 > 100 ? 100 : ours[i].Mp + 10;
            }
 
            //魔法攻擊力加物理攻擊力造成傷害-最高值限定
            if (ours[i].Mp >= ours[i].MagicAttack)
            {
                enemy[j].Hp = (ours[i].PhysicsAttack + ours[i].MagicAttack) > enemy[j].Hp ? 0 : enemy[j].Hp - (ours[i].PhysicsAttack + ours[i].MagicAttack);
                ours[i].Mp -= ours[i].MagicAttack; //更新魔法值
            }
            else//魔法值不足以發(fā)動(dòng)魔法攻擊
            {
                enemy[j].Hp = ours[i].PhysicsAttack > enemy[j].Hp ? 0 : enemy[j].Hp - ours[i].PhysicsAttack;
            }
        }
 
        //enemy進(jìn)攻
        public void enemy_attack(int i, int j)
        {
            //紅buff
            if (enemy[j].RedBuff)
            {
                Console.WriteLine("紅buff對(duì){0}造成10點(diǎn)傷害", ours[i].Name);
 
                //紅buff造成的傷害
                //防止血量出現(xiàn)負(fù)數(shù)
                ours[i].Hp = ours[i].Hp > 10 ? ours[i].Hp - 10 : 0;
                if (enemy[j].Hp == 200)
                {
                    Console.WriteLine("{0}血量已滿無(wú)法回血", enemy[j].Name);
                }
                else
                {
                    //防止血量超過200
                    enemy[j].Hp = 200 < (enemy[j].Hp + 4) ? enemy[j].Hp + 4 : 200;
                    Console.WriteLine("{0}回了4點(diǎn)血", enemy[j].Name);
                }
            }
 
            //藍(lán)buff
            if (enemy[j].BlueBuff)
            {
                Console.WriteLine("{0}回復(fù)了10點(diǎn)魔法值", enemy[j].Name);
 
                //最高值限定
                enemy[j].Mp = enemy[j].Mp + 10 > 100 ? 100 : enemy[j].Mp + 10;
            }
 
            //魔法攻擊力加物理攻擊力造成傷害-最高值限定
            if (enemy[j].Mp >= enemy[j].MagicAttack)
            {
                ours[i].Hp = (enemy[j].PhysicsAttack + enemy[j].MagicAttack) > ours[i].Hp ? 0 : ours[i].Hp - (enemy[j].PhysicsAttack + enemy[j].MagicAttack);
                enemy[j].Mp -= enemy[j].MagicAttack; //更新魔法值
            }
            else//魔法值不足以發(fā)動(dòng)魔法攻擊
            {
                ours[i].Hp = enemy[j].PhysicsAttack > ours[i].Hp ? 0 : ours[i].Hp - enemy[j].PhysicsAttack;
            }
        }
 
    }
}

百度網(wǎng)盤鏈接

下載地址?提取碼:ycq9?

以上就是基于C#模擬實(shí)現(xiàn)回合制游戲的詳細(xì)內(nèi)容,更多關(guān)于C#模擬回合制游戲的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論