C#MUD英雄大作战二、乔峰篇(副源码文件连接)
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                C#MUD英雄大作战二、乔峰篇(副源码文件连接)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                目錄
開發環境:
編碼
源碼地址:
開發環境:
系統環境:Win10
開發工具:VS2019
語言:C#
項目:控制臺應用(.NET Framework)
編碼
英雄類:(更換namespace即可)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace Hero_demo {public class Hero{/// <summary>/// 編號/// </summary>private string id;/// <summary>/// 英雄姓名/// </summary>private string name;/// <summary>/// 英雄血量/// </summary>private int hp;/// <summary>/// 英雄攻擊/// </summary>private int ac;/// <summary>/// <hr/><i><b>四個參數的構造方法,用于賦值</b></i><hr/>/// </summary>/// <param name="id"></param>/// <param name="name"></param>/// <param name="hp"></param>/// <param name="ac"></param>public Hero(string id, string name, int hp, int ac){this.id = id;this.name = name;this.hp = hp;this.ac = ac;}/// <summary>/// 給一個空的構造方法·不讓外界使用/// </summary>public Hero() { }/*選中需要生成的變量->鼠標右鍵->封裝字段->選擇字段->確定*//// <summary>/// 以下為自動生成的內容·對外提供了可訪問私有對象的接口/// </summary>public string Id { get => id; set => id = value; }public string Name { get => name; set => name = value; }public int Hp { get => hp; set => hp = value; }public int Ac { get => ac; set => ac = value; }} }?執行類:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace Hero_demo {class Program{/// <summary>/// 全局英雄數據/// </summary>public static List<Hero> lists = new List<Hero>();//對戰英雄A_oneHerostatic Hero A_oneHero = null;//對戰英雄B_twoHerostatic Hero B_oneHero = null;static void Main(string[] args){/*** 移動2010勇士大亂斗*/Console.WriteLine("********************************");Console.WriteLine("*******歡迎來到移動2010*********");Console.WriteLine("***********勇士大亂斗***********");Console.WriteLine("*****可選英雄四人·人機戰斗*****");Console.WriteLine("********************************");//數據初始化lists = GetDefaultList();//在類中有一個全局的lists變量while (true){//菜單Console.WriteLine("********************************");Console.WriteLine("******1、遍歷當前英雄列表*******");Console.WriteLine("******2、選擇人物英雄對戰*******");Console.WriteLine("******3、人機移動2010勇士對戰***");Console.WriteLine("******4、退出2010勇士亂斗***");Console.WriteLine("********************************");string chooes = Console.ReadLine();switch (chooes){case "1":findAllHero(); break;case "2":choose(); break;case "3": PeoVSCom(); break;case "4":Console.WriteLine("歡迎再次光臨:【移動2010·勇者大亂斗】");return;default: Console.WriteLine("請輸入正確的選項"); break;}}//初始化中A英雄拿到了lists集合的第N個值的HashCode()并且針對于這個//HashCode()進行了戰斗過程,所以,lists集合中的數據有了變化//重新創建了一個hashCode就解決了這個問題。}/// <summary>/// 人機對戰/// </summary>private static void PeoVSCom(){if (A_oneHero==null) {Console.WriteLine("請選擇英雄");return;}if (A_oneHero.Hp<=0||B_oneHero.Hp<=0) {Console.WriteLine("請重新選擇英雄,英雄太累了。");return;}Random ra = new Random();//兩個英雄Console.WriteLine("*************************");Console.WriteLine("人類英雄:" + A_oneHero.Name);Console.WriteLine("電腦英雄:" + B_oneHero.Name);Console.WriteLine("****按回車鍵開始戰斗****");Console.WriteLine("*************************");Console.ReadKey();//回車繼續//判斷血量是否可以繼續比賽A先攻擊Bwhile (true){int A_cut = A_oneHero.Ac / 2 + ra.Next(A_oneHero.Ac / 2);B_oneHero.Hp -= A_cut;string A = string.Format("{0}\t對\t {1}發起攻擊,造成{2}點傷害,{3}血量剩余:\t{4}。", A_oneHero.Name, B_oneHero.Name, A_cut, B_oneHero.Name, B_oneHero.Hp);Console.WriteLine(A);if (B_oneHero.Hp <= 0){Console.WriteLine("恭喜,您成勝利了。");return;//死亡直接return即可}Console.WriteLine("*********************************************");//判斷B_電腦是否陣亡int B_cut = B_oneHero.Ac / 2 + ra.Next(B_oneHero.Ac / 2);A_oneHero.Hp -= B_cut;string B = string.Format("{0}\t對\t {1}發起攻擊,造成{2}點傷害,{3}血量剩余:\t{4}。", B_oneHero.Name, A_oneHero.Name, B_cut, A_oneHero.Name, A_oneHero.Hp);Console.WriteLine(B);//判斷A_人腦是否陣亡if (A_oneHero.Hp <= 0){Console.WriteLine("抱歉,電腦勝利了。");return;}Console.WriteLine("*********************************************");}}/// <summary>/// 選擇英雄/// </summary>private static void choose(){Random ra = new Random();//人可以通過輸入英雄ID進行選擇英雄Console.WriteLine("請輸入你需要選擇的英雄編號:");string id = Console.ReadLine();//遍歷集合匹配idforeach (var item in lists){if (item.Id.Equals(id)){Hero A1=new Hero();A1.Id = item.Id;A1.Name = item.Name;A1.Hp = item.Hp;A1.Ac = item.Ac;A_oneHero = A1;Console.WriteLine("您選擇了:\t" + item.Name);break;}}//電腦就只能通過隨機的方式進行賦值。Hero hero = lists[ra.Next(4)];Hero A = new Hero();A.Id = hero.Id;A.Name = hero.Name;A.Hp = hero.Hp;A.Ac = hero.Ac;B_oneHero = A;Console.WriteLine("電腦隨機到了:\t" + B_oneHero.Name);}/// <summary>/// 遍歷英雄/// </summary>private static void findAllHero(){foreach (var hero in lists){Console.WriteLine("*******************************");Console.WriteLine("英雄編號:" + hero.Id);Console.WriteLine("英雄名稱:" + hero.Name);Console.WriteLine("英雄血量:" + hero.Hp);Console.WriteLine("英雄攻擊:" + hero.Ac);Console.WriteLine("*******************************");}}/// <summary>/// 自定義函數用于英雄賦值/// </summary>/// <returns></returns>public static List<Hero> GetDefaultList(){List<Hero> hs = new List<Hero>();hs.Add(new Hero(Guid.NewGuid().ToString("N"), "精武英雄·陳真", 760, 110));hs.Add(new Hero(Guid.NewGuid().ToString("N"), "天龍八部·喬峰", 900, 150));hs.Add(new Hero(Guid.NewGuid().ToString("N"), "德瑪西亞·蓋倫", 860, 80));hs.Add(new Hero(Guid.NewGuid().ToString("N"), "日出東方·東方教主", 500, 210));return hs;}} }過程:
?
?
演示完畢。?
源碼地址:
【https://download.csdn.net/download/feng8403000/52727647】
?
總結
以上是生活随笔為你收集整理的C#MUD英雄大作战二、乔峰篇(副源码文件连接)的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 我的Go+语言初体验——【一、go+环境
- 下一篇: 专接本汇编开发工具【Masm for W
