Java练习

1.整体要求

奥特曼打怪兽,奥特曼有名字、攻击力、血量等属性,有技能:飞行、光线攻击;
怪兽有名字、攻击力和血量属性,有技能:奔跑、蛮力攻击。
创建奥特曼和怪兽对象,然后调用他们的属性和方法。

2.添加要求

要求:
1、让奥特曼和怪兽战斗到一方死亡为止
2、给怪兽添加反射攻击技能,该技能在被奥特曼攻击时调用,将对方攻击力的百分之10反射给对方。

1.整体要求代码实现

Ultraman类:
public class Ultraman{double hp;private double attackPower;public Ultraman(double hp,double attackPower){this.hp = hp;this.attackPower = attackPower;}public double getHp() {return hp;}public void setHp(double hp) {this.hp = hp;}public double getAttackPower() {return attackPower;}public void setAttackPower(double attackPower) {this.attackPower = attackPower;}//普通攻击public void attack(Monster m){System.out.printf("奥特曼正在攻击小怪兽,小怪兽剩余血量%f\n",m.getHp());m.setHp(m.getHp()-this.attackPower);System.out.printf("奥特曼受到小怪兽的反射技能攻击,剩余血量为:%f\n",this.getHp(),this.hp-this.attackPower*0.1);}//技能public void skill1(Monster m){System.out.printf("奥特曼使用技能:飞行\n");}public void skill2(Monster m){System.out.printf("奥特曼使用技能:光线攻击,小怪兽剩余血量%f\n",m.getHp());m.setHp(m.getHp()-30);System.out.printf("奥特曼受到小怪兽的反射技能攻击,剩余血量为:%f\n",this.getHp(),this.hp-this.attackPower*0.1);}
}
Monster类:
public class Monster{double hp;private double attackPower;public Monster(double hp,double attackPower){this.hp = hp;this.attackPower = attackPower;}public double getHp() {return hp;}public void setHp(double hp) {this.hp = hp;}public double getAttackPower() {return attackPower;}public void setAttackPower(double attackPower) {this.attackPower = attackPower;}//普通攻击public void attack(Ultraman u){System.out.printf("小怪兽正在攻击奥特曼,奥特曼剩余血量%f\n",u.getHp());u.setHp(u.getHp()-this.attackPower);}//技能public void skill1(Ultraman u){System.out.printf("小怪兽使用技能:奔跑\n");}public void skill2(Ultraman u){System.out.printf("小怪兽使用技能:蛮力攻击,奥特曼剩余血量%f\n",u.getHp());u.setHp(u.getHp()-20);}
}
Fight类:
public class Fight {public static void main(String[] args) {Ultraman ultraman = new Ultraman(100,20);Monster monster = new Monster(130,10);while(true){ultraman.attack(monster);if(monster.getHp()<=0){System.out.println("小怪兽已承受不住奥特曼下一次攻击,成功被消灭!");break;}monster.attack(ultraman);if(ultraman.getHp()<=0){System.out.println("奥特曼已承受不住小怪兽下一次攻击,成功被消灭!");break;}ultraman.skill1(monster);monster.skill1(ultraman);ultraman.skill2(monster);if(monster.getHp()<=0){System.out.println("小怪兽已承受不住奥特曼下一次攻击,成功被消灭!");break;}monster.skill2(ultraman);if(ultraman.getHp()<=0){System.out.println("奥特曼已承受不住小怪兽下一次攻击,成功被消灭!");break;}}}
}
运行展示:

2.添加要求代码实现

修改了部分代码
修改后代码如下:

