奥特曼打小怪兽

需求

创建两个类,一个奥特曼类,一个怪兽类, 分别有各自对应的属性和方法
编写一个测试类,实现奥特曼与怪兽的创建,并让他们两个互相攻击,最后给出胜利结果

说明

奥特曼
属性:
血量
攻击力
行为:
攻击小怪兽

详细代码

奥特曼类

public class Altman {// 定义属性private int HP;private int damage;public int getHP() {return HP;}public void setHP(int hP) {HP = hP;}public int getDamage() {return damage;}public void setDamage(int damage) {this.damage = damage;}// 定义攻击方法,传入对象为小怪兽public void attack(Monster monster) {// 调用怪兽自己的减血方法,完成攻击monster.underAttack(this.damage);}// 奥特曼自己的减血方法public void underAttack(int damage) {this.HP -= damage;if (this.HP < 0) {this.HP = 0;}}// 判断死亡状态public boolean isDead() {return this.HP != 0 ? false : true;}
}

怪兽类

public class Monster {// 定义属性private int HP;private int damage;public int getHP() {return HP;}public void setHP(int hP) {HP = hP;}public int getDamage() {return damage;}public void setDamage(int damage) {this.damage = damage;}// 定义攻击方法,传入对象为奥特曼public void attack(Altman altman) {// 调用怪兽自己的减血方法,完成攻击altman.underAttack(this.damage);}// 怪兽自己的减血方法public void underAttack(int damage) {this.HP -= damage;if (this.HP < 0) {this.HP = 0;}}// 判断死亡状态public boolean isDead() {return this.HP != 0 ? false : true;}
}

Main方法测试

public class Main {public static void main(String[] args) throws InterruptedException {// 初始化奥特曼与怪兽Altman atm = new Altman();Monster gsl = new Monster();// 设定初始生命值atm.setHP(100);gsl.setHP(1000);// 定义回合数int count = 0;// 循环攻击,直到有一方死亡,停止循环while (!atm.isDead() && !gsl.isDead()) {// 获取随机攻击值atm.setDamage((int)(Math.random() * 100) + 1);gsl.setDamage((int)(Math.random() * 10) + 1);System.out.println("*************第" + (++count) + "回合**************");// 随机攻击if (((int)(Math.random() * 2) + 1) % 2 == 0) {atm.attack(gsl);System.out.println("奥特曼正在攻击怪兽...");} else {gsl.attack(atm);System.out.println("怪兽正在攻击奥特曼...");}// 程序休眠,使程序运行看起来有回合感// 可以注释掉Thread.sleep(2000);// 输出当前血量System.out.println("奥特曼剩余血量:" + atm.getHP());System.out.println("小怪兽剩余血量:" + gsl.getHP());}// 胜利情况判断if (atm.isDead()) {System.out.println("怪兽赢了");} else {System.out.println("奥特曼赢了");}}
}

总结

在奥特曼与小怪兽相互攻击时,需要传入对应的对象,如在奥特曼攻击怪兽的时候,传入了要攻击的怪兽对象
在奥特曼攻击怪兽时,调用了怪兽自己的减血方法,这样不会破坏封装对象的原则,只能自己修改自己的属性。

简单的奥特曼打小怪兽相关推荐

  1. java奥特曼对战小怪兽_“奥特曼攻打小怪兽”java打怪升级第一步

    练习:回合制对战游戏:奥特曼和小怪兽进行PK,直到一方的血量为0时结束战斗,输出谁胜利了! 不难看出场景中有两个对象:"奥特曼"这一对象抽象为"Ao"类: &q ...

  2. JAVA继承:奥特曼打小怪兽

