控制台文字对战游戏 初始版

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/571658.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

查询链接服务器信息,如何通过 SQL Server 链接服务器和分布式查询使用 Excel

作为链接服务器查询 Excel您可以使用企业管理器、系统存储过程或 SQL-DMO(分布式管理对象)将 Excel 数据源配置为 SQL Server 链接服务器。在所有的这些情况中&#xff0c;您总需要设置以下四个属性&#xff1a;链接服务器要使用的名称。连接要使用的 OLE DB 提供程序。Excel 工…

python画精美图案_Python语言的魅力------完美图案

1.画椭圆(代码如下)#!user/bin/python# -*- conding:UTF-8 -*-if __name__ __main__:from Tkinter import *canvas Canvas(width800,height600,bgpurple)canvas.pack(expandYES,fillBOTH)k 1j 1for i in range(0,26):canvas.create_oval(310 - k,250 - k,310 k,250 k,wid…

批量下载,多文件压缩打包zip下载

0、写在前面的话图片批量下载&#xff0c;要求下载时集成为一个压缩包进行下载。从昨天下午折腾到现在&#xff0c;踩坑踩得莫名其妙&#xff0c;还是来唠唠&#xff0c;给自己留个印象的同时&#xff0c;也希望给需要用到这个方法的人带来一些帮助。1、先叨叨IO叨叨IO是因为网…

选了combobox里的选项后没激发change事件_35岁前多用利弊分析,35岁后要有“安全边际”...

想冒险&#xff0c;要趁早1/6、距离糟糕的事情发生&#xff0c;还有多远&#xff1f;我现在同时在职场和投资两类战线写文章&#xff0c;读者也开始串戏。前几天在我另外一个投资号上&#xff0c;有人问我&#xff1a;如果你把投资理念原则扩大到生活中&#xff0c;你觉得最有启…

不连续曲线 highcharts_什么是正则曲线和正则曲面

微分几何和微分流形的书上经常提到“正则曲线”和“正则曲面”。其实英文书中写作”Regular Curve“和”Regular Surface“&#xff0c;让人一眼能够了解其大意&#xff08;这也是我更偏向看英文原版书的原因&#xff09;。我就想&#xff0c;数学家为啥不翻译成”规则曲线“和…

centos安装 node.js

curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash - yum clean all yum makecache yum -y install nodejs转载于:https://www.cnblogs.com/linkenpark/p/7810238.html

11.06

{% extendsdaohang.html %} {% block title %}发布问答{% endblock %} {% block head %}<link rel"stylesheet" href"{{ url_for(static,filenamecss/14.css) }}" type"text/css"> {% endblock %}{% block main %}<div class"box&…

python 安卓模拟器电脑版_【夜神安卓模拟器电脑版】夜神安卓模拟器电脑版 V6.6.0.6免费版官方免费下载_正式版下载-多特软件站...

夜神安卓模拟器是目前非常流行的一款安卓模拟器&#xff0c;相比一般的模拟器它具有更好的兼容性&#xff0c;稳定性&#xff0c;系统基于Android4.4.2&#xff0c;可以更好地兼容安卓软件&#xff0c;安卓游戏&#xff0c;可以放心使用&#xff0c;软件使用非常简单。相关软件…

python爬取10个网站_十个Python爬虫武器库示例,十个爬虫框架,十种实现爬虫的方法!...

一般比价小型的爬虫需求&#xff0c;我是直接使用requests库 bs4就解决了&#xff0c;再麻烦点就使用selenium解决js的异步 加载问题。相对比较大型的需求才使用框架&#xff0c;主要是便于管理以及扩展等。1.ScrapyScrapy是一个为了爬取网站数据&#xff0c;提取结构性数据而…

[W班]第二次结对作业成绩评价

作业地址&#xff1a; https://edu.cnblogs.com/campus/fzu/FZUSoftwareEngineering1715W/homework/1016 作业要求&#xff1a; 1、代码具有规范性。 2、实现的程序语言不做限制性要求&#xff0c;但需要能生成Windows平台的可执行文件。C/C/C#编译后即可生成&#xff0c;其他…

