创建英雄与怪物类

最近本人进行了一些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;//初始经验值为0

this.level = 1;//初始等级为1

this.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;//英雄等级 +1

this.attack = this.attack + 20; //设定 每升一级英雄攻击力 +20

System.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写怪物类_JAVA开发,创建英雄与怪物类,查询经验值相关推荐

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

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

  2. java中写入文件_java中创建、写入文件的5种方式

    在java中有很多的方法可以创建文件写文件,你是否真的认真的总结过?下面笔者就帮大家总结一下java中创建文件的五种方法. Files.newBufferedWriter(Java 8) Files. ...

  3. java string对象创建对象_Java String 创建了几个对象

    我们首先来看一段代码: Java代码 String str=new String("abc"); 紧接着这段代码之后的往往是这个问题,那就是这行代码究竟创建了几个String对象呢 ...

  4. java技术学习内容_Java开发主要都学些什么内容?

    展开全部 Java开发培训班主要学32313133353236313431303231363533e58685e5aeb931333363386164习的课程大纲,你可以看下. 第一阶段:JavaSE ...

  5. java工程师的自我评价_Java开发工程师-自我评价怎么写(范文)

    Java开发工程师简历模板-自我评价怎么写 [网盘下载]100+清新大气简历模板: Java开发工程师自我评价范文1 ★ 能团结同事,以诚待人,善于沟通和表达,有强烈的团队荣誉感. ★ 熟练掌握一些S ...

  6. java 写一个商店_Java Web开发之基于Session的购物商店实现方法

    本文实例讲述了Java Web开发之基于Session的购物商店实现方法.分享给大家供大家参考,具体如下: package cn.com.shopping; import java.io.IOExce ...

  7. java软件工程师自我评价_Java开发工程师岗位自我评价怎么写

    自我评价(案例一) 1 : 有较强的分析.解决问题的能力,具有较强逻辑思维能力和表达能力. 2:性格开朗,积极乐观,能以极大的热情投入工作. 3:具有良好的团队协作能力,能够很好地融入团队. 4 : ...

  8. java redis 面试题_Java开发人员怎么面试 常见Redis面试题有哪些

    Java开发人员怎么面试?常见Redis面试题有哪些?Redis是目前各大企业都在使用的人们技术,也是企业选拔人才时考核的一个难题.有很多同学只是简单了解Redis的应用,但对于为什么要用Redis以 ...

  9. java escape工具类_java开发常用工具类

    在Java中,,工具类定义了一组公共方法.你把你的类继承这些类或者实现这些接口,就可以使用这些类的方法了.下面给大家介绍一下十六种最常用的java开发常用工具类. 一. org.apache.comm ...

最新文章

  1. Tomcat下HTTPS双向认证配置以及客户端调用案例
  2. 有用就存档,没用就删除,当日清理当日的email
  3. 错误: 找不到或无法加载主类 org.apache.hadoop.hbase.util.GetJavaProperty
  4. python 爬虫是什么_“python爬虫“是什么呢?
  5. Socket通用TCP通信协议设计及实现(防止粘包,可移植,可靠)
  6. 编程贺卡c语言,C++实现新年贺卡程序
  7. 【Paper-Attack】MGA:Momentum Gradient Attack on Network
  8. 差异性发展 - 浙江工商局长郑宇民“智斗”央视女主持董倩
  9. 9-15 redis-trib构建集群
  10. shell监控磁盘使用情况
  11. html ios音乐自动播放muted,video下autoplay属性无效的解决方法(添加muted属性)
  12. mysql悲观锁优化_MySQL事务及实现、隔离级别及锁与优化
  13. 申请公网IP实战 #华北天津联通
  14. 10个python办公黑科技,助你办公效率提高100倍
  15. mac 麦克风等权限添加应用操作手册
  16. 深度学习中的类别激活热图可视化
  17. 基于Java的实时通信软件的设计(类似微信)
  18. echart 三维可视化地图_实测三个工具后,我终于找到了地图可视化的神器
  19. 1. 简介(The caret package )
  20. idea打包提示程序包不存在如何解决?

热门文章

  1. 利用二维数组(double[])实现一个矩阵类:Matrix。要求提供以下方法:(1)set(int row, int col, double value):将第row行第col列的元素赋值为valu
  2. bug缺陷管理流程及等级划分
  3. Java开发工程师面试总结
  4. 华为面试题目:一头牛重800kg,一座桥承重700kg,牛如何过河?天秀回答秒通过
  5. 第十五章 VoIP 安全
  6. dialog 弹出框,遮罩层覆盖内容
  7. 浙江大学计算机系历届系主任,上海交通大学计算机科学与工程系(CSE)
  8. C/C++编程:默认构造函数的建构操作
  9. 一切未晚——七公主后花园的成立
  10. html个人简历制作