“奥特曼攻打小怪兽”java学习打怪升级第一步

时间:2023-03-09 04:18:07
“奥特曼攻打小怪兽”java学习打怪升级第一步

---恢复内容开始---

练习:回合制对战游戏:奥特曼和小怪兽进行PK,直到一方的血量为0时结束战斗,输出谁胜利了!

不难看出场景中有两个对象:”奥特曼“这一对象抽象为”Ao"类;

                 “小怪兽”这一对象抽象为“Master”类;

找出场景中的对象以及对象的特征和行为:

            奥特曼:特征(属性):名字,血量,攻击力;

行为:攻打小怪兽;

            小怪兽:特征(属性):名字,血量,攻击力;

                行为:攻打奥特曼;

弄清楚这些基本概念,开始着手新建一个AO类,代码如下:

  public class Ao

{
  public String name;
  public int attack;
  public int blood;
  public void attack(Master m)  //小怪兽的行为:小怪兽攻击奥特曼

{

    m.blood-=attack;   //m.blood=m.blood-attack。或者也可以写成:m.blood--,那么在主函数中设定的attack的值就没有作用了

  System.out.println(name+"正在攻击"+m.name+","+m.name+"剩余的血量是"+m.blood);
  if(m.blood<=0)

{
  System.out.println(name+"胜利!");
  }
  }
  }

接下来新建一个Master类,代码如下:

  public class Master

{
  public String name;
  public int attack;
  public int blood;
  public void attack(Ao a)

{
  a.blood-=attack;
  System.out.println(name+"正在攻击"+a.name+","+a.name+"剩余的血量是"+a.blood);
  if(a.blood<=0)

{
  System.out.println(name+"胜利!");
  }
  }
  }

最后创建一个主函数,即Manger类,代码如下:

  public class Manger

{
  public static void main(String [] args)

{
  Ao a = new Ao();
  a.name = "奥特曼";
  a.attack = 3;
  a.blood = 30;
  Master m = new Master();
  m.name ="小怪兽";
  m.attack = 2;
  m.blood = 30;
  while(a.blood>0&&m.blood>0)

{
  a.attack(m);
  if(m.blood<=0)

{
  break;    //防止出现当小怪兽的血量为零时,继续输出“小怪兽攻打奥特曼”
  }
  m.attack(a);
  if(m.blood<=0)

{
  break;
  }

  }

  }
  }

容易犯的小错误:

1在编译的时候要保障与类名一致;(记住要大写);

2"a.blood()>0"这种表达是错误的,因为blood是公共的,它不是私人的,不需要带括号。

我的小感悟:

虽然这是一个简单的java程序,但是我花了3个小时去实现它,我不是一个具有灵敏的理工思维的学生,但是我相信勤能补拙!加油,java小菜鸟!

“奥特曼攻打小怪兽”java学习打怪升级第一步

“奥特曼攻打小怪兽”java学习打怪升级第一步

---恢复内容结束---