简单的奥特曼打小怪兽
奥特曼打小怪兽
需求
创建两个类,一个奥特曼类,一个怪兽类, 分别有各自对应的属性和方法
编写一个测试类,实现奥特曼与怪兽的创建,并让他们两个互相攻击,最后给出胜利结果
说明
奥特曼
属性:
血量
攻击力
行为:
攻击小怪兽
详细代码
奥特曼类
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("奥特曼赢了");}}
}
总结
在奥特曼与小怪兽相互攻击时,需要传入对应的对象,如在奥特曼攻击怪兽的时候,传入了要攻击的怪兽对象
在奥特曼攻击怪兽时,调用了怪兽自己的减血方法,这样不会破坏封装对象的原则,只能自己修改自己的属性。
简单的奥特曼打小怪兽相关推荐
- java奥特曼对战小怪兽_“奥特曼攻打小怪兽”java打怪升级第一步
练习:回合制对战游戏:奥特曼和小怪兽进行PK,直到一方的血量为0时结束战斗,输出谁胜利了! 不难看出场景中有两个对象:"奥特曼"这一对象抽象为"Ao"类: &q ...
- JAVA继承:奥特曼打小怪兽
一.继承的基础知识: 1.类的继承的作用: 1)提高代码的重用性. 2)提高程序的扩展性. 简单来说,就是减少代码长度,减少工作量,工程量较小的时候,体现不出继承的优点,但是如果工程量很大的时候,比如 ...
- Python——用面相对象写奥特曼大战小怪兽
一,知识点 基本的面向对象知识 理解继承,多态,封装,不会的小伙可以看这篇超详细教程 了解基本的装饰器知识不会的小伙伴可以看这个讲解 ** 二,代码(奥特曼大战小怪兽) from abc import ...
- java奥特曼对战小怪兽_JAVA程序设计(09)-----面对对象设计初级应用 奥特曼打小怪兽...
1.一个奥特曼固定属性 4个小怪兽随机名字 随机属性 奥特曼有几率发动暴风雪技能 对所有小怪兽造成 50%~60%冰霜伤害 无视防御力 普通攻击伤害为 攻击力*80~120% - 对方防御力*60%~ ...
- Scala - 小项目 - 奥特曼打小怪兽
一.项目描述 奥特曼 1个名字血量普通 必杀 一次只能打1只魔法 所有奥特曼的攻击 10%必杀 30%魔法 60%普攻小怪兽 4只名字血量普通 回合制游戏示例输出: ======== 第1回合 === ...
- 奥特曼和小怪兽的故事
"妈妈,妈妈,"小怪兽问,"我什么时候才能长大呢?" 正做饭的怪兽妈妈和蔼地问:"干吗想长大呀,做妈妈的乖宝宝不好吗?" "长大了 ...
- 【python】奥特曼打小怪兽文字游戏
设计基本思路: 设置一个抽象类(FighterFighterFighter),用来初始化奥特曼与小怪兽的基本属性(name,hpname,hpname,hp);同时设置一个抽象类方法(attackat ...
- java基础练习之奥特曼打小怪兽
/******************外星人公共类******************/ public class Aliens { // 外星人姓名 private String n ...
- java面向对象之对象数组练习“奥特曼打小怪兽混战”
import java.util.Arrays; import day10.homework.Aliens; /** * * @Description * * 随机奥特曼打小怪兽 * ...
最新文章
- C++中使用Json的方法
- makefile 库目录
- java注销登录_java实现注销登录
- ieee latex 双栏_用Latex写学术论文: IEEE Latex模板和文档设置(\documentclass)
- Spring boot admin 升级到2.3.1 遇到的问题总结
- 培养“资源意识”,有助于职场晋升
- 突发!百度张亚勤退休
- 翻译Programming WCF Services第二版
- php如何触发html,html想触发php函数可以吗?
- funCode课程实训(C++ )
- 2019汤家凤高等数学强化班讲义
- 学生考勤系统设计mysql_学生考勤系统的设计与实现(Eclipse,MySQL)
- 活泼绵软的乐伽萌兔揉捏按摩背靠体验
- 淘宝/天猫:畅销榜 API 返回值说明
- 让机房温度可视化:物联网下的数据中心环境运维新方式
- Auto.js学习笔记1:开发需要准备什么工具和编程语言知识?
- 前端Vue.js框架是什么?有哪些特点?
- VR科普主题项目VR模拟体验设备VR科普馆
- 华为机试:DNA序列
- python print空格占位_python的占位格式符 %