金刚大招哥斯拉

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();


    }



猜你喜欢

转载自blog.csdn.net/weixin_69218754/article/details/126267772