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

news2024/9/23 1:39:08

目录

一.文字格斗游戏

 二.对象数组

三.键盘录入练习

四.复杂对象数组练习

题目要求:


一.文字格斗游戏

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岁

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/12579.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Node.js 流 Stream【详解】

什么是流&#xff1f; 流是一种将整体数据分割成多个小块依次进行处理的方式。 举个形象的例子&#xff1a; 山上有1000颗拳头大的小石子&#xff0c;需要搬下山。 传统的处理方式&#xff1a;安排一辆大卡车&#xff0c;一次性将石子全部运下山。流的处理方式&#xff1a;修…

Nginx制作下载站点

nginx使用的是模块ngx_http_autoindex_module来实现的&#xff0c;该模块处理以斜杠(“/”)结尾的请求&#xff0c;并生成目录列表。 nginx编译的时候会自动加载该模块&#xff0c;但是该模块默认是关闭的&#xff0c;使用下来指令来完成对应的配置 autoindex 启用或禁用目录…

医疗器械许可证怎么办理

医疗器械经营许可证申请条件 1.有两个与业务规模和业务范围相适应的质量管理机构或大专以上学历的质量管理人员。质量管理人员应具有国家认可的相关专业资格或职称&#xff1b; 2.具有与经营规模和范围相适应的相对独立的经营场所&#xff1b; 3.具备与经营规模和经营范围相…

解读OpenShift的逻辑架构和技术架构

01 OpenShift的逻辑架构 OpenShift的逻辑架构图如图2-6所示。 ▲图2-6 OpenShift逻辑架构 图2-6中的关键组件介绍如下。 底层基础设施:OpenShift可以运行在公有云(AWS、Azure、Google等)、私有云(OpenStack)、虚拟机(vSphere、RHV、红帽KVM)、X86、IBM Power/Z服务器上。…

跨域及cors解决跨域

1.什么是跨域 出于浏览器的同源策略限制。同源策略&#xff08;Sameoriginpolicy&#xff09;是一种约定&#xff0c;它是浏览器最核心也最基本的安全功能&#xff0c;如果缺少了同源策略&#xff0c;则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的…

DJ11 8086系列处理器(第二节课)

目录 一、8088CPU的系统总线 1. 最小模式 2. 最大模式 二、8086/8088 CPU 的功能结构 1. 8086/8088 CPU 的内部结构 2. 8086/8088 CPU 的内部寄存器 1&#xff09;通用寄存器 2&#xff09;段寄存器 3&#xff09;控制寄存器 三、8086/8088 CPU 的存储器组织 1. 物…

超级账本Fabric的世界状态操作与账本操作

在 Hyperledger Fabric 中&#xff0c;账本由两个不同但相关的部分组成 - 世界状态和区块链。 世界状态&#xff1a; 一个数据库&#xff0c;其中存储了一组帐本状态的当前值的缓存。世界状态使程序可以轻松地直接访问状态的当前值&#xff0c;而不必通过遍历整个交易日志来计…

PROTAC与抗体偶联药物的结合

PROTAC 的靶点真核生物的蛋白降解途径主要分为溶酶体途径、泛素蛋白酶体途径、胞液蛋白酶水解途径和线粒体蛋白酶途径等四种 (图1)。其中&#xff0c;PROTAC 所依赖的蛋白酶体途径主要针对细胞周期蛋白、转录因子、细胞表面受体以及胞内变性蛋白等进行降解。 图 1. 不同蛋白降…

《安富莱嵌入式周报》第291期:分分钟设计数字芯片,单片机版JS,神经网络DSP,microPLC,FatFS升级至V0.15,微软Arm64 VS正式版发布

往期周报汇总地址&#xff1a;嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Powered by Discuz! 视频版&#xff1a; https://www.bilibili.com/video/BV1Dd4y1b74x 《安富莱嵌入式周报》第291期&#xff1a;分分…

分享几个小技巧教你图片怎么加边框

大家平时出去玩的时候&#xff0c;肯定没少拍摄照片吧&#xff1f;那你们都是怎么对图片进行修饰的呢&#xff1f;我比较喜欢给图片加上一些边框线条&#xff0c;这样子的图片会比较有意境&#xff0c;能凸显我想要表达的意思。那么大家知道怎么在图片里加边框吗&#xff1f;今…

