Java完成迪迦奥特曼打小怪兽

简介: Java完成迪迦奥特曼打小怪兽

微信图片_20230701154344.png

迪迦奥特曼

package cfy.奥特曼;

/**

* 回合制游戏

  输出:

 ======== 第X回合 ========

  XXX凹凸曼 血量XXX  

     30%   60%    10%

  使用了 魔法攻击全体/普攻,XXX小怪兽/必杀,XXX小怪兽

  XXX小怪兽 血量XXX

  XXX小怪兽 血量XXX

  XXX小怪兽 血量XXX

  XXX小怪兽 血量XXX

  小怪兽使用了普攻

 

  凹凸曼血量为0,小怪兽胜利

  所有的小怪兽都死了,凹凸曼胜利

  凹凸曼 普攻和必杀不能攻击死了小怪兽 随机

         魔法无所谓 小怪兽的血量不能出现负数 0

  小怪兽 死了小怪兽不能攻击 0

* @author JKMaster

*

*/

public class Ultraman {

  private String name;

  private int hp;

 

 

  public Ultraman() {

super();

// TODO Auto-generated constructor stub

}

public Ultraman(String name, int hp) {

super();

this.name = name;

this.hp = hp;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getHp() {

return hp;

}

public void setHp(int hp) {

this.hp = hp;

}

//普通攻击

  public void Attack(Monster m) {

   //做一个伤害

   int injury = (int)(Math.random()*10+20);

   //获取小怪兽的血量

   //获取奥特曼的血量

   int hp = m.getHp();

   hp -= injury;

   //血量为0时怎么办

   if(hp>=0) {

    m.setHp(hp);

   }else {

    m.setHp(0);

   }

 

  }

//必杀攻击

  public void HugeAttack(Monster m) {

   //做一个伤害

   int injury = (int)(m.getHp()*0.75) > 60 ? (int)(m.getHp()*0.75) : 60;

   //获取小怪兽的血量

   //获取奥特曼的血量

   int hp = m.getHp();

   hp -= injury;

   //血量为0时怎么办

   if(hp>=0) {

    m.setHp(hp);

   }else {

    m.setHp(0);

   }

 

  }

  //魔法

  public void MagicAttack(Monster[] m) {

   for(Monster ms :m) {//数组里面

    int hp = ms.getHp();

    hp-= 30;

  //血量为0时怎么办

    if(hp>=0) {

     ms.setHp(hp);

    }else {

     ms.setHp(0);

    }

   }

 

 

  }

}

小怪兽

package cfy.奥特曼;

public class Monster {

private String name;

private int hp;

public String getName() {

 return name;

}

public void setName(String name) {

 this.name = name;

}

public int getHp() {

 return hp;

}

public void setHp(int hp) {

 this.hp = hp;

}

public Monster() {

 

 

}

public Monster(String name, int hp) {

 super();

 this.name = name;

 this.hp = hp;

}

public void Attack(Ultraman u) {

 //做一个伤害

    int injury = (int)(Math.random()*10+10);

 //获取奥特曼的血量

    int hp = u.getHp();

    hp -= injury;

    //血量为0时怎么办

    if(hp>=0) {

     u.setHp(hp);

    }else {

     u.setHp(0);

    }

}

}

package cfy.奥特曼;

public class Attack {

public static void main(String[] args) {

 

 Ultraman ultraman =  new Ultraman("迪迦奥特曼",1000);

 Monster monster1 = new Monster("食人魔甲",200);

 Monster monster2 = new Monster("食人魔乙",200);

 Monster monster3= new Monster("食人魔丙",200);

 Monster monster4 = new Monster("食人魔王",500);

 Monster[] m = {monster1,monster2,monster3,monster4};

 

 System.out.println(ultraman.getName()+"---"+ultraman.getHp());

 for(int i = 0;i<=3;i++)

 {

  System.out.println(m[i].getName()+"---"+m[i].getHp());

 }

 

 int n = 1;

 while (true) {

 

  System.out.println(ultraman.getName()+"血量是:"+ultraman.getHp());

  for(int mons=0;mons<=3;mons++)

  {

   System.out.println(m[mons].getName()+"血量是:"+m[mons].getHp());

  }

 

  System.out.println("=============第"+n+"回合=============");

 

  if(ultraman.getHp() == 0)

  {

   System.out.println("凹凸曼血量为0,小怪兽胜利");

   break;

  }else if((m[0].getHp()+m[1].getHp()+m[2].getHp()+m[3].getHp())==0)

  {

   System.out.println("所有的小怪兽都死了,凹凸曼胜利");

   break;

  }

 

  int order = (int) (Math.random() * 2); //区间是[0,1);

  if (order == 1) {

   int Ult = (int) (Math.random() * 10);

   if (Ult == 0 || Ult == 1 || Ult == 2) {

    System.out.println(ultraman.getName()+"使用了魔法攻击,攻击所有怪兽");

    ultraman.MagicAttack(m);

   } else if (Ult >= 3 && Ult <= 8) {

   

    int i = (int) (Math.random() * 4);

    System.out.println(ultraman.getName()+"使用了普通攻击,攻击了"+m[i].getName());

    ultraman.Attack(m[i]);

   } else {

    int j = (int) (Math.random() * 4);

    System.out.println(ultraman.getName()+"使用了必杀攻击,攻击了"+m[j].getName());

    ultraman.HugeAttack(m[j]);

   }

   for (int mon = 0; mon <= 3; mon++) {

   

    if(m[mon].getHp() == 0)

    {

     mon++;

    }else{

     System.out.println(m[mon].getName()+"使用了普通攻击");

     m[mon].Attack(ultraman);

    }

   }

  } else {

   for (int mon = 0; mon <= 3; mon++) {

   

    if(m[mon].getHp() == 0)

    {

     mon++;

    }else{

     System.out.println(m[mon].getName()+"使用了普通攻击");

     m[mon].Attack(ultraman);

    }

   }

   int Ult = (int) (Math.random() * 10);

   if (Ult == 0 || Ult == 1 || Ult == 2) {

    System.out.println(ultraman.getName()+"使用了魔法攻击,攻击所有怪兽");

    ultraman.MagicAttack(m);

   } else if (Ult >= 3 && Ult <= 8) {

    int i = (int) (Math.random() * 4);

    System.out.println(ultraman.getName()+"使用了普通攻击,攻击了"+m[i].getName());

    ultraman.Attack(m[i]);

   } else {

    int j = (int) (Math.random() * 4);

    System.out.println(ultraman.getName()+"使用了必杀攻击,攻击了"+m[j].getName());

    ultraman.HugeAttack(m[j]);

   }

  }

 

  for(int change = 0;change <= 3;change++)

  {

   if(m[change].getHp() < 0)

   {

    m[change].setHp(0);

   }

  }

 

  n++;

 

 }

 

 

}

}

结果图

微信图片_20230701154617.png

相关文章
|
2月前
|
存储 安全 Java
【Java每日一题】——第三十二题:思考应用题
【Java每日一题】——第三十二题:思考应用题
21 0
|
7月前
|
安全 Java 程序员
java 程序员 和 三八女神节有什么神秘的关系,你晓得吗? 用Java 给女神绘制一张贺卡你会吗?
java 程序员 和 三八女神节有什么神秘的关系,你晓得吗? 用Java 给女神绘制一张贺卡你会吗?
56 0
java 程序员 和 三八女神节有什么神秘的关系,你晓得吗? 用Java 给女神绘制一张贺卡你会吗?
|
8月前
|
安全 Java 编译器
Java之一 Java语 言 的 产 生 及 其 特 点
Java之一 Java语 言 的 产 生 及 其 特 点
29 0
|
10月前
|
Java
【Java】 三国大乱斗部分代码
【Java】 三国大乱斗部分代码
83 0
|
11月前
|
算法 Java
蓝桥杯 算法提高 超级玛丽 (Java)
蓝桥杯 算法提高 超级玛丽 (Java)
59 0
|
12月前
|
Oracle Java 关系型数据库
一些杂想:Java老矣,尚能饭否?
本文就Java真的老了吗展开讲述,诠释了作者作为一名Java开发者的所思所感。
8182 2
|
设计模式 算法 Java
你见过哪些目瞪口呆的 Java 代码技巧? 下
你见过哪些目瞪口呆的 Java 代码技巧? 下
|
IDE 前端开发 JavaScript
你见过哪些目瞪口呆的 Java 代码技巧? 上
你见过哪些目瞪口呆的 Java 代码技巧? 上
|
Java C++ Python
蓝桥公园——JAVA
蓝桥公园——JAVA
57 0
|
Java
java 编程习题 之 猴子偷桃
题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?
79 0
java 编程习题 之 猴子偷桃