Ultraman类:
public class Ultraman{double hp;private double attackPower;public Ultraman(double hp,double attackPower){this.hp = hp;this.attackPower = attackPower;}public double getHp() {return hp;}public void setHp(double hp) {this.hp = hp;}public double getAttackPower() {return attackPower;}public void setAttackPower(double attackPower) {this.attackPower = attackPower;}//普通攻击public void attack(Monster m){System.out.printf("奥特曼正在攻击小怪兽,小怪兽剩余血量%f\n",m.getHp());m.setHp(m.getHp()-this.attackPower);System.out.printf("奥特曼受到小怪兽的反射技能攻击,剩余血量为:%f\n",this.getHp(),this.hp-this.attackPower*0.1);}//技能public void skill1(Monster m){System.out.printf("奥特曼使用技能:飞行\n");}public void skill2(Monster m){System.out.printf("奥特曼使用技能:光线攻击,小怪兽剩余血量%f\n",m.getHp());m.setHp(m.getHp()-30);System.out.printf("奥特曼受到小怪兽的反射技能攻击,剩余血量为:%f\n",this.getHp(),this.hp-this.attackPower*0.1);}
}
Monster类:
public class Monster{double hp;private double attackPower;public Monster(double hp,double attackPower){this.hp = hp;this.attackPower = attackPower;}public double getHp() {return hp;}public void setHp(double hp) {this.hp = hp;}public double getAttackPower() {return attackPower;}public void setAttackPower(double attackPower) {this.attackPower = attackPower;}//普通攻击public void attack(Ultraman u){System.out.printf("小怪兽正在攻击奥特曼,奥特曼剩余血量%f\n",u.getHp());u.setHp(u.getHp()-this.attackPower);}//技能public void skill1(Ultraman u){System.out.printf("小怪兽使用技能:奔跑\n");}public void skill2(Ultraman u){System.out.printf("小怪兽使用技能:蛮力攻击,奥特曼剩余血量%f\n",u.getHp());u.setHp(u.getHp()-20);}
}
Fight类:
public class Fight {public static void main(String[] args) {Ultraman ultraman = new Ultraman(100,20);Monster monster = new Monster(130,10);/*      //普通攻击ultraman.attack(monster);monster.attack(ultraman);//发动技能ultraman.skill1(monster);ultraman.skill2(monster);monster.skill1(ultraman);monster.skill2(ultraman);*/while(true){ultraman.attack(monster);if(monster.getHp()<=0){System.out.println("小怪兽已承受不住奥特曼下一次攻击,成功被消灭!");break;}monster.attack(ultraman);if(ultraman.getHp()<=0){System.out.println("奥特曼已承受不住小怪兽下一次攻击,成功被消灭!");break;}ultraman.skill1(monster);monster.skill1(ultraman);ultraman.skill2(monster);if(monster.getHp()<=0){System.out.println("小怪兽已承受不住奥特曼下一次攻击,成功被消灭!");break;}monster.skill2(ultraman);if(ultraman.getHp()<=0){System.out.println("奥特曼已承受不住小怪兽下一次攻击,成功被消灭!");break;}}}
}
运行展示:


学习Java时间不长,只能编写出简易代码,请多指教

