zoukankan      html  css  js  c++  java
  • “奥特曼攻打小怪兽”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小菜鸟!

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

  • 相关阅读:
    [APM] OneAPM 云监控部署与试用体验
    Elastic Stack 安装
    xBIM 综合使用案例与 ASP.NET MVC 集成(一)
    JQuery DataTables Selected Row
    力导向图Demo
    WPF ViewModelLocator
    Syncfusion SfDataGrid 导出Excel
    HTML Table to Json
    .net core 2.0 虚拟目录下载 Android Apk 等文件
    在BootStrap的modal中使用Select2
  • 原文地址:https://www.cnblogs.com/java-7/p/5513778.html
Copyright © 2011-2022 走看看