[基础题] 5.(*)按如下要求编写Java应用程序:(1)编写一个用于表示战斗能力的接口Fightable,
2017-11-23 16:28
676 查看
/*5.(*)按如下要求编写Java应用程序:
(1)编写一个用于表示战斗能力的接口Fightable,
该接口包含:整型常量MAX;
方法void win(),用于描述战斗者获胜后的行为;
方法int injure(int x),用于描述战斗者受伤后的行为。
(2)编写一个非抽象的战士类Warrior,实现接口Fightable。
该类中包含两个整型变量:经验值experience和血液值blood。
当战士获胜后经验值会增加,而受伤后血液值会减少x,
并且当战斗者的血液值低于MAX时会输出危险提示。
(3)编写战士类Warrior的子类BloodWarrior,
该类创建的战士在血液值低于MAX/2时才会输出危险提示。
(4)编写主类TestWarrior,对上述接口和类进行测试。
* */
//胜利的话 :血液不变,经验+10
//受伤的话 :血液-10;
//如果血液低于30提示危险,等于就提示(死亡)K.0
//输入Pk回合数,输入PK结果,"y代表胜利,n代表受伤"
//拓展功能:当经验值满100时,等级+1,初始化血液100,经验值初始化为0
import java.util.Scanner;
public class Test_05 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
BloodWarrior s1 = new BloodWarrior();
s1.blood = 100;//初始血液值
System.out.print("请输入回合数:");
int bout = sc.nextInt();
System.out.println("请输入Pk结果 (y胜利/n受伤):");
char PK = sc.next().charAt(0);
s1.pk(PK, bout);
}
}
interface Fightable {
int max = 30;// 危险值
void win();// 用于描述战斗者获胜后的行为
int injure(int x);// 用于描述战斗者受伤后的行为
}
class Warrinor implements Fightable {
int blood;// 定义血液值
int experience;// 定义经验值
int grade;
public void win() {
};
public int injure(int x) {
return x;
}
}
class BloodWarrior extends Warrinor {
public void win() {
experience += 10;
System.out.println("血液值:" + blood + "/经验值:" + experience+"/等级:"+grade);
if(experience == 100){
grade += 1;
experience=0;
blood = 100 ;
System.out.println("恭喜!等级提升!"+"等级:"+grade);
}
}
public int injure(int x) {
if (blood <= max) {
System.out.println("*危险!血液值过低,请及时补血!");
}// + "血液值:" + blood + "/经验值:" + experience+"/等级:"+grade
blood -= x;
System.out.println("受伤/血液值:" + "-" + x + "\t 剩余血液值:" + blood + "/经验值:" + experience+"/等级:"+grade);
// if(grade <= 0 && blood == 0){
if (blood == 0) {
System.out.println("K.O");// knock out
System.exit(0);//想直接整个程序的结束用System.exit(0);
// }
}return blood;
}
public void pk(char PK, int bout) {
for (int i = 1; i <= bout; i++) {
if (PK == 'y') {
win();
}
if (PK == 'n') {
injure(10);
}
}
}
}
(1)编写一个用于表示战斗能力的接口Fightable,
该接口包含:整型常量MAX;
方法void win(),用于描述战斗者获胜后的行为;
方法int injure(int x),用于描述战斗者受伤后的行为。
(2)编写一个非抽象的战士类Warrior,实现接口Fightable。
该类中包含两个整型变量:经验值experience和血液值blood。
当战士获胜后经验值会增加,而受伤后血液值会减少x,
并且当战斗者的血液值低于MAX时会输出危险提示。
(3)编写战士类Warrior的子类BloodWarrior,
该类创建的战士在血液值低于MAX/2时才会输出危险提示。
(4)编写主类TestWarrior,对上述接口和类进行测试。
* */
//胜利的话 :血液不变,经验+10
//受伤的话 :血液-10;
//如果血液低于30提示危险,等于就提示(死亡)K.0
//输入Pk回合数,输入PK结果,"y代表胜利,n代表受伤"
//拓展功能:当经验值满100时,等级+1,初始化血液100,经验值初始化为0
import java.util.Scanner;
public class Test_05 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
BloodWarrior s1 = new BloodWarrior();
s1.blood = 100;//初始血液值
System.out.print("请输入回合数:");
int bout = sc.nextInt();
System.out.println("请输入Pk结果 (y胜利/n受伤):");
char PK = sc.next().charAt(0);
s1.pk(PK, bout);
}
}
interface Fightable {
int max = 30;// 危险值
void win();// 用于描述战斗者获胜后的行为
int injure(int x);// 用于描述战斗者受伤后的行为
}
class Warrinor implements Fightable {
int blood;// 定义血液值
int experience;// 定义经验值
int grade;
public void win() {
};
public int injure(int x) {
return x;
}
}
class BloodWarrior extends Warrinor {
public void win() {
experience += 10;
System.out.println("血液值:" + blood + "/经验值:" + experience+"/等级:"+grade);
if(experience == 100){
grade += 1;
experience=0;
blood = 100 ;
System.out.println("恭喜!等级提升!"+"等级:"+grade);
}
}
public int injure(int x) {
if (blood <= max) {
System.out.println("*危险!血液值过低,请及时补血!");
}// + "血液值:" + blood + "/经验值:" + experience+"/等级:"+grade
blood -= x;
System.out.println("受伤/血液值:" + "-" + x + "\t 剩余血液值:" + blood + "/经验值:" + experience+"/等级:"+grade);
// if(grade <= 0 && blood == 0){
if (blood == 0) {
System.out.println("K.O");// knock out
System.exit(0);//想直接整个程序的结束用System.exit(0);
// }
}return blood;
}
public void pk(char PK, int bout) {
for (int i = 1; i <= bout; i++) {
if (PK == 'y') {
win();
}
if (PK == 'n') {
injure(10);
}
}
}
}
相关文章推荐
- [基础题] 6.(*)按如下要求编写Java程序: (1)编写一个接口:OneToN,只含有一个方法int dispose(int n)
- [基础题]8.(*)按如下要求编写Java程序:(1)定义一个交通工具收费接口Charge
- 5.编写一个java程序,该程序有两个类:Tank(用于刻画坦克)和Fight(主类)。 已知坦克类如下:
- java十二周实验.编写一个应用程序,要求编写一个Panel的子类MyPanel,MyPanel中有一个文本框和一个按钮,要求MyPanel的实例作为其按钮的ActionEvent事件的监视器,当单击
- 多态部分作业 1.按要求编写Java程序:(1)编写一个接口:InterfaceA,只含有一个方法int method(int n);
- [基础题] 7.第二种(*)按如下要求编写Java程序:
- JAVA--第十二周任务之1.编写一个应用程序,要求编写一个Panel的子类MyPanel,MyPanel中有一个文本框和一个按钮,要求MyPanel的实例作为其按钮的ActionEvent事件的监视
- Rhino 是一个完全使用Java语言编写的开源JavaScript实现。Rhino通常用于在Java程序中,为最终用户提供脚本化能力。它被作为J2SE 6上的默认Java脚本化引擎。
- 定义一个“点”(Point)类用来表示三维空间中的点(有三个坐标)。要求如下: (1)可以生成具有特定坐标的点对象。 (2)提供可以设置三个坐标的方法。 (3)提供可以计算该“点”距原点距离平方的方法。 (4)编写主类程序验证。
- [基础题] 7.第一种(*)按如下要求编写Java程序:
- Java--第十三周实验--任务0--编写一个简单的Java应用程序
- 编写一个java应用程序,用户从输入对话框输入两个日期,程
- java小练习(一个数如果恰好等于它的因子之和,这个数就称为“完数”。编写应用程序,求1000之内的所有完数。)
- 10、 java 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 要求不能出现截半的情况
- 编写一个JAVA应用程序,用户从键盘只能输入整数,程序输出这些整数的乘积
- java十三周封装一个求一元二次方程根的类SquareEquation,要求考虑解方程的异常,再编写一个窗口类EquationFrame。要求窗口使用三个文本框和一个文本区,其中三个文本框用来显示生更
- 猜数字游戏。编写一个Java应用程序,实现功能:
- JAVA--第12周实验--任务1--编写一个Panel的子类MyPanel,要求MyPanel的实例作为其按钮的ActionEvent事件的监视器
- 2. 编写一个Java应用程序,用户从键盘输入一个1~9999之间的数,程序将判断这个数是几位数,并判断这个数是否是回文数。回文数是指将该数含有的数字逆序排列后得到的数和原数相同,例如12121、32
- 编写一个控制台应用程序,要求用户输入5个大写字母,如果用户输入的信息不满足要求,提示帮助信息并要求重新输入