基于C#模擬實(shí)現(xiàn)回合制游戲
前言
文章開始把我喜歡的這句話送個(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)文章
c# SQLHelper(for winForm)實(shí)現(xiàn)代碼
數(shù)據(jù)連接池c# SQLHelper 實(shí)現(xiàn)代碼2009-02-02利用thrift實(shí)現(xiàn)js與C#通訊的實(shí)例代碼
利用thrift實(shí)現(xiàn)js與C#通訊的實(shí)例代碼,需要的朋友可以參考一下2013-04-04基于動(dòng)態(tài)修改App.Config與web.Config的使用詳解
本篇文章是對(duì)動(dòng)態(tài)修改App.Config與web.Config的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05C#面向?qū)ο筇卣鞯木唧w實(shí)現(xiàn)及作用詳解
所有的面相對(duì)象思想,歸根結(jié)底是為了簡(jiǎn)化代碼,減少代碼量,構(gòu)建更符合現(xiàn)實(shí)生活邏輯的程序代碼,從而減輕程序員的負(fù)擔(dān)。不能一味地或者說(shuō)刻意地去使用面相對(duì)象的思想而忽略了程序所實(shí)現(xiàn)的功能或者框架,要根據(jù)實(shí)際情況2013-10-10c# Process.Start()找不到系統(tǒng)文件的解決方法
vs1027在X64應(yīng)用程序下執(zhí)行process.start()時(shí),OK;但是在X86應(yīng)用程序下執(zhí)行process.start(),報(bào)錯(cuò):找不到系統(tǒng)文件,本文就詳細(xì)的介紹一下解決方法,感興趣的可以了解一下2023-09-09C#程序連接數(shù)據(jù)庫(kù)及讀取數(shù)據(jù)庫(kù)中字段的簡(jiǎn)單方法總結(jié)
包括C#連接Access、Oracle或者SQL Server,這里整理了一些C#連接數(shù)據(jù)庫(kù)及從讀取數(shù)據(jù)庫(kù)中字段的簡(jiǎn)單方法總結(jié),需要的朋友可以參考下2016-05-05C#實(shí)現(xiàn)將32位MD5摘要串轉(zhuǎn)換為128位二進(jìn)制字符串的方法
這篇文章主要介紹了C#實(shí)現(xiàn)將32位MD5摘要串轉(zhuǎn)換為128位二進(jìn)制字符串的方法,涉及C#字符串遍歷、加密與轉(zhuǎn)換相關(guān)操作技巧,需要的朋友可以參考下2017-04-04C#向PPT文檔插入圖片以及導(dǎo)出圖片的實(shí)例
PowerPoint演示文稿是我們?nèi)粘9ぷ髦谐S玫霓k公軟件之一,本篇文章介紹了C#向PPT文檔插入圖片以及導(dǎo)出圖片的實(shí)例,非常具有實(shí)用價(jià)值,需要的朋友可以參考下。2016-12-12