创建英雄与怪物类

最近本人进行了一些java初阶练习,其中有一些挺有意思的题目,本人选择了这一道题目进行试手,现在把程序分享一下,方便广大跟我一样都在学习Java的同胞们一起相互交流,共同进步。

题目的内容

1、创建一个LOL中的英雄类和怪物类,要求:
怪物类中加入生命值属、等级属性,生命值=等级*1000
英雄类中加入“经验值”,“等级”,“攻击力”等属性变量,加入“击打”方法,击打的目标是怪物,击打的结果是怪物的生命值-英雄攻击力
2、自定义一个英雄类
英雄的级别最低为0,最高为30级,经验值最低为0,最高为30级时的经验值
该类中要求有一个含有参数的构造函数,参数为英雄的经验值,初始化时要保证经验值在要求范围之内,通过输入英雄等级查看英雄经验值:
N=当前级别,EXP(经验值)=30(N^3+5N)-80
构建一个无参的构造方法,将经验值设置为0
利用英雄类无参和带有参数的构造函数分别构建英雄对象,并输出英雄的等级和经验值。

接下来就是小弟献丑的时候了
1、创建一个LOL中的英雄类和怪物类,要求:
怪物类中加入生命值属、等级属性,生命值=等级*1000
英雄类中加入“经验值”,“等级”,“攻击力”等属性变量,加入“击打”方法,击打的目标是怪物,击打的结果是怪物的生命值-英雄攻击力
代码如下:

package work4;public class Work040 {static class Hero{ //英雄类private String name;//英雄的名字private Integer experience;//经验值private Integer level; //英雄等级private Integer attack; //攻击力public Hero(String name){ //新建英雄的构造方法this.name = name;//输入名字this.experience = 0;//初始经验值为0this.level = 1;//初始等级为1this.attack = 100;//初始攻击力为100}public void AttackMonster(Monster monster){ //攻击怪物的方法System.out.println("英雄<"+this.name+">攻击怪物<"+monster.getName()+">造成"+this.attack+"点伤害");Integer hp = monster.getHealthPoint();//怪物被攻击前血量if (hp > this.attack) { //判断 如果怪物的血量大于攻击力hp = hp - this.attack;//怪物的血量 就减少攻击力的点数} else { //如果怪物的血量 等于或者小于攻击力hp = 0; //怪物血量为0 死亡}monster.setHealthPoint(hp); //改变怪物被攻击后的血量System.out.println("怪物剩余血量"+hp);if (hp == 0 && this.level <18){ //如果怪物死亡 且英雄等级没有达到最高的18级System.out.println("英雄<"+this.name+">的经验值增加"+monster.getExperience()+"点");this.experience = this.experience + monster.getExperience(); //英雄的经验值 增加if (this.experience >= level * 100){ //设定 英雄升级所需经验值为 等级*100  如果英雄增加后的经验值达到升级条件this.experience = this.experience - level*100; //经验值减去当前升级需要的经验值 溢出的进入下一个等级经验this.level = this.level + 1;//英雄等级 +1this.attack = this.attack + 20; //设定 每升一级英雄攻击力 +20System.out.println("英雄<"+this.name+">升级了,等级+1,攻击力+20,当前等级"+this.level+",当前攻击力"+this.attack);}}}//获取英雄名字的方法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 = attack;}}static 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;//初始化怪物的经验,英雄杀死后可获得,设定怪物经验值为等级*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;}}public static void main(String[] args) throws Exception {Hero hero = new Hero("刘醒"); //新建一个英雄Monster monster = new Monster("梁非凡",1);//新建一个怪物do {hero.AttackMonster(monster); //攻击怪物}while (monster.getHealthPoint() != 0);  //如果怪物没死 一直攻击}}

2、自定义一个英雄类
英雄的级别最低为0,最高为30级,经验值最低为0,最高为30级时的经验值
该类中要求有一个含有参数的构造函数,参数为英雄的经验值,初始化时要保证经验值在要求范围之内,通过输入英雄等级查看英雄经验值:
N=当前级别,EXP(经验值)=30(N^3+5N)-80
构建一个无参的构造方法,将经验值设置为0
利用英雄类无参和带有参数的构造函数分别构建英雄对象,并输出英雄的等级和经验值。
代码如下:

package work4;import java.util.Scanner;public class Work041 {public static void main (String[] args) {  int b=80;int l;  // 英雄等级  Scanner in = new Scanner(System.in); //从控制台输入英雄等级  System.out.println("请输入英雄等级查看英雄经验值:");//输入提示  l = in.nextInt();//输入的整数英雄等级赋值给l //开始运算英雄经验值  if(l>0){ if(l<=30) {  long exp = 30*(l*l*l) - b + 150*l;System.out.println("英雄等级"+l+" "+"英雄经验值 "+exp);  }else{System.out.println("英雄等级已满");}}     }  }

以上就是小弟的牛刀小试,还需诸位大神多多指教

JAVA开发,创建英雄与怪物类,查询经验值相关推荐

  1. java写怪物类_JAVA开发,创建英雄与怪物类,查询经验值

    创建英雄与怪物类 最近本人进行了一些java初阶练习,其中有一些挺有意思的题目,本人选择了这一道题目进行试手,现在把程序分享一下,方便广大跟我一样都在学习Java的同胞们一起相互交流,共同进步. 题目 ...

  2. dota是java中的_用java开发dota英雄最华丽的技能(实例讲解)

    爱java 爱dota,突发奇想想用java开发dota操作最华丽的英雄之一的卡尔的技能,因为本人系小白,代码不足的地方还请包涵,有同样爱好的同学欢迎一起研究学习. 先把我的代码呈上 import j ...

  3. 地下城英雄 java_用java开发dota英雄最华丽的技能(实例讲解)

    爱java 爱dota,突发奇想想用java开发dota操作最华丽的英雄之一的卡尔的技能,因为本人系小白,代码不足的地方还请包涵,有同样爱好的同学欢迎一起研究学习. 先把我的代码呈上 import j ...

  4. dota是java中的_用java开发dota英雄最华丽的技能

    爱java 爱dota,突发奇想想用dota操作最华丽的英雄之一的卡尔的技能,因为本人系小白,代码不足的地方还请包涵,有同样爱好的同学欢迎一起研究学习. 先把我的代码呈上 import java.ut ...

  5. C语言用创建三个怪物类,动画概论习题20.doc

    动画概论习题 一.填空 (每空1分? 共10分) 1.?法国?国的 ??埃米尔.雷诺????????被称为动画艺术和技术之父. 2.动画的本体特性有:技术特性.??工艺特性?????.??审美特性.? ...

  6. [转载]面向 Java 开发人员的 db4o 指南: 超越简单对象

    面向 Java 开发人员的 db4o 指南: 超越简单对象 2007 年 7 月 09 日 到目前为止,我们在 db4o 中创建并操作对象看起来都比较简单 -- 事实上,甚至有点太简单了.本文中,热心 ...

  7. 简单实现对象调用:创建一个LOL中的英雄类和怪物类

    1.创建一个LOL中的英雄类和怪物类,要求: 怪物类中加入生命值属.等级属性,生命值=等级*1000 英雄类中加入"经验值","等级","攻击力&qu ...

  8. (私人收藏)[开发必备]最全Java离线快速查找手册(可查询可学习,带实例)

    https://pan.baidu.com/s/1L54VuFwCdKVnQGVc8vD1TQ nwmj java手册Java 入门教程含有1个附件,如下:java-HelloWorld.gifJav ...

  9. day01--java基础编程:计算机基础知识 ,java语言概述,java开发环境搭建,eclipse概述,创建简单java项目,JDK JRE JVM的关系,java开发中的命名规范,编程风格

    1 Day01–Java开发环境+HelloWorld 1.1 计算机基础知识 资料下载网址:刘沛霞 18600949004 code.tarena.com.cn tarenacode code_20 ...

最新文章

  1. springboot jpa 复合主键 联合主键
  2. MAVEN项目环境搭建
  3. vue+springboot-前台怎么回显本地文件夹下的图片
  4. 设计师中国风作品必备汉字毛笔字偏旁部首大集合
  5. 阿呆做网站(1)--基本功能
  6. C#转换人民币大小金额
  7. 华为关闭telnet命令_华为交换机关闭Telnet
  8. Java Web之EL表达式和JSTL
  9. H5如何返回微信小程序
  10. win10新电脑装机所需软件
  11. UMTS与WCDMA, HSPA
  12. Hello JSP!——指令元素之page篇(最后有疑问求解,感激不尽)
  13. 西门子840d备份到u盘_西门子840D数控系统备份及恢复方法(三)
  14. 新手常见(五国)(-v图)错误解决(原版,破解kernel,补丁kext下载)
  15. 测试脉冲电磁对于铝片和铜片的影响
  16. 人脸活体检测论文:Multi-Modal Face Anti-Spoofing Based on Central Difference Networks
  17. [转贴]Debian的汉化步骤【转自http://www.linuxsir.org】
  18. 【Nodejs】Http模块01
  19. MT6129射频处理器,MT6129芯片原理资料介绍
  20. 究竟什么是CRM(客户关系管理系统)呢?

热门文章

  1. 车辆工程常用英文缩写
  2. jquery解除浏览器对摄像头占用,关闭小光点
  3. 消息循环中的TranslateMessage函数和DispatchMessage函数,特别注意WM_TIMER消息
  4. 唯一客服系统(独立部署无限多开)-知识库ChatGPT-支持微信公众号小程序-钉钉-PC和H5全渠道客服系统...
  5. vs2019 winform 打包exe
  6. 使用计算机配置路由器,路由器第一次设置必须用电脑吗?
  7. 提高网页响应速度:优化你的 CDN 性能
  8. mschart mysql_蛮漂亮的MSChart柱状图绘制及其样式
  9. 非深户港澳通行证续签材料
  10. 【笔记】vue父子组件数据双向绑定(v-model、prop.aync)