利用Java基础知识做个练习

学习内容:

利用Java基础知识做个练习

前言

学习 JAVA 大数据:“钱”景无限

文章目录

一:游戏场景

二:构建YingXiong类

三:构建Test03类

一:游戏场景:

我方三个游戏人物,分别去攻击对方的一个游戏人物
已知:1.这三个游戏人物都有名字分别是:貂蝉,刘备,关羽
        2.对方游戏人物为:曹操
        3.游戏人物有3个属性:
        *  名字,血量(统一100),攻击
        *  且貂蝉的攻击力为10
        *  刘备攻击力为20
        *  关羽攻击力为50

二:构建YingXiong类

//与test03做个程序
public class YingXiong {
    /*
     * 属性有吗?有的话有哪些?
     * 1.名字--name
     * 2.血量--hp
     * 3.伤害值--hartValue
     */
    private String name;
    private int hp=100;
    private int hartValue;
    /*
     * 生成getter和setter方法
     */
    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 int getHartValue() {
        return hartValue;
    }

    public void setHartValue(int hartValue) {
        this.hartValue = hartValue;
    }

    /*
     * 方法有吗?有的话有哪些?
     * 1.英雄攻击英雄
     *    参数: 被攻击的英雄
     *    返回值:被攻击的英雄受伤的声音--"啊"
     */
    public String attack(YingXiong a) {
        /*
         * 被打的英雄的血量= 被打的英雄的血量- 出手者的伤害值
         */
        a.hp = a.hp-this.hartValue;
        return "啊";
    }
}

三:构建Test03类

import java.util.Arrays;

import java.util.Random;

public class Test03 {  
    public static void main(String[] args) {
        /*
         * 1.创建四个对象,分别给他们取名,给他们设置伤害值以及血量
         */
        YingXiong y1= new YingXiong();
        YingXiong y2= new YingXiong();
        YingXiong y3= new YingXiong();
        YingXiong y4= new YingXiong();
        y1.setName("貂蝉");
        y1.setHartValue(10);
        y2.setName("刘备");
        y2.setHartValue(20);
        y3.setName("关羽");
        y3.setHartValue(50);
        y4.setName("曹操");
        y4.setHartValue(80);
    /*
     * 因为曹操是老怪,因此血量是200
     * 所有要单独设置血量
     */
        y4.setHp(200);    
    /*
     * 把我方英雄集中在一起
     */
        YingXiong[] arrYx = {y1,y2,y3};
        //我方英雄集体去攻击老怪曹操
        /*
         * 遍历(foreach 即高级for循环)
         * 一个一个的访问
         */
        for (YingXiong i:arrYx) {
            i.attack(y4);
        }
        //打印 曹操老怪的血量
        System.out.println("曹操的血量剩余:"+y4.getHp());
        /*
         * 老怪反杀
         * 老怪随机选一个英雄攻击
         * 知识点:我们通过技术得到数组0,1,2中的任意一个,则需要求0-2的随机数
         * 第一:知道哪些类可以产生随机数
         * 第二:去百度随机数的方法或查API
         */
         int a = new Random().nextInt(3);
         
         y4.attack(arrYx[a]);
         System.out.println("被伤害的是:"+arrYx[a].getName());
         System.out.println(arrYx[a].getName()+"剩余血量为"+arrYx[a].getHp());
         /*
          * 第一轮:
          *      打曹操肯定是曹操还活着
          *      不知道曹操干了谁
          * 第二轮:
          *      打曹操肯定还是曹操还活着
          *      不知道曹操干了谁
          *      假如干的都是同一个人,则英雄数组要缩减容量
          * 第三轮:
          *      ......
          * 
          */
         /*
          * 第2轮:
          *    a.曹操攻击同一个人;
          *    b.曹操按顺序攻击
          *    c.曹操随机攻击
          */
         for (YingXiong i:arrYx) {
                i.attack(y4);
            }
         System.out.println("曹操的血量剩余:"+y4.getHp());
         int b = new Random().nextInt(3);
         /*
          * 如果随机是同一个人,则这个人血量没有,则被干掉
          * 数组换新的长度和成员
          * 如果不是同一个人,则数据还是原数组
          */
        /*
         * y4.attack(arrYx[b]); 
         * System.out.println("被伤害的是:"+arrYx[b].getName());
         * System.out.println(arrYx[b].getName()+"剩余血量为"+arrYx[b].getHp());
         */
         if (a==b) {
             System.out.println(arrYx[b].getName()+"被曹操干死了");
             /*
              * 数组缩容:
              * 1.新建一个2个长度的数组
              * 2.把2个长度的数组赋值给arrYx
              * 3.判断活着的存入arrYx
              */
             YingXiong[] arr = {null,null};
             int j= 0;//表示arr的下标
              for (int i = 0;i<arrYx.length;i++){
                  if(a != i) {
                      arr[j]=arrYx[i];
                      j++;
                      System.out.println("还活着的有:");
                      System.out.println(arrYx[i].getName());
                  }
              }
              arrYx = arr;
              System.out.println(Arrays.toString(arrYx));
         }else {
             System.out.println(arrYx[b].getName()+"被曹操砍到了");             
         }
    }   
}
 

猜你喜欢

转载自blog.csdn.net/weixin_48924025/article/details/113006314
今日推荐