java:入门基础(1)

 

 

 

 

练习一:文字版格斗游戏

需求:

​ 格斗游戏,每个游戏角色的姓名,血量,都不相同,在选定人物的时候(new对象的时候),这些信息就应该被确定下来。

举例:

​ 程序运行之后结果为:

​ 姓名为:乔峰 血量为:100

​ 姓名为:鸠摩智 血量为:100

​ 乔峰举起拳头打了鸠摩智一下,造成了XX点伤害,鸠摩智还剩下XXX点血。

​ 鸠摩智举起拳头打了鸠摩智一下,造成了XX点伤害,乔峰还剩下XXX点血。

​ 乔峰举起拳头打了鸠摩智一下,造成了XX点伤害,鸠摩智还剩下XXX点血。

​ 鸠摩智举起拳头打了鸠摩智一下,造成了XX点伤害,乔峰还剩下XXX点血。

​ 乔峰K.O.了鸠摩智

代码示例:

public class GameTest {
    public static void main(String[] args) {
        //1.创建第一个角色
        Role r1 = new Role("乔峰",100);
        //2.创建第二个角色
        Role r2 = new Role("鸠摩智",100);

        //3.开始格斗 回合制游戏
        while(true){
            //r1开始攻击r2
            r1.attack(r2);
            //判断r2的剩余血量
            if(r2.getBlood() == 0){
                System.out.println(r1.getName() + " K.O了" + r2.getName());
                break;
            }

            //r2开始攻击r1
            r2.attack(r1);
            if(r1.getBlood() == 0){
                System.out.println(r2.getName() + " K.O了" + r1.getName());
                break;
            }


        }
    }
}



public class Role {
    private String name;
    private 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;
    }


    //定义一个方法用于攻击别人
    //思考:谁攻击谁?
    //Role r1 = new Role();
    //Role r2 = new Role();
    //r1.攻击(r2);
    //方法的调用者去攻击参数
    public void attack(Role role) {
        //计算造成的伤害 1 ~ 20
        Random r = new Random();
        int hurt = r.nextInt(20) + 1;

        //剩余血量
        int remainBoold = role.getBlood() - hurt;
        //对剩余血量做一个验证,如果为负数了,就修改为0
        remainBoold = remainBoold < 0 ? 0 : remainBoold;
        //修改一下挨揍的人的血量
        role.setBlood(remainBoold);

        //this表示方法的调用者
        System.out.println(this.getName() + "举起拳头,打了" + role.getName() + "一下," +
                "造成了" + hurt + "点伤害," + role.getName() + "还剩下了" + remainBoold + "点血");
    }

}

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot Configuration和AutoConfiguration加载逻辑和加载顺序调整

在spring中, AutoConfiguration也是一个种Configuration,只是AutoConfiguration是不能使用proxy的。 而且spring对于两者的加载顺序也不是一视同仁,是有顺序的。spring会先加载SpringBootApplication可达的且标注了Configuration的类&#x…

第二十三章 Vue组件通信之非父子组件通信

目录 一、引言 1.1. event bus 事件总线 1.1.1. 实现步骤 1.2. provide & inject 1.2.1. 实现步骤 二、event bus事件总线完整代码 2.1. 工程结构图 ​2.2. main.js 2.3. App.vue 2.4. EventBus.js 2.5. BaseC.vue 2.6. BaseB.vue 2.7. BaseA.vue 三、provi…

AI代币是什么?AI与Web3结合的未来方向在哪里?

近两年随着人工智能的崛起,AI已经渗透到制造业、电商、广告、医药等各个行业,加密货币领域也不例外,人工智能与区块链的融合,让我们看到了独特的数字资产 — AI加密代币。 它的流行始于2022年底,随着OpenAI智能聊天机…

java_封装

