Java练习之奥特曼打怪兽(回合制)
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练习之奥特曼打怪兽(回合制)相关推荐
- 用Python做一个奥特曼打怪兽的小游戏
话不多说,往下看吧! 引入需要的模块 from sprites import * from pygame import mixer 设置页面格式(宽高等等) width,height = 800,60 ...
- Python奥特曼打怪兽射击游戏(基于海龟画图创作的作品,来自Python创意编程100例sprites篇_Python精灵模块)
相信这竟然是Python用海龟画图制作的作品吗? sprites模块就是用python的turtle模块开发的!所以本作品仍属于Python海龟画图作品 """奥特曼打怪 ...
- Python奥特曼打怪兽射击游戏,基于海龟画图创作的作品
相信这竟然是Python用海龟画图制作的作品吗? sprites模块就是用python的turtle模块开发的!所以本作品仍属于Python海龟画图作品 """奥特曼打怪 ...
- java新手上路(二):奥特曼打怪兽
环境如下: 回合制对战游戏:奥特曼和小怪兽进行PK,直到一方的血量为0时,结束战斗输出谁胜利了. 分析:奥特曼和怪兽属于characters类的对象automan和monster. 定义该类的成员变量 ...
- JS奥特曼打怪兽(纯享文档版)
**思路分析:**先用函数和this创建一个壳子,将怪兽和奥特曼的属性写上,之后要像回合制游戏那样,你一轮我一轮这样打下去,然后在判断谁的HP=0就停止所以在写攻击的方式(impact)然后循环一直到 ...
- Python新手经典案例之奥特曼打怪兽-lol版
本人新人入门Python 老师布置的作业打怪兽,本人参考了大佬们的杰作然后完成了下方的适合新手入门的版本,与大家分享! 第一步:新建Python包,创建文件 注意:需要有_init_.py这个py文件 ...
- java模板/策略模式打怪兽
目录 小故事: 一起打怪兽 模板&策略模式 常规方式 模板模式 策略模式 相似: 差异: 小故事: 一起打怪兽 有个记者去光之国采访一群奥特曼,他问迪迦奥特曼:"你每天都干什么?&q ...
- JAVA 面向对象编程练习(一个回合制的战斗游戏:战士,骑兵,法师,电脑互相攻击)
文章目录 一. 小编有话说 二. 游戏的要求 三. 编程前的准备 四. 代码及详细注释 五. 结果 一. 小编有话说 前面一篇文章写了JAVA面向对象编程的思想,本文主要展示关于面向对象编程的实例(一 ...
- Python小案例:回合制奥特曼打怪兽游戏
from abc import ABCMeta, abstractmethod from random import randint, randrange import timeclass Fight ...
最新文章
- 荣耀手机都不更新鸿蒙系统吗,华为EMUI不会更新了!直接升级鸿蒙系统,荣耀手机也不会放弃...
- 关于telnet: connect to address 190.168.6.6: No route to host 报错处理
- python yield from_简述 yield 和 yield from
- 一图说清:做数据分析,到底要懂多少业务知识?
- Linux命令:修改文件权限命令chmod、chgrp、chown详解
- Atitit 表达式原理 语法分析 原理与实践 解析java的dsl 递归下降是现阶段主流的语法分析方法
- Pandas快乐学习之上海机动车牌照拍卖
- 如何用计算机直接做工资表,超简单一招!用Excel十秒快速制作工资条
- windows tcpdump
- 三星 SGH-I900/I908修改生产日期
- gcc编译工具常用命令以及汇编语言
- 专业mac绘图软件:FireAlpaca for Mac
- android.view.WindowLeaked解决办法
- 10本好书读物推荐,职场管理者必读,建议收藏
- 【mysql】gh-ost使用说明
- linux如何停止自启动运行脚本
- vivado生成mig_Vivado下MIG核仿真指导手册 -
- CSS3的字体和文本相关属性
- 电子合同改变传统采购方式,君子签助力政企采购更加高效便捷
- php如何匹配,如何用PHP 正则匹配