【Vue.js设计与实现】第4章 响应系统的作用与实现

前言&#xff1a; 本文是我看的Vue.js设计与实现这本书第二篇 响应系统 的第4章 响应系统的作用与实现的一些总结与收获。 第4章从宏观视角讲述了Vue.js 3.0中响应系统的实现机制。从副作用函数开始&#xff0c;逐步实现一个完善的响应系统&#xff0c;还讲述了计算属性和watch…

java计算机毕业设计基于安卓Android的在线心理咨询与健康App

项目介绍 本文介绍了心理咨询与健康App软件开发建设的意义和国内外发展现状,然后详细描述了所开发手机APP的可行性分析,并分析了手机APP所要实现的功能。因为心里咨询设施较多,而且人口密集,不能更好的管理健康问题,造成需要时人员不必要的身心伤害,所以采用比较方便的、容易便…

Linux基本指令(下)

Linux基本指令&#xff08;下&#xff09;前言cat指令more命令less命令head命令tail命令wc指令date指令cal指令find指令grep指令top命令alias命令zip/unzip命令前言 上一篇Linux基本指令主要讲解了关于文件操作方面的指令&#xff0c;接下来这一片Linux基本指令主要讲解一下关…

聊聊推荐系统的评测(下)

这是鼎叔的第三十九篇原创文章。 行业大牛和刚毕业的小白&#xff0c;都可以进来聊聊。 欢迎关注本人专栏和微信公众号《敏捷测试转型》&#xff0c;大量原创思考文章陆续推出。 上篇请查阅&#xff1a;聊聊推荐系统的评测&#xff08;上&#xff09; 下篇&#xff0c;我们…

基于SSM的旅游景点购票管理系统

1、项目介绍 基于SSM的旅游景点购票管理系统拥有两种角色&#xff0c;管理员和用户 管理员&#xff1a;用户管理、景点管理、购票管理、酒店管理、客房管理、客房预订管理、轮播图管理等 用户&#xff1a;登录注册、景区购票、评论、预订客房、收藏、发布攻略等 2、项目技术…

App推广渠道追踪技术更新及应用

如今App推广渠道追踪对App厂商来说非常重要&#xff0c;因为App厂商需要通过渠道追踪来寻找成本最低的和价值最高的获客渠道。 但是现在线上渠道的选择五花八门&#xff0c;比如各种新闻门户网站、字节系平台、腾讯系平台等&#xff0c;那么到底该花多少钱去获取用户&#xff…

本地浏览器打开远程服务器上的Jupyter Notebook

文章目录一、配置过程二、其他需求后台运行Jupyter端口映射实验环境及需求&#xff1a;远程服务器配置了 Jupyter Notebook&#xff0c;本地电脑没有相关的环境&#xff0c;想要在服务器端启动 Jupyter Notebook&#xff0c;然后直接从本地浏览器打开进行操作。 一、配置过程 …

【百度AI_文字识别】示例身份证图片识别(代码官方文档完整,只需获得修改参数、下载类)

文章目录提取身份证信息第一步&#xff1a;登录第二步&#xff1a;获取资源第三步&#xff1a;获取access_token参数&#xff08;AuthService.java&#xff09;第四步&#xff1a;请求代码Idcard.java第五步&#xff1a;修改Idcard.java文件注意&#xff1a;返回错误提取身份证…

【跨境电商卖家】Instagram营销初学者指南(一):重要性、优势

关键词&#xff1a;跨境电商卖家、instagram营销 1.为什么 Instagram 营销对企业很重要&#xff1f; Instagram 是接触大量受众的完美渠道——每月有超过10 亿活跃用户。平均而言&#xff0c;用户每天在 Instagram 上花费 53 分钟&#xff0c;这使得该平台成为仅次于Facebook的…

微信网页支付小白指南-域内浏览器支付 + 外部浏览器支付

关于微信网页支付&#xff0c;分为微信域内浏览器支付 外部浏览器支付&#xff0c;两者还是稍微有点点区别的&#xff0c;内部浏览器即在微信内打开网页&#xff0c;进行支付&#xff0c;支付调用是需要开通JSAPI支付方式&#xff1b;而外部浏览器「比如浏览器等」则需要开通 …