基本介绍 面向对象编程有三大特征:封装、继承和多态。 封装介绍 封装的理解和好处 封装的实现步骤(三步) 案例 package com.hspedu.encap;public class Encapsulation01 {public static void main(String[] args) {// 如果要使用快捷键altr…

爬虫+数据保存2

爬取数据保存到MySQL数据库 这篇文章, 我们来讲解如何将我们爬虫爬取到的数据, 进行保存, 而且是把数据保存到MySQL数据库的方式去保存。 目录 1.使用pymysql连接数据库并执行插入数据sql代码(insert) 2.优化pymysql数据库连接以及插入功能代码 3.爬取双色球网站的数据并保…

物理模拟:OpenVDB数据与游戏引擎的结合使用

目录 OpenVDB简介 VDB(Voxel Data Base)存储结构 距离场(SDF)和密度场(Density) VDB格式特点 VDB应用案例 1. 网格运算 2.Ray Marching算法优化 3.模型转流体 PBRT V4 OpenVDB在Unreal Engine中的…

Java8中CompletableFuture.allOf的使用

目录标题 CompletableFuture.allOf(...);CompletableFuture.allOf(...).get();CompletableFuture.allOf(...).join();总结如何优雅的处理异常呢? CompletableFuture.allOf(…); CompletableFuture.allOf(…) 本身不会等待所有的 Completable…

VBA语言専攻介绍20241031

VBA语言専攻简介 在当今世界,几乎没有任何工作是没有计算机的。有些工作需要定期重复相同的过程,最好将它们自动化。一旦任务自动化,只需单击一个按钮即可运行。VBA是实现自动化工作的最为简单的方式,它不需要其他工具&#xff0…

OpenCV视觉分析之目标跟踪(6)轻量级目标跟踪器类TrackerNano的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 Nano 跟踪器是一个超轻量级的基于深度神经网络(DNN)的通用目标跟踪器。 由于特殊的模型结构,Nano 跟踪器速度…

Python小游戏17——飞机大战

运行结果 首先,你需要安装Pygame库。如果你还没有安装它,可以使用以下命令来安装: bash pip install pygame 代码: python import pygame import random # 初始化Pygame pygame.init() # 屏幕大小 SCREEN_WIDTH 800 SCREEN_HEIGH…

Java 基本语法与语言环境(1/30)

目录 Java 基本语法与语言环境 1. Java 语言环境搭建 1.1 安装 JDK 1.2 配置系统变量 配置步骤(Windows 系统) 2. Hello World 程序 2.1 代码解析 2.2 编译与运行 3. Java 程序结构 4. 基本语法规则 4.1 标识符与关键字 4.2 数据类型与变量 …

开源一个开发的聊天应用与AI开发框架,集成 ChatGPT,支持私有部署的源码

大家好,我是一颗甜苞谷,今天分享一个开发的聊天应用与AI开发框架,集成 ChatGPT,支持私有部署的源码。 介绍 当前系统集成了ChatGPT的聊天应用,不仅提供了基本的即时通讯功能,还引入了先进的AI技术&#x…

LSTM——长短期记忆神经网络

目录 1.LSTM 工作原理 2.LSTM的代码实现 3.代码详解 LSTM(Long Short-Term Memory)是一种特殊的循环神经网络(RNN),用于解决长序列中的长期依赖问题。它通过引入门机制,控制信息的流入、保留和输出&…

大数据新视界 -- 大数据大厂之优化大数据计算框架 Tez 的实践指南

💖💖💖亲爱的朋友们,热烈欢迎你们来到 青云交的博客!能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

dedecms手机搜索不跳转手机页面模板的解决方法

1.找到文件plus/search.php,添加如下代码并保存 $mobile (isset($mobile) && is_numeric($mobile)) ? $mobile : 0; if ( $mobile1 ) {define(DEDEMOB, Y); } 2.来到网站后台,默认模板管理,新建模板 将手机端列表页面的.html文件&…

UE5之5.4 第一人称示例代码阅读2 子弹发射逻辑

TP_WeaponComponent.h 看看头文件 暴露了attach weapon和fire给蓝图 这两个函数意义一看名字吧,就是捡起来枪的时候执行,一个就是发射子弹的时候执行 #pragma once#include "CoreMinimal.h" #include "Components/SkeletalMeshComponen…

matlab读取逐日的1km分辨率中国大陆地区的土壤水数据,并汇总至逐月分辨率

1.前言 ESSD一篇文章介绍了逐日的土壤水数据: ESSD - A 1 km daily soil moisture dataset over China using in situ measurement and machine learning 图片来源:Li et al., 2022, ESSD 中国大陆地区的土壤水的数据下载地址: 国家青藏高…

哈工大《理论力学》第九版课后答案解析及笔记PDF

第九版序 哈工大《理论力学》初版于1961年,先后再版8次,曾获得首届国家优秀教材奖和国家级教学成果奖。本书第8版为“十二五”普通高等教育本科国家级规划教材,并于2021年被国家教材委员会评为首届全国教材建设奖全国优秀教材一等奖。 本书…

MindShare PCIE 3.0 笔记-第三四章

MindShare 官网,地址如下: MindShare Charpter 3: Configuration 概述 主要介绍 PCIe 驱动对 PCIE 设备中 function 的 Config Header 的访问. 1. 总线、设备与功能定义 每一个 PCIE function 都是独一无二的,通过设备号与总线号区分。 2. PCIe 总线…

Windows和Linux等保加固测评(2)

本文以等保2.0为标准,三级等保要求,centos7.6.1810系统为例进行演示。 关于加密 /etc/shadow文件格式和/etc/passwd类似,由若干字段组成,字段之间用“:”隔开 登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志 ice:$6$5NA…