回合对战制游戏第一篇(初识java)

回合对战制游戏第一篇

一,所谓的java。

  • java是一门完全面向对象的编程语言,而之前所接触到的C语言是一门面向有一个过程的语音,对于两个的区别应该有一个清楚的认识。
  1. java的第一个内容。
  • 类和对象时面向对象编程的基础核心。

(一)对象:

  1. 定义:生活中的对象都可以作为程序中的对象,也就是只要是一个具体的物体或者一个具体的事物都可以抽象的描述为一个对象。我们所想所做的任何一件事物中涉及到的事物就是一个对象。应注意的是,对象的单位一定是一。例如:某一台手机,某一个人,只能是某一个具体的。
  2. 2,对象的描述:对象要从他的特征和行为进行描述。
  • 例如:某一个人
  • 特征:姓名、身高、体重、性别、健康状况、颜值、…
  • 行为:吃饭、睡觉、走路、上网、瑜伽、跑步、...

(二)类:

  • 类是根据对象来定义的。
  1. 在生活中根据对象的相似的特征和相识的行为进行归类。在程序中,同理,类是根据生活中对象的特征以及行为(功能),按照程序中类的固定格式进行的抽象定义。
  • 类的构成:
  • 程序中的类是有两个部分组成:1.属性  2.方法
  1. 属性是由对象的特征进行定义的。
  2. 方法是由对象的行为(功能)进行定义的。
  • 程序中的类就是一个模板。那对象就是要在模板中添加的内容。
  • 为了添加对象,所以必须设置合适的类。

(三)类的基本格式

public class 类名 {

//属性的格式

public 数据类型 属性名;

//方法的格式

public 返回值的类型 方法名(数据类型 参数名,...){

}

}

  • 实例化对象和调用方法属性的格式
  • 实例化对象的关键字:new

格式:

类名  对象名  = new 类名();

  • 调用方法和属性的格式:

对象名.属性名

对象名.方法名(参数值,...);

(四)构造方法:

  • 构造方法是一种特殊的方法,它是一个与类同名且没有返回值类型的方法。对象的创建就是通过构造方法来完成,其功能主要是完成对象的初始化。当类实例化一个对象时会自动调用构造方法。构造方法和其他方法一样也可以重载。
  • 方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数。调用重载方法时,Java编译器能通过检查调用的方法的参数类型和个数选择一个恰当的方法。方法重载通常用于创建完成一组任务相似但参数的类型或参数的个数不同的方法。  方法重载是让类以统一的方式处理不同类型数据的一种手段。Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。调用方法时通过传递给它们的不同个数和类型的参数来决定具体使用哪个方法。

二.回合对战

  1. 回合对战制游戏:奥特曼和小怪兽进行PK,直到一方的血量为0时结束战斗,输出谁胜利了!
  • 找出场景中的对象以及对象的特征和行为:

对象:奥特曼:

特征:姓名,血量,

行为:战斗,血量减少

小怪兽:

特征:姓名,血量,

行为:战斗,血量减少

  • 根据对象的特征和行为以及类的固定格式去定义类:

建立的对象:奥特曼的类:Hero

小怪兽的类:Monster

  • 定义类,在类中定义主函数

在主函数中实例化Hero和Monster的对象,调用属性和方法。

思路:1,奥特曼打一次小怪兽,小怪兽的血量减1;

小怪兽打一次奥特曼,奥特曼的血量同样减1;

2.利用for 和if循环实现攻击,当i为奇数是,小怪兽打奥特曼,当i为偶数时,奥特曼打小怪兽。

主函数:

public class manager{

     public  static void main(String [] args){

              Monster a=new Monster();

              a.name="小怪兽";

              a.bloodValue=10;

              Hero s=new Hero();

              s.name="奥特曼";

              s.bloodValue=20;

          for(int i=0;;i++){

                 if(i%2==0){

                        s.fight(a);

             if(a.bloodValue == 0){

                 break;

             }

                 } else{

                        a.fight(s);

             if(s.bloodValue == 0){

                 break;

             }

          }  

      }

       }  

}

manager

Hero:

public class Hero{

     public int bloodValue;

     public String name;

     public void fight(Monster mon){

          mon.bloodValue--;

          System.out.println(name+"正在和"+mon.name+"战斗,"+mon.name+"剩余的血量是"+ mon.bloodValue);

           if(mon.bloodValue<=0){

                   System.out.println(name+"赢了");

                                  }              

            }

}

Hero

Monster:

public class Monster{

      public int bloodValue;

      public String name;

      public void fight(Hero her){

          her.bloodValue--;

           System.out.println(name+"正在和"+her.name+"战斗"+her.name+"的剩余的血量是"+ her.bloodValue);

           if(her.bloodValue<=0){

                   System.out.println(name+"赢了");

           }                

      }

}

Monster

(六)结果:

回合对战制游戏第一篇(初识java)


三.注意点:

  1. 编程中符号都是英文的;
  2. 编程中应该注意格式,对齐。注意“;”的使用。要留心细节。
  3. 对于单行注释//,和多行/*……*/的正确使用。
  4. break和continue的使用,break是跳出整个循环,continue只是跳出一次循环。
  5. 注意大小写,类名和包名应一致。
上一篇:Coursera台大机器学习技法课程笔记11-Gradient Boosted Decision Tree


下一篇:Coursera台大机器学习技法课程笔记02-Dual Support Vector Machine