Java练习之奥特曼打怪兽(回合制)相关推荐

  1. 用Python做一个奥特曼打怪兽的小游戏

    话不多说,往下看吧! 引入需要的模块 from sprites import * from pygame import mixer 设置页面格式(宽高等等) width,height = 800,60 ...

  2. Python奥特曼打怪兽射击游戏(基于海龟画图创作的作品,来自Python创意编程100例sprites篇_Python精灵模块)

    相信这竟然是Python用海龟画图制作的作品吗? sprites模块就是用python的turtle模块开发的!所以本作品仍属于Python海龟画图作品 """奥特曼打怪 ...

  3. Python奥特曼打怪兽射击游戏,基于海龟画图创作的作品

    相信这竟然是Python用海龟画图制作的作品吗? sprites模块就是用python的turtle模块开发的!所以本作品仍属于Python海龟画图作品 """奥特曼打怪 ...

  4. java新手上路(二):奥特曼打怪兽

    环境如下: 回合制对战游戏:奥特曼和小怪兽进行PK,直到一方的血量为0时,结束战斗输出谁胜利了. 分析:奥特曼和怪兽属于characters类的对象automan和monster. 定义该类的成员变量 ...

  5. JS奥特曼打怪兽(纯享文档版)

    **思路分析:**先用函数和this创建一个壳子,将怪兽和奥特曼的属性写上,之后要像回合制游戏那样,你一轮我一轮这样打下去,然后在判断谁的HP=0就停止所以在写攻击的方式(impact)然后循环一直到 ...

  6. Python新手经典案例之奥特曼打怪兽-lol版

    本人新人入门Python 老师布置的作业打怪兽,本人参考了大佬们的杰作然后完成了下方的适合新手入门的版本,与大家分享! 第一步:新建Python包,创建文件 注意:需要有_init_.py这个py文件 ...

  7. java模板/策略模式打怪兽

    目录 小故事: 一起打怪兽 模板&策略模式 常规方式 模板模式 策略模式 相似: 差异: 小故事: 一起打怪兽 有个记者去光之国采访一群奥特曼,他问迪迦奥特曼:"你每天都干什么?&q ...

  8. JAVA 面向对象编程练习(一个回合制的战斗游戏:战士,骑兵,法师,电脑互相攻击)

    文章目录 一. 小编有话说 二. 游戏的要求 三. 编程前的准备 四. 代码及详细注释 五. 结果 一. 小编有话说 前面一篇文章写了JAVA面向对象编程的思想,本文主要展示关于面向对象编程的实例(一 ...

  9. Python小案例:回合制奥特曼打怪兽游戏

    from abc import ABCMeta, abstractmethod from random import randint, randrange import timeclass Fight ...

最新文章

  1. 荣耀手机都不更新鸿蒙系统吗,华为EMUI不会更新了!直接升级鸿蒙系统,荣耀手机也不会放弃...
  2. 关于telnet: connect to address 190.168.6.6: No route to host 报错处理
  3. python yield from_简述 yield 和 yield from
  4. 一图说清:做数据分析,到底要懂多少业务知识?
  5. Linux命令:修改文件权限命令chmod、chgrp、chown详解
  6. Atitit 表达式原理 语法分析 原理与实践 解析java的dsl  递归下降是现阶段主流的语法分析方法
  7. Pandas快乐学习之上海机动车牌照拍卖
  8. 如何用计算机直接做工资表,超简单一招!用Excel十秒快速制作工资条
  9. windows tcpdump
  10. 三星 SGH-I900/I908修改生产日期
  11. gcc编译工具常用命令以及汇编语言
  12. 专业mac绘图软件:FireAlpaca for Mac
  13. android.view.WindowLeaked解决办法
  14. 10本好书读物推荐,职场管理者必读,建议收藏
  15. 【mysql】gh-ost使用说明
  16. linux如何停止自启动运行脚本
  17. vivado生成mig_Vivado下MIG核仿真指导手册 -
  18. CSS3的字体和文本相关属性
  19. 电子合同改变传统采购方式,君子签助力政企采购更加高效便捷
  20. php如何匹配,如何用PHP 正则匹配

热门文章

  1. Js获取Url地址参数的几种方法
  2. 足不出户“逛”银行,37家城商行、农商行手机银行App性能大比拼
  3. 解决AndroidStudio编译出现的Lint
  4. 往微信图文中插入外链视频的方法(包含几种失败方法)
  5. HyperWorks案例学习加安装包
  6. DELMIA软件弧焊仿真:以两零件相交线为焊缝生成机器人焊点坐标
  7. 驾校分期-众筹项目java前后端分离项目vue(微信小程序+java前后端源码下载)
  8. 【转】迈拓维距Type-C转HDMI+USB+PD转接头手机连接电视图文教程疑难解答
  9. 网络层数据包的结构分析
  10. 男孩女孩 ---《怕》