您的位置:首页 > 编程语言 > Java开发

[基础题] 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);
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 面向对象
相关文章推荐