resnet50结构_无需额外数据、Tricks、架构调整,CMU开源首个将ResNet50精度提升至80%+新方法

本文是CMU的Zhiqiang Shen提出的一种提升标准ResNet50精度的方法&#xff0c;它应该是首个将ResNet50的Top1精度刷到80%的(无需额外数据&#xff0c;无需其他tricks&#xff0c;无需网络架构调整)。该文对于研究知识蒸馏的同学应该是有不少可参考的价值&#xff0c;尤其是里面提…

msp430项目编程14

msp430中项目---电子测重系统 1、hx711工作原理 2、电路原理说明 3、代码&#xff08;显示部分&#xff09; 4、代码&#xff08;功能实现&#xff09; 5、项目总结 msp430项目编程msp430入门学习转载于:https://www.cnblogs.com/guochaoxxl/p/7818040.html

linq to sql 行转列_SQL 难题:行转列

问题&#xff1a;有一张学生成绩表sc&#xff08;sid 学号&#xff0c;cid 课程&#xff0c;score 成绩&#xff09;&#xff0c;请查询出每个学生的英语、数学的成绩&#xff08;行转列&#xff0c;一个学生只有一行记录&#xff09;。建表语句&#xff1a;create 实现方式1—…

python课程设计矩阵对角线之和,为每个python numpy用不同的值填充矩阵对角线

I saw a function numpy.fill_diagonal which assigns same value for diagonal elements. But I want to assign different random values for each diagonal elements. How can I do it in python ? May be using scipy or other libraries ?解决方案You can use np.diag_i…

SpringMvc 系统启动时加载数据到内存中

SpringMvc 系统启动时加载数据到内存中 学习了&#xff1a;http://blog.csdn.net/newstruts/article/details/18668269 https://www.cnblogs.com/zhengteng/p/5381910.html http://xfxlch.iteye.com/blog/2048049 http://duanxuchu.iteye.com/blog/2181647 结论&#xff1a; 方…

python字符串计算加减乘除代码_Python 70行代码实现简单算式计算器解析

描述&#xff1a;用户输入一系列算式字符串&#xff0c;程序返回计算结果。要求&#xff1a;不使用eval、exec函数。实现思路&#xff1a;找到当前字符串优先级最高的表达式&#xff0c;在算术运算中&#xff0c;()优先级最高&#xff0c;则取出算式最底层的()&#xff0c;再进…

c++测试cpu_测评丨NXP系列 LS1028 LS1046等产品网络性能测试

号外号外&#xff01;继OK1012A-C面市以来&#xff0c;飞凌嵌入式公司相继推出了OK1043A-C、OK1046A-C&#xff0c;以及最新上市的OK1028A-C&#xff0c;OK10XX系列产品也是一个大家族了。正所谓春兰秋菊&#xff0c;各擅胜场。下面小编就各产品的网络性能为您简单介绍一下。先…

四.Windows I/O模型之重叠IO(overlapped)模型

1.适用于除Windows CE之外的各种Windows平台.在使用这个模型之前应该确保该系统安装了Winsock2.重叠模型的基本设计原理是使用一个重叠的数据结构&#xff0c;一次投递一个或多个Winsock I/O请求。在重叠模型中&#xff0c;收发数据使用WSA开头的函数。2.WSA_FLAG_OVERLAPPED标…

python工作岗位要求_Python就业:Python就业岗位职能要求解析

我们来看一下某招聘网其中三个岗位的要求&#xff1a;Python数据分析任职要求&#xff1a;1.计算机、软件相关专业本科或以上学历&#xff0c;3年以上工作经历&#xff1b;2.了解python、JS开发言语&#xff1b;3.具有MySQL数据库设计与优化才能&#xff0c;了解mongoDB、mc、r…

Ajax--serialize应用表单数据序列化

一.jQueryAjax表单数据序列化 1 <!DOCTYPE html>2 <html>3 <head>4 <meta charset"UTF-8">5 <title>Title</title>6 </head>7 <body>8 <p id"results"><b>Results: </b> &…