控制台文字对战游戏 初始版
namespace 對戰游戲
{
??? class Program
??? {
??????? #region
??????? public struct JueSe?? //創建一個角色對象
??????? {
??????????? public string XingMing;//這個對象中有這些屬性
??????????? public int GongJi;
??????????? public int ShengMing;
??????????? public int HuJiaZhi;
??????? }
??????? public struct JiNeng? //創建技能對象
??????? {
??????????? public string JiNengMingCheng;
??????????? public int JiNengShangHai;
??????? }
??????? public struct WuQi? //創建武器對象
??????? {
??????????? public string MingCheng;
??????????? public int GongJiLi;
??????? }
??????? public struct HuJia?? //創建護甲對象
??????? {
??????????? public string MingZi;
??????????? public int HuJiaZhi;
??????? }
?????? ?
?????????? #endregion
????????? static void Main(string[] args)
??????????? {
??????????? #region 生成武器庫
??????????? WuQi wq1 = new WuQi();???? //新建武器1
??????????? wq1.MingCheng = "大劍";
??????????? wq1.GongJiLi = 100;
??????????? WuQi wq2 = new WuQi();
??????????? wq2.MingCheng = "小刀";
??????????? wq2.GongJiLi = 50;
??????????? WuQi wq3 = new WuQi();
??????????? wq3.MingCheng = "火槍";
??????????? wq3.GongJiLi = 200;
??????????? WuQi wq4 = new WuQi();
??????????? wq4.MingCheng = "火柴";
??????????? wq4.GongJiLi = -10;
??????????? #endregion
??????????? #region 生成護甲
??????????? HuJia FY1 = new HuJia();???? //新建護甲1
??????????? FY1.MingZi = "草甲";
??????????? FY1.HuJiaZhi = 20;
??????????? HuJia FY2 = new HuJia();??? ?
??????????? FY2.MingZi = "木甲";
??????????? FY2.HuJiaZhi = 40;
??????????? HuJia FY3 = new HuJia();
??????????? FY3.MingZi = "鐵甲";
??????????? FY3.HuJiaZhi = 60;
??????????? #endregion
??????????? #region 創建角色
??????????? Random SuiJi = new Random();? // 創建隨機數
??????????? JueSe JS1 = new JueSe();? //創建一個角色1.
??????????? Console.Write("請輸入第一個角色的姓名:");//在前端讓用戶輸入字符.
??????????? JS1.XingMing = Console.ReadLine();//輸入的內容賦值給角色1的姓名.
??????????? JS1.GongJi = SuiJi.Next(80, 120);//設定角色1攻擊
??????????? JS1.HuJiaZhi = 0;????????????????? //設定角色護甲
??????????? JS1.ShengMing = SuiJi.Next(8000, 12000);//設定色1生命時1000
??????????? Random HQSuiJi = new Random();? // 創建隨機數
??????????? int HuoDewuqi = HQSuiJi.Next(0, 101); //創建獲取武器的幾率
??????????? if (HuoDewuqi <= 30)
??????????? {
??????????????? Console.WriteLine("獲得武器" + wq1.MingCheng);
??????????????? JS1.GongJi += wq1.GongJiLi;
??????????? }
??????????? else if (HuoDewuqi <= 70)
??????????? {
??????????????? Console.WriteLine("獲得武器" + wq2.MingCheng);
??????????????? JS1.GongJi += wq2.GongJiLi;
??????????? }
??????????? else if (HuoDewuqi <= 80)
??????????? {
??????????????? Console.WriteLine("獲得武器" + wq1.MingCheng);
??????????????? JS1.GongJi += wq3.GongJiLi;
??????????? }
??????????? else
??????????? {
??????????????? Console.WriteLine("獲得武器" + wq1.MingCheng);
??????????????? JS1.GongJi += wq4.GongJiLi;
??????????? }
??????????? Random FangYu = new Random();? // 創建護甲隨機數
??????????? int HQFangYu = HQSuiJi.Next(0, 101); //創建獲取護甲的幾率
??????????? if (HQFangYu <= 50)
??????????? {
??????????????? Console.WriteLine("獲得護甲" + FY1.MingZi);
??????????????? JS1.HuJiaZhi += FY1.HuJiaZhi;
??????????? }
??????????? else if (HQFangYu <= 80)
??????????? {
??????????????? Console.WriteLine("獲得護甲" + FY2.MingZi);
??????????????? JS1.HuJiaZhi += FY2.HuJiaZhi;
??????????? }
??????????? else
??????????? {
??????????????? Console.WriteLine("獲得護甲" + FY3.MingZi);
??????????????? JS1.HuJiaZhi += FY3.HuJiaZhi;
??????????? }
??????????? Console.WriteLine("第一個角色,攻擊力" + JS1.GongJi + ",生命值" + JS1.ShengMing +"護甲"+JS1.HuJiaZhi); //輸出角色的基本屬性 新建角色完成
??????????? JueSe JS2 = new JueSe();//同上
??????????? Console.Write("請輸入第二個角色的姓名:");
??????????? JS2.XingMing = Console.ReadLine();
??????????? JS2.GongJi = SuiJi.Next(80, 120); ;
??????????? JS2.ShengMing = SuiJi.Next(8000, 12000);
??????????? JS2.HuJiaZhi = 0;
??????????? Random HQSuiJi1 = new Random();? // 創建隨機數
??????????? int HuoDewuqi1 = HQSuiJi.Next(0, 101);
??????????? if (HuoDewuqi1 <= 30)
??????????? {
??????????????? Console.WriteLine("獲得武器" + wq1.MingCheng);
??????????????? JS2.GongJi += wq1.GongJiLi;
??????????? }
??????????? else if (HuoDewuqi1 <= 70)
??????????? {
??????????????? Console.WriteLine("獲得武器" + wq2.MingCheng);
??????????????? JS2.GongJi += wq2.GongJiLi;
??????????? }
??????????? else if (HuoDewuqi1 <= 80)
??????????? {
??????????????? Console.WriteLine("獲得武器" + wq1.MingCheng);
??????????????? JS2.GongJi += wq3.GongJiLi;
??????????? }
??????????? else
??????????? {
??????????????? Console.WriteLine("獲得武器" + wq1.MingCheng);
??????????????? JS2.GongJi += wq4.GongJiLi;
??????????? }
??????????? Random FangYu1 = new Random();? // 創建護甲隨機數
??????????? int HQFangYu1 = HQSuiJi.Next(0, 101); //創建獲取護甲的幾率
??????????? if (HQFangYu1 <= 50)
??????????? {
??????????????? Console.WriteLine("獲得護甲" + FY1.MingZi);
??????????????? JS2.HuJiaZhi += FY1.HuJiaZhi;
??????????? }
??????????? else if (HQFangYu1 <= 80)
??????????? {
??????????????? Console.WriteLine("獲得護甲" + FY2.MingZi);
??????????????? JS2.HuJiaZhi += FY2.HuJiaZhi;
??????????? }
??????????? else
??????????? {
??????????????? Console.WriteLine("獲得護甲" + FY3.MingZi);
??????????????? JS2.HuJiaZhi += FY3.HuJiaZhi;
??????????? }
??????????? Console.WriteLine("第一個角色,攻擊力" + JS2.GongJi + ",生命值" + JS2.ShengMing+"護甲" + JS2.HuJiaZhi);
??????????? Console.ForegroundColor = ConsoleColor.Red;
??????????? Console.WriteLine("點擊任意鍵開始");
??????????? Console.ReadKey();
??????????? #endregion
??????????? #region 技能生成???????????????????????????????????????? ?
??????????? ArrayList JiNengMen = new ArrayList();???? //新建放技能的集合 只能放一個
??????????? JiNeng jn1 = new JiNeng();????????????????? //新建技能1
??????????? jn1.JiNengMingCheng = "大招";
??????????? jn1.JiNengShangHai = 4;
??????????? JiNeng jn2 = new JiNeng();
??????????? jn2.JiNengMingCheng = "中招";
??????????? jn2.JiNengShangHai = 3;
??????????? JiNeng jn3 = new JiNeng();
??????????? jn3.JiNengMingCheng = "小招";
??????????? jn3.JiNengShangHai = 2;
??????????? JiNengMen.Add(jn1);??????????????????????? //集合????????????? ?
??????????? JiNengMen.Add(jn2);
??????????? JiNengMen.Add(jn3);
??????????? #endregion
??????????? #region 對戰部分
??????????? Console.ForegroundColor = ConsoleColor.White;????????? //改變前景顏色
??????????? while (true)
??????????? {
??????????????? Random fudong = new Random();? // 創建浮動攻擊隨機數
??????????????? int fudonggongji = fudong.Next(0,30);
??????????????? Random JNjilv = new Random();?? //創建角色1使用技能幾率
??????????????? int JNfadongjilv = fudong.Next(1, 11);
??????????????? Random JNjilv2 = new Random();????????? //創建角色2使用技能幾率
??????????????? int JNfadongjilv2 = fudong.Next(1, 11);
??????????????? #region 角色1攻擊
??????????????? if (JNfadongjilv <= 3)???? //<=3時使用技能
??????????????? {
??????????????????? Console.ForegroundColor = ConsoleColor.Yellow;?? //設置下一條內容的顏色
??????????????????? JiNeng jn = (JiNeng)JiNengMen[fudong.Next(0, 3)]; //設置使用哪一個技能
??????????????????? int shanghai11 = Convert.ToInt32(JS1.GongJi - fudonggongji) * jn.JiNengShangHai; //設置傷害 = 角色攻擊加浮動值成技能傷害
??????????????????? JS2.ShengMing = JS2.ShengMing - (shanghai11-JS2.HuJiaZhi); //設置剩余生命值=初始生命-(傷害-護甲)
??????????????????? Console.WriteLine(JS1.XingMing+"發動技能"+jn.JiNengMingCheng + "對" + JS2.XingMing + "造成了" + shanghai11 + "點傷害-"+ JS2.HuJiaZhi+"護甲值"+ JS2.XingMing + "剩余" + JS2.ShengMing + "血量");
??????????????? }
??????????????? else
??????????????? {
??????????????????? Console.ForegroundColor = ConsoleColor.White;?? //顏色
??????????????????? int shanghai1 = JS1.GongJi - fudonggongji;????????? //傷害
??????????????????? JS2.ShengMing = JS2.ShengMing - shanghai1;???????? //生命
??????????????????? Console.WriteLine(JS1.XingMing + "對" + JS2.XingMing + "造成了" + shanghai1 + "點傷害-" + JS2.HuJiaZhi + "護甲值" + JS2.XingMing + "剩余" + JS2.ShengMing + "血量");
??????????????????? System.Threading.Thread.Sleep(500);??????????? //延遲500毫秒進行下一步
??????????????? }
??????????????? #endregion
??????????????? #region 角色2攻擊
??????????????? if (JNfadongjilv2 <= 3)
??????????????? {
??????????????????? Console.ForegroundColor = ConsoleColor.Yellow;
??????????????????? JiNeng jn = (JiNeng)JiNengMen[fudong.Next(0, 3)];
??????????????????? int shanghai11 = Convert.ToInt32(JS2.GongJi - fudonggongji) * jn.JiNengShangHai;
??????????????????? JS1.ShengMing = JS1.ShengMing - shanghai11;
??????????????????? Console.WriteLine(JS2.XingMing + "發動技能" + jn.JiNengMingCheng + "對" + JS1.XingMing + "造成了" + shanghai11 + "點傷害-" + JS1.HuJiaZhi + "護甲值" + JS1.XingMing + "剩余" + JS1.ShengMing + "血量");
??????????????? }
??????????????? else
??????????????? {
??????????????????? Console.ForegroundColor = ConsoleColor.White;
??????????????????? int shanghai1 = JS2.GongJi - fudonggongji;
??????????????????? JS1.ShengMing = JS1.ShengMing - shanghai1;
??????????????????? Console.WriteLine(JS2.XingMing + "對" + JS1.XingMing + "造成了" + shanghai1 + "點傷害-" + JS1.HuJiaZhi + "護甲值" + JS1.XingMing + "剩余" + JS1.ShengMing + "血量");
??????????????????? System.Threading.Thread.Sleep(500);
??????????????? }
??????????????? #endregion
??????????????? #region 判斷勝負
??????????????? if (JS1.ShengMing <= 0 || JS2.ShengMing <= 0)?? // 判斷生命為0時
??????????????? {
??????????????????? if (JS1.ShengMing <= 0 && JS2.ShengMing <= 0)? //判斷角色幾生命為0
??????????????????? {
??????????????????????? Console.WriteLine("二位同歸于盡了!!!");
??????????????????? }
??????????????????? else
??????????????????? {
??????????????????????? if (JS1.ShengMing <= 1)
??????????????????????? {
??????????????????????????? Console.WriteLine(JS2.XingMing + "獲得了最終勝利!!!");
??????????????????????? }
??????????????????????? else
??????????????????????? {
??????????????????????????? Console.WriteLine(JS1.XingMing + "獲得了最終勝利!!!");
??????????????????????? }
??????????????????? }
??????????????????? break;
??????????????? }
??????????????? #endregion
??????????? }
??????????? #endregion
??????? }
??? }
}
轉載于:https://www.cnblogs.com/buzhiheyan/p/7808110.html
總結
以上是生活随笔為你收集整理的控制台文字对战游戏 初始版的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [BZOJ1834][ZJOI2010]
- 下一篇: Git 下载、安装与SSH配置