英雄打怪

英雄类

package LOLDemo;/*** @ClassName: Hero* @Description: *     自定义一个英雄类*    0.英雄类中加入“经验值”,“等级”,“攻击力”等属性变量,加入“击打”方法,击打的目标是怪物,击打的结果是怪物的生命值-英雄攻击力*	  1.英雄的级别最低为0,最高为30级,*	  2.经验值最低为0,最高为30级时的经验值,*	  3.该类中要求有一个含有 参数的构造函数,参数为英雄的经验值,初始化时要保证经验值在要求范围之内,*	  4.通过经验值计算英雄的级别,英雄的级别计算公式如下: N=当前级别,EXP (经验值) =30 (N^3+5N) -80*    5.构建一个无参的构造方法,将经验值设置为0*    6.利用英雄类无参和带有参数的构造函数分别构建英雄对象,并输出英雄的等级和经验值。*            自加:攻击力:0级100,每升一级攻击力加20* @Author: Wanglt   * @CreateDate: 2020年2月27日   **/
public class Hero {public static final int MAX_LEVEL = 30;private String name;// 英雄的名字private Integer experience;// 经验值private Integer level; // 英雄等级private Integer attack; // 攻击力public Hero() {this.name = "无名氏";this.experience = 0;this.level = countLevelByExperience(this.experience);this.attack = 100 + level * 20;}public Hero(String name) {this.name = name;this.experience = 0;// 初始经验值为0this.level = countLevelByExperience(this.experience);this.attack = 100 + level * 20;}public Hero(String name, int experience) {this.name = name;this.experience = experience;// 初始经验值为0this.level = countLevelByExperience(this.experience);this.attack = 100 + level * 20;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getExperience() {return experience;}public void setExperience(Integer experience) {this.experience = experience;}public Integer getLevel() {return level;}public void setLevel(Integer level) {this.level = level;}public Integer getAttack() {return attack;}public void setAttack(Integer attack) {this.attack = 100 + level * 20;}public int countExperienceByLevel(int level) {double res = 30 * (Math.pow(level, 3) + 5 * level) - 80;return (int) res;}public int countLevelByExperience(int experience) {double exp;int level = 0;for (int i = 1; i <= MAX_LEVEL + 1; i++) {exp = 30 * (Math.pow(i, 3) + 5 * i) - 80;// 达到i级最低的expif (exp > experience) {level = i - 1;break;}}return level;}public void AttackMonster(Monster monster) {System.out.println(this.name + "攻击" + monster.getName() + "造成" + this.attack + "点伤害");int hp = monster.getHealthPoint();// 怪物被攻击前血量if (hp > this.attack) { // 怪物的血量大于攻击力hp = hp - this.attack;// 怪物的血量减少} else { // 怪物的血量等于或者小于攻击力hp = 0; // 怪物血量为0 死亡}monster.setHealthPoint(hp); // 改变怪物被攻击后的血量System.out.println(monster.getName() + "剩余血量" + hp);if (hp == 0) { // 怪物死亡System.out.println(monster.getName() + "已击败");// 加经验、升级if (this.level < MAX_LEVEL) { // 英雄等级没有达到最高级System.out.println(this.name + "的经验值增加" + monster.getExperience() + "点");this.experience = this.experience + monster.getExperience(); // 英雄的经验值增加if (this.experience >= countExperienceByLevel(this.level + 1)) { // 如果英雄增加后的经验值达到升级条件this.level = this.level + 1;// 英雄等级 +1this.attack = this.attack + 20; // 设定 每升一级英雄攻击力 +20System.out.println(this.name + "升级了,攻击力+20,当前等级" + this.level + ",当前攻击力" + this.attack);}} else {System.out.println(this.name + "已满级,无法升级");}}}@Overridepublic String toString() {StringBuilder builder = new StringBuilder();builder.append("Hero [name=");builder.append(name);builder.append(", experience=");builder.append(experience);builder.append(", level=");builder.append(level);builder.append(", attack=");builder.append(attack);builder.append("]");return builder.toString();}}

怪物类

package LOLDemo;/*** @ClassName: Monster* @Description:* *  怪物类中加入生命值属性、等级属性、生命值=等级*1000* @Author: Wanglt   * @CreateDate: 2020年2月27日   **/
public class Monster {private String name; // 怪物的名字private Integer healthPoint;// 生命值private Integer level;// 怪物等级private Integer experience; // 怪物的经验值public Monster(String name, Integer level) {this.name = name;this.level = level;this.healthPoint = level * 1000;this.experience = level * 10;}public Integer getHealthPoint() {return healthPoint;}public void setHealthPoint(Integer healthPoint) {this.healthPoint = healthPoint;}public Integer getLevel() {return level;}public void setLevel(Integer level) {this.level = level;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getExperience() {return experience;}public void setExperience(Integer experience) {this.experience = experience;}@Overridepublic String toString() {StringBuilder builder = new StringBuilder();builder.append("Monster [name=");builder.append(name);builder.append(", healthPoint=");builder.append(healthPoint);builder.append(", level=");builder.append(level);builder.append(", experience=");builder.append(experience);builder.append("]");return builder.toString();}}

战斗

package LOLDemo;/*** @ClassName: Fight* @Description:* @Author: Wanglt* @CreateDate: 2020年2月27日**/
public class Fight {public static void main(String[] args) {System.out.println("====================战斗0====================");Hero hero0 = new Hero(); // 新建一个英雄Monster monster0 = new Monster("小怪", 1);// 新建一个怪物do {hero0.AttackMonster(monster0); // 攻击怪物} while (monster0.getHealthPoint() != 0); // 如果怪物没死 一直攻击System.out.println("====================战斗1====================");Hero hero1 = new Hero("唐三"); // 新建一个英雄Monster monster1 = new Monster("比比东", 1);// 新建一个怪物do {hero1.AttackMonster(monster1); // 攻击怪物} while (monster1.getHealthPoint() != 0); // 如果怪物没死 一直攻击System.out.println("====================战斗2====================");Hero hero2 = new Hero("唐三", (int) (30 * (Math.pow(30, 3) + 5 * 30) - 80)); // 新建一个英雄Monster monster2 = new Monster("比比东", 10);// 新建一个怪物do {hero2.AttackMonster(monster2); // 攻击怪物} while (monster2.getHealthPoint() != 0); // 如果怪物没死 一直攻击}
}

运行结果
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

【游戏逆向】RPG游戏自动打怪之取得最近怪物

RPG游戏辅助想要自动打怪&#xff0c;首要的任务就是需要获得最近的怪物,否则打怪的顺序会非常混乱。 想要取得最近怪物信息 要2个步骤 第一步 计算出所有怪物的距离 第二步 对所有怪物的距离进行判断,筛选出距离最近的 第一步怪物距离计算 如果是以2D的平面来看 2个点的距…

英雄杀-如何通关挑战

对于很多英雄杀的新手玩家来说&#xff0c;挑战&#xff0c;几乎很难一次通关&#xff0c;我也是&#xff0c;一般没超过十关。 我给大家分享一下我最近的通关方法&#xff0c;仅供参考&#xff1a; 第一种思路&#xff1a; 杨延昭&#xff1a; 有两个前提&#xff1a; 第一、…

javaweb session与cookie

Cookie Cookie是本地的存储数据&#xff0c;是键值对 注意一定要使用resp.addCookie才能返回cookie cookie修改 修改的话也是调用addCookie&#xff0c;对相同key的进行修改&#xff0c;作用于set-cookie响应头。 可以新建cookie&#xff0c;add进去&#xff0c;也可以在用户传…

行为型设计模式03-观察者模式

&#x1f9d1;‍&#x1f4bb;作者&#xff1a;猫十二懿 &#x1f3e1;账号&#xff1a;CSDN 、个人博客 、Github &#x1f38a;公众号&#xff1a;猫十二懿 观察者模式 1、观察者模式介绍 观察者模式是一种行为型设计模式&#xff0c;也被称为发布-订阅模式&#xff0c;它定…

【虹科案例】虹科数字化仪在激光雷达大气研究中的应用

01 莱布尼茨研究所使用激光雷达进行大气研究 图 1&#xff1a;在 Khlungsborn 的 IAP 办公室测试各种激光器 大气研究使用脉冲激光束通过测量大气中 100 公里高度的多普勒频移和反向散射光来测量沿光束的温度和风速。返回的光信号非常微弱&#xff0c;会被阳光阻挡&#xff0c…

XML入库后空白字符丢失问题

最近项目上在做电子病历&#xff0c;使用的是第三方的电子病历组件&#xff0c;该病历组件是利用XML来组织数据的。界面上渲染出来的效果如下图&#xff1a; XML渲染后的界面 对应的后台数据&#xff08;已做简化处理&#xff09;是如下XML格式的&#xff0c;其中的空格部分是…

前端入门学习

封装axios axios的基础使用 axios基础使用方法&#xff1a; axios.create({config}) //创建axios实例 axios.get(url,{config}) //get请求 axios.post(url, data,{config}) //post请求 axios.interceptors.request.use() // 请求拦截器 axios.interce…

赛尔号什么时候支持html5,赛尔号:这几只精灵必须拥有!无关强度,只因经典情怀!...

赛尔号这款游戏有着比较老的资历&#xff0c;很多玩家从还是小学生的时候就开始玩起了这个游戏&#xff0c;然后便一直玩到大学&#xff0c;甚至毕业工作。因此&#xff0c;赛尔号不仅仅是一款简单的网页游戏&#xff0c;更是一款充满了情怀的游戏。 那么&#xff0c;接下来的小…

赛尔号星球大战服务器维修,赛尔号星球大战11月29日更新公告

赛尔号星球大战11月29日新增了什么玩法&#xff1f;服务器的维护时间是多少&#xff1f;来看看9k9k小编rayxx带来的赛尔号星球大战11月29日更新公告。 11月29号下午15点至17点更新公告: 1、精灵 新增了两种精灵:亚兰洛(火系)&#xff0c;星吉拉(普通系)。 通过有缘人进行精灵繁…

4399知名游戏-赛尔号图鉴的爬取

4399知名游戏-赛尔号图鉴的爬取 面向对象&#xff1a; 1.疫情居家无聊之人 2.python略懂一点点就行 头文件引入&#xff1a; 如果没有下面的头文件不要慌&#xff0c;打开你的python终端pip install 包名即可 from bs4 import BeautifulSoup import requests import json …

容器技术 — Cgroups 与 Namespaces 支撑实现的操作系统虚拟化

目录 文章目录 目录操作系统虚拟化&#xff08;容器技术&#xff09;的发展历程ChrootCgroupsCgroup SubsystemsCgroup FilesystemCgroup HierarchyCgroups 的操作规则Cgroups 的代码实现 NamespacesUTS namespacePID namespaceIPC namespaceMount namespaceNetwork namespaceU…

使用geoserver发布shp和tiff数据

一、安装并启动geoserver服务 1.1 下载geoserver 进入官网下载 由于geoserver是使用Java语言开发的&#xff0c;所以运行需要java的环境&#xff0c;不同geoserver的版本号对java的版本要求不同&#xff0c;所以选择版本时需注意对应java的版本要求&#xff0c;由于我本地安…

javascript回到顶部

如图&#xff1a; 数字从1到100&#xff0c;滚动后点击章鱼哥便可以回到顶部。 HTML内容不多只有一个a标签内容有一个图片和100个h1标签&#xff0c;但要看清楚是给它设置好了id的&#xff0c;当然不设置id也行但有时候对小白不太友好。 为了使点击图片更加贴合整个页面所以需要…

一段简单的网页返回顶部和返回底部代码(html+css+jquery)

最近用到了返回顶部和底部功能&#xff0c;找了找&#xff0c;查了查&#xff0c;改了改&#xff0c;最终实现效果大概这样子。 以下是相关代码&#xff1a; html部分&#xff1a; <div id"backtotop" class"backtotop"><div class"bt-box…

网页回到顶部的js代码实现

背景 还是给老板写他的个人主页&#xff0c;用到了一个小功能&#xff0c;随手记录下 代码 控制样式的 css 代码如下 /* 回到顶部实现代码的css */ .back-to-top {display: none;/* 默认是隐藏的&#xff0c;这样在第一屏才不显示 */position: fixed;/* 位置是固定的 */bott…

HTML5 回到顶部

图片&#xff1a; html <!DOCTYPE html> <html><head><meta charset"utf-8" /><title>回到顶部</title><link rel"stylesheet" type"text/css" href"css/try.css" /><script src"j…

JS返回顶部代码

2019独角兽企业重金招聘Python工程师标准>>> <!-- 回到顶部 --> <div><span style"font-size:14px"><p id"back-to-top"><a href"#top"><span><img src"public/images/top.jpg" ti…

URL 地址栏能玩出什么新花样?这位歪果程序员小哥给你开开脑洞!

前言 在现在一些互联网营销号的传播素材中&#xff0c;程序员往往会被塑造成一个邋遢、木讷、秃头、低情商的形象&#xff0c;以借此博得普通群众的眼球&#xff0c;吸引他人注意力。 前阵子&#xff0c;暴走漫画发布的一个视频《创造1024》&#xff0c;里面便有多个情节涉及到…

用Python让蔡徐坤在我的命令行里打篮球!| 附完整代码

作者自称是一个经常逛 B 站的肥宅。最近B站上流行的视频素材除了“换脸”&#xff0c;其次就要属“蔡xx打球”视频了。有模仿的、对比的、手绘的... ...更过分的是&#xff0c;竟然有人在命令行输出了他的打球视频。不过&#xff0c;视频中的动画好像是用某个软件生成的 txt 文…

一行代码“黑”掉任意网站

文章目录 只需一行代码&#xff0c;轻轻一点就可以把任意网站变成暗黑模式。 首先我们先做一个实验&#xff0c;在任意网站中&#xff0c;打开浏览器开发者工具(F12)&#xff0c;在 C1onsole 控制台输入如下代码并回车&#xff1a; document.documentElement.style.filterinv…