    一.继承的基础知识: 1.类的继承的作用: 1)提高代码的重用性. 2)提高程序的扩展性. 简单来说,就是减少代码长度,减少工作量,工程量较小的时候,体现不出继承的优点,但是如果工程量很大的时候,比如 ...

  3. Python——用面相对象写奥特曼大战小怪兽

    一,知识点 基本的面向对象知识 理解继承,多态,封装,不会的小伙可以看这篇超详细教程 了解基本的装饰器知识不会的小伙伴可以看这个讲解 ** 二,代码(奥特曼大战小怪兽) from abc import ...

  4. java奥特曼对战小怪兽_JAVA程序设计(09)-----面对对象设计初级应用 奥特曼打小怪兽...

    1.一个奥特曼固定属性 4个小怪兽随机名字 随机属性 奥特曼有几率发动暴风雪技能 对所有小怪兽造成 50%~60%冰霜伤害 无视防御力 普通攻击伤害为 攻击力*80~120% - 对方防御力*60%~ ...

  5. Scala - 小项目 - 奥特曼打小怪兽

    一.项目描述 奥特曼 1个名字血量普通 必杀 一次只能打1只魔法 所有奥特曼的攻击 10%必杀 30%魔法 60%普攻小怪兽 4只名字血量普通 回合制游戏示例输出: ======== 第1回合 === ...

  6. 奥特曼和小怪兽的故事

    "妈妈,妈妈,"小怪兽问,"我什么时候才能长大呢?" 正做饭的怪兽妈妈和蔼地问:"干吗想长大呀,做妈妈的乖宝宝不好吗?" "长大了 ...

  7. 【python】奥特曼打小怪兽文字游戏

    设计基本思路: 设置一个抽象类(FighterFighterFighter),用来初始化奥特曼与小怪兽的基本属性(name,hpname,hpname,hp);同时设置一个抽象类方法(attackat ...

  8. java基础练习之奥特曼打小怪兽

    /******************外星人公共类******************/ public class Aliens {     // 外星人姓名     private String n ...

  9. java面向对象之对象数组练习“奥特曼打小怪兽混战”

    import java.util.Arrays; import day10.homework.Aliens; /**  *   * @Description  *   * 随机奥特曼打小怪兽  *  ...

最新文章

  1. C++中使用Json的方法
  2. makefile 库目录
  3. java注销登录_java实现注销登录
  4. ieee latex 双栏_用Latex写学术论文: IEEE Latex模板和文档设置(\documentclass)
  5. Spring boot admin 升级到2.3.1 遇到的问题总结
  6. 培养“资源意识”,有助于职场晋升
  7. 突发!百度张亚勤退休
  8. 翻译Programming WCF Services第二版
  9. php如何触发html,html想触发php函数可以吗?
  10. funCode课程实训(C++ )
  11. 2019汤家凤高等数学强化班讲义
  12. 学生考勤系统设计mysql_学生考勤系统的设计与实现(Eclipse,MySQL)
  13. 活泼绵软的乐伽萌兔揉捏按摩背靠体验
  14. 淘宝/天猫:畅销榜 API 返回值说明
  15. 让机房温度可视化:物联网下的数据中心环境运维新方式
  16. Auto.js学习笔记1:开发需要准备什么工具和编程语言知识?
  17. 前端Vue.js框架是什么?有哪些特点?
  18. VR科普主题项目VR模拟体验设备VR科普馆
  19. 华为机试:DNA序列
  20. python print空格占位_python的占位格式符 %

热门文章

  1. Alonso Champions celebrate punishable approach will miss the European Super Cup
  2. 更改NISI打包的安装程序的安装界面
  3. python中冒号的使用
  4. Eureka注册中心配置
  5. R语言时间序列中时间年、月、季、日的处理
  6. 5V输入升压16.8V四串筋膜枪原理与筋膜枪软硬件方案PCBA方案
  7. 使用opencv按图片修改时间进行图片读取
  8. 《编码的秘密》读后感
  9. 新开博文,高兴的狠!心有猛虎,细嗅蔷薇。志在江山,细品清泉!
  10. webpack 源码泄露