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

控制台文字对战游戏 初始版相关推荐

  1. Unity编写冰球对战游戏 2D版

    Unity编写冰球对战游戏 2D版 Unity是一款非常方便.简洁.低成本的一款游戏引擎.在这里,向大家介绍这样用Unity这个引擎编写冰球对战游戏 因为Unity这个引擎可以编写3D游戏 ,同样的也 ...

  2. C#小游戏(文字对战游戏)

    第一代,不是很完善,会在后续增加更多的功能 主: using System; using System.Collections.Generic; using System.Linq; using Sy ...

  3. Python基础阶段练习必备项目——文字对战游戏

    项目介绍: [主菜单]- 选择玩家 - 进入商店 - 进入充值 - 选择装备 - 玩家信息 - 进入战斗 - 退出 [选择玩家]选择什么职业 - 1.战士 - 2.法师 - 3.返回 [进入商城]欢迎 ...

  4. 火箭工作室c++小游戏——坦克大战(初始版)

    今天第四次写博客,给大家发一个坦克大战的初始版,可以开外挂,要自己去探索 #include<windows.h> #include<conio.h> #include<i ...

  5. 练习:尼姆游戏(聪明版/傻瓜式•人机对战)

    题目   尼姆游戏,这是一个著名的游戏,有很多变种玩法.两个玩家轮流从一堆物品中拿走一部分.在每一步中,玩家可以自由选择拿走多少物品,但是必须拿走一部并且最多只能拿走一半物品,然后轮到下一个玩家.拿走 ...

  6. 基于C++实现平台类对战游戏

    1. 设计任务的描述 用面向对象的设计方法来设计一款平台类对战游戏. 内容包括宠物小精灵的加入.用户注册与平台登录.游戏对战的设计. 2. 功能需求说明及分析 2.1 宠物小精灵的加入 设计宠物小精灵 ...

  7. 基于QT(C++)实现(窗体)平台类对战游戏【100010513】

    1. 设计任务的描述 用面向对象的设计方法来设计一款平台类对战游戏. 内容包括宠物小精灵的加入.用户注册与平台登录.游戏对战的设计. 2. 功能需求说明及分析 2.1 宠物小精灵的加入 设计宠物小精灵 ...

  8. 动物棋c语言程序,斗兽棋游戏手机版|斗兽棋游戏下载 v0.2C 安卓版_最火软件站...

    斗兽棋android手机版,动物对战棋,回味童年的棋牌休闲游戏,登陆android手机,整个游戏画面是分为两块区域,中间有河流分割两块区域,有桥梁可以让彼此的动物过河,要取得胜利,必须占领那一边动物的 ...

  9. NodeJS 开发多人实时对战游戏服务器 (一)

    从一个游戏情怀说起 接触的第一款多人对战游戏是帝国时代,依稀记得那时候上学每周最期待的就是冲到电脑课撸一把罗马复兴,高中开始接触<魔兽争霸3>,一款真正让我迷恋十多年的游戏,怀念那时候的& ...

最新文章

  1. 整合PyTorch 0.4和Caffe 2,PyTorch 1.0能挑战TensorFlow吗?
  2. 修改特征码的相关知识
  3. linux shell expr命令 字符串操作
  4. python 函数装饰器学习
  5. 亏损63亿,美图真能“美”到上市?
  6. 矢量合成和分解的法则_力的合成与分解专题解析,寒假复习!
  7. 归纳偏置是什么?从现实生活中观察到的现象中归纳出一定的规则,然后对模型做一定的约束,从而可以起到“模型选择”的作用
  8. Win7-VirsualBox下学习Ubuntu--初识ubuntu
  9. 一次 Java 内存泄漏排查过程,涨姿势
  10. [转载] Python中NumPy简介及使用举例
  11. mybatis generator 中文注释_[SpringBoot2.X] 23- 整合持久层技术 -MyBatis - 配置
  12. 简单迅速解决windows电脑下载windows应用商店(Microsoft Store)
  13. 绕过深澜校园宽带认证客户端使用校园网的方法
  14. 创建user01-user20 随机六位数密码 a-z A-Z 0-9
  15. datedif函数mysql_datedif函数怎么用
  16. Java8新特性之一:Lambda表达式
  17. Douyin-Bot 项目优化-改进,优化效率,本地cv2识别过滤
  18. Linux 常用命令大全(虚拟机)
  19. 【HTML】HTML网页设计----模仿汉服前端设计
  20. 服务器输入不显示字,搜狗输入法打字不显示怎么办 快来看看解决办法

热门文章

  1. mybatis更新时间字段_你以为把Mybatis型处理器了解了,就不会“暴雷”了!
  2. Redis —— 常用命令一览
  3. Git初学札记(零)————EGIT完成Eclipse到GitHub一条龙
  4. 使用springboot来实现WebLog
  5. 云南计算机专修学校附中,昆明高中哪家强? 师附中和昆一中高考尖子生最多...
  6. 使用python对数据集进行批处理
  7. 有趣的编程代码_iPad amp; Mac 编程游戏推荐
  8. lamp 安装 mysql_linux lamp之离线安装mysql
  9. php 制作ppt,PPT制作三个基本要素是什么?
  10. qq linux版本下载官网下载,腾讯QQ For Linux