java战士对打,Java 法师与战士

//父类

public abstract class Role {//抽象类

private String name;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public Role(){

}

public abstract int attack();//父类的抽象方法

}

//子类

//法师

public class Magicer extends Role {

private int lv;

public int getLv() {

return lv;

}

public Magicer(String name,int lv){

super.setName(name);//将传递进来的参数赋值给父类的name

this.lv=lv;

}

public Magicer(){

}

public void setLv(int lv) {

this.lv = lv;

}

public int attack(){

return  getLv()*5;//计算法师的伤害

}

}

//战士

public class Soldier extends Role {

private int hurt;

public int getHurt() {

return hurt;

}

public void setHurt(int hurt) {

this.hurt = hurt;

}

public Soldier(){

}

public Soldier(String name,int hurt){

super.setName(name);//将传递进来的name参数赋值给父类的name中

this.hurt=hurt;

}

public int attack(){//计算战士的伤害

return getHurt();

}

}

//team类

public class Team {

Role [] r=new Role [6];//创建Role 类型的数组对象

int i=0;

int sum=0;

public void addMember(Role role ){

if(i<6){ //超过六个则不再添加

r[i]=role;//将参数的值赋值给第i+1个数组。

i++;

}

else{

System.out.println("组队人数已达上限。");

}

}

public int attackSum(){

for(int j=0;j

sum+=r[j].attack();//计算伤害的总和。

}

return sum;

}

}

//测试类

import java.util.Scanner;

public class Test {

//多态。

Role rm=new Magicer();

Role rs=new Soldier();

Magicer m=new Magicer();

Soldier s=new Soldier();

Team t=new Team();

Scanner sc=new Scanner(System.in);

boolean a=true;

public static void main(String[] args) {

Test t1=new Test();

t1.add();//调用创建角色的方法

}

public void add(){//创建角色的方法

do{

System.out.println("请输入你要创建的角色:战士or法师");

String str=sc.next();

if(str.equals("法师")){//创建法师的语句

System.out.println("请创建法师的名字:");

String name1=sc.next();

rm.setName(name1);//将name赋值给法师类中的名字

System.out.println("法师的等级:");

int lv=sc.nextInt();

m.setLv(lv);//将lv赋值给法师类中的等级

System.out.println("成功创建"+m.getLv()+"级的法师"+rm.getName()+"\n其伤害值为:"+m.attack());

System.out.println("是否继续创建:");

String str1=sc.next();

if(str1.equals("是")){

a=true;

}else{

a=false;

}

}else if(str.equals("战士")){//创建战士的语句

System.out.println("请创建战士的名字及其攻击力:");

String  name2=sc.next();

int  hurt=sc.nextInt();

rs.setName(name2);

s.setHurt(hurt);

System.out.println("成功创建战士"+rs.getName()+"\n其伤害值为:"+s.attack());

System.out.println("是否继续创建:");

String str1=sc.next();

if(str1.equals("是")){

a=true;

}else{

a=false;

}

}

else{

System.out.println("输入有误请重新输入");

}

}while (a);

System.out.println("组队可以升级更快");

do{//循环语句来添加队友

System.out.println("是否开启组队功能继续添加名队友?");

String add=sc.next();

if(add.equals("是")){

System.out.println("请输入你要组队人物的职业:");

String type=sc.next();

if(type.equals("法师")){

System.out.println("请输入该法师的姓名及等级:");

String name=sc.next();

int lv=sc.nextInt();

Magicer m1=new Magicer(name,lv); //将名字和等级赋值给Magicer类中带有参数name和lv的的方法

t.addMember(m1);

t.attackSum();

}

else{

System.out.println("请输入该战士的姓名和攻击力:");

String name =sc.next();

int hurt=sc.nextInt();

Soldier s1=new Soldier(name,hurt);//同法师一样

t.addMember(s1);

t.attackSum();

}}

else{

System.out.println("该队伍的总伤害为:"+t.attackSum())    ;//输出伤害的总和

System.out.println("适当放松,请勿沉迷游戏");

break;

}}while(true);

}

}

1396ff2e71ca6034c0f9d450f1667165.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值