Java面向对象练习(4.文字格斗游戏)(2024.7.4)
角色类
package FightGame20240704;
import java.util.Random;
public class GameRole {Random r = new Random();private String name;private int blood;private char gender;private String face;public GameRole(){}public GameRole(String name, int blood, char gender){this.name = name;this.blood = blood;this.gender = gender;}public void setName(String name){this.name = name;}public void setBlood(int blood){this.blood = blood;}public void setGender(char gender){this.gender = gender;}public void setFace(String face){this.face = face;}public String getName(){return name;}public int getBlood(){return blood;}public char getGender(){return gender;}public String getFace(){return face;}public void setFace(GameRole gameRole){String[] boyFaces= {"风流俊雅","气宇轩昂","相貌英俊","五官端正","相貌平平","一塌糊涂","面目狰狞"};String[] girlFaces ={"美奂绝伦","沉鱼落雁","婷婷玉立","身材娇好","相貌平平","相貌简陋","惨不忍睹"};if(gameRole.gender == '男'){int randomIndex = r.nextInt(boyFaces.length);gameRole.face = boyFaces[randomIndex];} else if(gameRole.gender == '女'){int randomIndex = r.nextInt(girlFaces.length);gameRole.face = girlFaces[randomIndex];} else {gameRole.face = "相貌平平";}}public void attack(GameRole gameRole){String[] attack={"%s使出了一招【背心钉】,转到对方的身后,一掌向%s背心的灵台穴拍去。","%s使出了一招【游空探爪】,飞起身形自半空中变掌为抓锁向%s。","%s大喝一声,身形下伏,一招【劈雷坠地】,捶向%s双腿。","%s运气于掌,一瞬间掌心变得血红,一式【掌心雷】,推向%s。","%s阴手翻起阳手跟进,一招【没遮拦】,结结实实的捶向%s。","%s上步抢身,招中套招,一招【劈挂连环】,连环攻向%s。"};String[] injure={"结果%s退了半步,毫发无损","结果给%s造成一处瘀伤","结果一击命中,%s痛得弯下腰","结果%s痛苦地闷哼了一声,显然受了点内伤","结果%s摇摇晃晃,一跤摔倒在地","结果%s脸色一下变得惨白,连退了好几步","结果『轰』的一声,%s口中鲜血狂喷而出","结果%s一声惨叫,像滩软泥般塌了下去"};int randomAttack = r.nextInt(20) + 1;int remainBlood = gameRole.blood - randomAttack;gameRole.setBlood(remainBlood);int randomIndex1 = r.nextInt(attack.length);System.out.printf(attack[randomIndex1], this.getName(), gameRole.getName());System.out.println();int randomIndex2 = r.nextInt(attack.length);System.out.printf(injure[randomIndex2], gameRole.getName());System.out.println();System.out.printf("这一下造成了%d的伤害,%s还剩%d的血量\n", randomAttack, gameRole.getName(), gameRole.getBlood());if(remainBlood < 0){System.out.println(this.getName() + "完成了超杀!");}}
}
游戏开始
package FightGame20240704;
import java.util.Scanner;
public class GameTest {public static void main(String[] args) {Scanner sc = new Scanner(System.in);GameRole gameRole1 = new GameRole("八神", 100, '男');gameRole1.setFace(gameRole1);GameRole gameRole2 = new GameRole("不知火舞", 100, '女');gameRole2.setFace(gameRole2);System.out.println(gameRole1.getName() + ":" + gameRole1.getFace());System.out.println(gameRole2.getName() + ":" + gameRole2.getFace());System.out.println();System.out.println();while (true){gameRole1.attack(gameRole2);if(gameRole2.getBlood() <= 0){System.out.printf("%s战胜了%s", gameRole1.getName(), gameRole2.getName());break;}gameRole2.attack(gameRole1);if(gameRole1.getBlood() <= 0){System.out.printf("%s战胜了%s", gameRole2.getName(), gameRole1.getName());break;}}}
}
相关文章:
Java面向对象练习(4.文字格斗游戏)(2024.7.4)
角色类 package FightGame20240704; import java.util.Random; public class GameRole {Random r new Random();private String name;private int blood;private char gender;private String face;public GameRole(){}public GameRole(String name, int blood, char gender){…...
Python获取QQ音乐歌单歌曲
准备工作 歌单分享的url地址 比如: https://i.y.qq.com/n2/m/share/details/taoge.html?hosteuinoKvzoK4l7evk7n**&id9102222552&appversion130605&ADTAGwxfshare&appshareiphone_wx 代码实现 def mu(share_url):share_url share_url.split(id…...
Linux系统部署MongoDB开源文档型数据库并实现无公网IP远程访问
文章目录 前言1. 安装Docker2. 使用Docker拉取MongoDB镜像3. 创建并启动MongoDB容器4. 本地连接测试5. 公网远程访问本地MongoDB容器5.1 内网穿透工具安装5.2 创建远程连接公网地址5.3 使用固定TCP地址远程访问 💡 推荐 前些天发现了一个巨牛的人工智能学习网站&am…...
WPF Menu实现快捷键操作
很多小伙伴说,在Menu中,实现单个快捷键操作很简单,怎么实现多个快捷键操作和,组合快捷键呢,今天他来了。 上代码和效果图 一、Ctrl Shift 任意子母键实现快捷键组合 <Window x:Class"XH.TemplateLesson.M…...
VSCode常用的一些插件
Chinese (Simplified) 汉语(简体)拓展包。 Auto Close Tag 可以自动增加xml/html的闭合标签。 CodeSnap 截图神器。截图效果在下面。 Dracula Official vscode一个很好看的主题。 Git Graph git管理工具。 GitHub Repositories 有了它,不…...
OV通配符证书用于什么单位
OV(Organization Validation)通配符SSL证书是一种专门为组织或企业设计的SSL证书类型,它不仅提供了标准的SSL加密功能,还包含了对组织身份的验证。这种证书非常适合以下几种类型的单位使用: 企业级网站: …...
【数据结构】06.栈队列
一、栈 1.1栈的概念及结构 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。 压栈&#…...
完全理解C语言函数
文章目录 1.函数是什么2.C语言中的函数分类2.1 库函数2.1.1 如何使用库函数 2.2自定义函数 3.函数的参数3.1 实际参数(实参)3.2 形式参数(形参) 4.函数调用4.1传值调用4.2 传址调用4.3 练习 5.函数的嵌套调用和链式访问5.1 嵌套调…...
性能测试:JMeter与Gatling的高级配置
性能测试是软件开发过程中不可或缺的一部分,它帮助我们确保应用在高负载下仍能保持良好的响应时间和稳定性。本文将深入探讨两种流行的性能测试工具:Apache JMeter和Gatling,并提供详细的高级配置指南以及Java代码示例。 Apache JMeter 高级…...
Linux 软件管理
Linux 软件管理 在 Linux 系统中,RPM(Red Hat Package Manager)和 YUM(Yellowdog Updater, Modified)是用于软件包管理的重要工具。 RPM RPM 是由 Red Hat 公司开发的软件包管理系统。 RPM 软件包通常具有 .rpm 扩…...
五.核心动画 - 图层的变换(平移,缩放,旋转,3D变化)
引言 在上一篇博客中,我们研究了一些视觉效果,在本篇博客中我们将要来讨论一下图层的旋转,平移,缩放,以及可以将扁平物体转换成三维空间对象的CATransform3D。 图层变换 图层的仿射变换 在视图中有一个transform属…...
Linux系统编程——线程基本概念
目录 一,关于多线程 二,重新理解进程 三,线程VS进程 四,线程周边概念 4.1 线程的数据共享 4.2 线程的优点 4.3 线程的缺点 4.4 线程异常 4.5 线程用途 五,一些问题解答 如何理解将资源分配给各个线程&…...
【HALCON】如何实现hw窗口自适应相机拍照成像的大小
前言 在开发一个喷码检测软件的时候碰到相机成像和hw窗体的大小不一致,hw太小显示不完全成像的图片,这使得成像不均匀,现场辨别起来比较不直观,因此需要对其进行一个调整。 解决 省略掉读取图片的环节,我们只需要将…...
【Spring cloud】 认识微服务
文章目录 🍃前言🌴单体架构🎋集群和分布式架构🌲微服务架构🎍微服务带来的挑战⭕总结 🍃前言 本篇文章将从架构的演变过程来简单介绍一下微服务,大致分为一下几个部分 单体架构集群和分布式架…...
一个pdf分割成多个pdf,一个pdf分成多个pdf
在数字化办公和学习中,pdf格式因其良好的兼容性和稳定性而受到广泛欢迎。但有时候,我们可能需要将一个大的pdf文件分割成多个小文件,以便于分享、打印或编辑。今天,我就来教大家几种简单有效的方法,让你轻松实现pdf文件…...
rtsp client c++
直接上代码:源码 void doRtspParse(char *b) {std::vector<std::string> res;char *ptr b, *ptr1 nullptr;while ((ptr1 strstr(ptr, "\r\n"))) {res.push_back(std::string(ptr, ptr1 - ptr));ptr ptr1 2;}int len ptr - b;b[len - 1] \0;…...
实现好友关注功能的Feed流设计
摘要 在社交网络应用中,Feed流是展示好友动态的核心功能。本文将探讨如何设计一个Feed流系统,以实现好友关注和动态展示的功能。 1. Feed流的基本概念 Feed流是用户在社交网络中获取信息的一种方式,通常按照时间顺序展示好友或感兴趣的用户…...
【STM32修改串口波特率】
STM32微控制器中的串口波特率调整通常涉及到USART(通用同步接收器/发送器)模块的配置。USART模块提供了多个寄存器来设置波特率,其中关键的寄存器包括BRR(波特率寄存器)和USART_CR1(控制寄存器1)…...
印章谁在管、谁用了、用在哪?契约锁让您打开手机一看便知
“印章都交给谁在管”、“哪些人能用”、“都有哪些业务在用”…这些既是管理者最关心的印章问题也是影响印章安全的关键要素。但是公司旗下分子公司那么多,各类公章、法人章、财务章、合同章一大堆,想“问”明白很难。 契约锁电子签及印控平台推出“印章…...
[C++初阶]vector的初步理解
一、标准库中的vector类 1.vector的介绍 1. vector是表示可变大小数组的序列容器 , 和数组一样,vector可采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组,它的大…...
PDF阅读器安全风险与漏洞分析方法论
我不能按照您的要求生成关于“CVE-2026-23512 SumatraPDF 漏洞”的博文内容。原因如下:该漏洞编号不存在于任何权威安全数据库中。截至当前(2024年),NVD(美国国家漏洞库)、CNNVD(中国国家漏洞库…...
DeepSeek日志异常检测实战:基于时序大模型的动态基线算法(已通过金融级等保三级日志审计验证)
更多请点击: https://intelliparadigm.com 第一章:DeepSeek日志分析方案概述 DeepSeek系列大模型在推理与训练过程中会产生海量结构化与半结构化日志,涵盖请求元数据、token级耗时、KV缓存命中率、显存占用、错误堆栈等关键维度。本方案聚焦…...
3大绝技:Gifsicle如何让命令行成为GIF动画的终极编辑器?
3大绝技:Gifsicle如何让命令行成为GIF动画的终极编辑器? 【免费下载链接】giflossy Merged into Gifsicle! 项目地址: https://gitcode.com/gh_mirrors/gi/giflossy 在数字内容创作的世界里,GIF动画一直占据着特殊地位——它轻量、兼容…...
如何免费绕过iOS激活锁:Applera1n完整解决方案指南
如何免费绕过iOS激活锁:Applera1n完整解决方案指南 【免费下载链接】applera1n icloud bypass for ios 15-16 项目地址: https://gitcode.com/gh_mirrors/ap/applera1n 你是否曾因忘记Apple ID密码而面对无法使用的iPhone束手无策?或者购买的二手…...
终极ModTheSpire指南:如何轻松为《杀戮尖塔》添加无限模组
终极ModTheSpire指南:如何轻松为《杀戮尖塔》添加无限模组 【免费下载链接】ModTheSpire External mod loader for Slay The Spire 项目地址: https://gitcode.com/gh_mirrors/mo/ModTheSpire 想要让《杀戮尖塔》的爬塔体验焕然一新?ModTheSpire这…...
终极音乐解锁指南:3个简单步骤让加密音乐重获自由
终极音乐解锁指南:3个简单步骤让加密音乐重获自由 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库: 1. https://github.com/unlock-music/unlock-music ;2. https://git.unlock-music.dev/um/web 项目地址: https://g…...
PCL2启动器微软账户登录皮肤显示问题的完整解决方案与实践指南
PCL2启动器微软账户登录皮肤显示问题的完整解决方案与实践指南 【免费下载链接】PCL Minecraft 启动器 Plain Craft Launcher(PCL)。 项目地址: https://gitcode.com/gh_mirrors/pc/PCL PCL2启动器作为一款功能强大的Minecraft第三方启动器&#…...
随机森林在天文大数据中的应用:高红移类星体高效筛选实战
1. 项目概述:用机器学习在星海中“捞针”在广袤的宇宙中寻找高红移类星体,就像是在一片无垠的星海里打捞一根特定的针。高红移类星体,作为宇宙早期最明亮的天体,是研究宇宙再电离时期、超大质量黑洞早期增长以及大尺度结构形成的绝…...
3分钟让直播音质专业级:OBS-VST插件终极使用指南
3分钟让直播音质专业级:OBS-VST插件终极使用指南 【免费下载链接】obs-vst Use VST plugins in OBS 项目地址: https://gitcode.com/gh_mirrors/ob/obs-vst 你是否曾为直播时观众抱怨"声音太吵"、"听不清说话"而烦恼?或者精心…...
覆盖数与链化方法:从VC维到泛化误差界的数学桥梁
1. 项目概述:从直觉到数学,理解泛化理论的核心在机器学习领域,我们常常面临一个核心矛盾:一个模型在训练集上表现近乎完美,为什么到了真实世界就“水土不服”?这就是过拟合。我们真正追求的,是模…...
