public class Game {//游戏角色类 private int Blood =500;//血量 private int gjil =40;//攻击力 private int fangyu=5 ;//防御力 private int rate=20;//暴击率 public Game(int Blood,int gjil ,int fangyu ,int rate ){//构造方法重载 this.Blood=Blood; this.gjil=gjil; this.fangyu=fangyu; this.rate = rate; } public Game(){ }//默认的构造方法 public int getBlood() { return Blood; } public void setBlood(int blood) { Blood = blood; } public int getGjil() { return gjil; } public int getFangyu() { return fangyu; } public int getRate() { return rate; } public void setRate(int rate) { this.rate = rate; } public void Q(){//q技能 System.out.println("我是Q技能"); } public void W(){//W技能 System.out.println("我是W技能"); } public void E(){//E技能 System.out.println("我是E技能"); } public void R(){//R技能 System.out.println("我是R技能"); } public void pt(){//普通攻击 System.out.println("我是普通攻击"); } }
public class Gesila extends Game{//哥斯拉 Game game1 = new Game(800,30,5,20);//哥斯拉 @Override public void Q() { System.out.println("哥斯拉释放Q技能噬魂痛击"); } @Override public void W() { System.out.println("哥斯拉释放W技能枯萎"); } @Override public void E() { System.out.println("哥斯拉释放E技能灵魂燃烧"); } @Override public void R() { System.out.println("哥斯拉"); } @Override public void pt() { System.out.println("哥斯拉释放普通攻击"); } }
public class Jinggang extends Game{//金刚类继承游戏类 Game game = new Game(500,50,17,20);//金刚 @Override public void Q() { System.out.println("金刚释放Q技能大杀四方"); } @Override public void W() { System.out.println("金刚释放W技能致残打击"); } @Override public void E() { System.out.println("金刚释放E技能无情铁手"); } @Override public void R() { System.out.println("金刚释放R技能洛克萨斯断头台"); } @Override public void pt() { System.out.println("金刚释放普通攻击"); } }
public class Play {//d对战类 Jinggang jinggang = new Jinggang();//实列化一个金刚 Gesila gesila= new Gesila();//实列化一个哥斯拉 public void show(){ int number ;//哥斯拉造成的伤害值攻击力减防御力 int number1;//金刚造成的伤害值攻击力减防御力 boolean fina = true; int aaa = 1;//回合次数 System.out.println("************游戏开始****************"); System.out.println("金刚血量为"+jinggang.getBlood()+"\t攻击力为"+jinggang.getGjil()+"\t防御力为"+jinggang.getFangyu()+"\t暴击率为"+jinggang.getRate()+" "); System.out.println("哥斯拉血量为"+gesila.getBlood()+"\t攻击力为"+gesila.getGjil()+"\t防御力为"+gesila.getFangyu()+"\t暴击率为"+gesila.getRate()+" "); while (fina){ System.out.println("************第"+(aaa++)+"回合****************"); Random random = new Random(); int num =random.nextInt(5)+1;//随机生成1-5 if(num==1){ jinggang.Q();//如果随机数是1就使用Q技能 }else if(num==2){ jinggang.W(); } else if(num==3){ jinggang.E(); } else if(num==4){ jinggang.R(); } else if(num==5){ jinggang.pt(); } number1 =gesila.getGjil()-gesila.getFangyu(); //造成的伤害值攻击力减防御力 if(number1==5)//如果随机数等于5就暴击 20%的暴击率 { number=(gesila.getGjil()-gesila.getFangyu())*2;//暴击哥斯拉的攻击力减防御力乘以2 } int xueliang2 =jinggang.getBlood()-number1; jinggang.setBlood(jinggang.getBlood()-number1); System.out.println("造成"+number1+"点伤害,当前还剩下 "+xueliang2+" 血量"); Random random1 = new Random(); int num1 =random.nextInt(5)+1;//随机生成1-5 if(num1==1){ gesila.Q(); }else if(num1==2){ gesila.W();//如果随机数是2就使用W技能 } else if(num1==3){ gesila.E();//如果随机数是3就使用E技能 } else if(num1==4){ gesila.R();//如果随机数是4就使用R技能 } else if(num1==5){ gesila.pt();//如果随机数是5就使用普通攻击 } number =jinggang.getGjil()-jinggang.getFangyu(); //造成的伤害值攻击力减防御力 if(num1==5)//如果随机数等于5就暴击 2 0%的暴击率 { number=(jinggang.getGjil()-jinggang.getFangyu())*2;//攻击力减防御力乘以2 } int xueliang1 =gesila.getBlood()-number; gesila.setBlood(gesila.getBlood()-number); System.out.println("造成"+number+"点伤害,当前还剩下 "+xueliang1+" 血量\n"); if (gesila.getBlood()<0){ System.out.println("胜负已定"); if(gesila.getBlood()>jinggang.getBlood()){//如果哥斯拉血量大于金刚, System.out.println(" 哥斯拉胜利"); fina=false; }else { System.out.println("金刚胜利"); fina=false; } } } } }
public class Test_Game {//流程控制方法 public static void main(String[] args) { Play play = new Play(); play.show(); }