Java#9(文字格斗游戏和对象数组练习)

目录

一.文字格斗游戏

 二.对象数组

三.键盘录入练习

四.复杂对象数组练习

题目要求:


一.文字格斗游戏

Role类的代码

package Game;

import java.util.Random;

public class Role {
    String name;
    int blood;

    public Role() {
    }

    public Role(String name, int blood) {
        this.name = name;
        this.blood = blood;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getBlood() {
        return blood;
    }

    public void setBlood(int blood) {
        this.blood = blood;
    }

    //通过一个方法来表示攻击
    public void attack(Role role){
        //造成伤害这种成随机值
        Random r = new Random();
        int hurt = r.nextInt(30)+1;
        //剩余血量
        int remainblood = role.getBlood() - hurt;
        //判断血量是否为0,避免出现<0的数,不合逻辑
        remainblood = remainblood < 0 ? 0 : remainblood;
        //调整血量
        role.setBlood(remainblood);

        System.out.println(this.getName() + "打了"+ role.getName() +"一拳,给" +role.getName()+ "造成了" + hurt + "点伤害," +
                role.getName() + "还剩余" +remainblood+ "点血量");

    }
}

游戏测试的代码

package Game;

public class GameTest {
    public static void main(String[] args) {
        Role r1 = new Role("马大师",100);
        Role r2 = new Role("年轻人",100);
        while(true){
            r1.attack(r2);
            if(r2.getBlood() == 0){
                System.out.println(r1.getName()+"K.O了"+r2.getName());
                System.out.println(r1.getName()+":年轻人,还得多练练");
                break;
            }
            r2.attack(r1);
            if(r1.getBlood() == 0){
                System.out.println(r2.getName()+"K.O了"+r1.getName());
                System.out.println(r2.getName()+": 这已经是年轻人的天下了");
                System.out.println(r1.getName()+": 年轻人,不讲武德,搞偷袭");
                break;
            }

        }

    }

}

运行结果展示:

 二.对象数组

创建一个商品类

package Game;

public class Goods {
    int id;
    String name;
    double price;
    int cont;

    public Goods() {
    }

    public Goods(int id, String name, double price, int cont) {
        this.id = id;
        this.name = name;
        this.price = price;
        this.cont = cont;
    }
}
package Game;

public class GoodsTest {
    public static void main(String[] args) {
        //创建数组用来存储3个对象
        Goods[] arr = new Goods[3];

        //创建3个对象
        Goods g1 = new Goods(001, "iqoo", 3299.98, 300);
        Goods g2 = new Goods(002, "红米耳机", 199.0, 500);
        Goods g3 = new Goods(003, "联想小新", 5299.98, 100);
        //将对象存进数组
        arr[0] = g1;
        arr[1] = g2;
        arr[2] = g3;
        //验证是否存储成功
        //遍历
        for (int i = 0; i < arr.length; i++) {
            System.out.println("id:"+ arr[i].id+" 商品名称:"+arr[i].name+" 商品价格:"+arr[i].price+" 库存:"+arr[i].cont);
        }

    }
}

三.键盘录入练习

1.基础了解: 

nextInt();接收整数

nextDouble();接收小数

next();接收字符串

(遇到空格,制表符(\t),回车就不会继续接收数据了)

练习内容:创建三个汽车对象,数据通过键盘录入,并把数据存入数组中

创建汽车类的代码

package Dome;

public class Car {
    private String name;
    private int price;
    private String color;

    public Car() {
    }

    public Car(String name, int price, String color) {
        this.name = name;
        this.price = price;
        this.color = color;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getPrice() {
        return price;
    }

    public void setPrice(int price) {
        this.price = price;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }
}

检测的代码

package Dome;

import java.util.Scanner;

public class CarTest {
    public static void main(String[] args) {
        //创建一个数组
        Car[] arr = new Car[3];
        //
        Scanner s = new Scanner(System.in);
        //创建三个对象
        for (int i = 0; i < arr.length; i++) {
            Car c = new Car();
            System.out.println("请输入汽车的品牌名称");
            String name = s.next();
            c.setName(name);
            System.out.println("请输入汽车的价格");
            int price = s.nextInt();
            c.setPrice(price);
            System.out.println("请输入汽车的颜色");
            String color = s.next();
            c.setColor(color);
            //将对象存储到数组中
            arr[i] = c;
        }
        //遍历
        for (int i = 0; i < arr.length; i++) {
            System.out.println("汽车的品牌是:"+arr[i].getName()+" 汽车的价格是:"+arr[i].getPrice()+
                    " 汽车的颜色是:"+arr[i].getColor());
        }

    }
}

结果展示:

四.复杂对象数组练习

题目要求:

定义一个长度为3的数组,数组存储1~3名学生对象作为初始数据,学生对象的学号,姓名各不相同.
学生的属性:学号,姓名,年龄。
要求1:再次添加一个学生对象,并在添加的时候进行学号的唯一性判断。
要求2:添加完毕之后,遍历所有学生信息。
要求3:通过id删除学生信息
如果存在,则删除,如果不存在,则提示删除失败
要求4:删除完毕之后,遍历所有学生信息。要求5:查询数组id为“heima002”的学生,如果存在,则将他的年龄+1岁

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值