面向对象(文字格斗进阶版)
上个简易版本优化了些,文字描述更有趣一点
Textgame基本不变,加了性别的局部变量
package heinma.java.text2;public class GameText {public static void main(String[] args) {//创建两个角色Role2 r1 = new Role2("子瞻",100,'男');Role2 r2 = new Role2("浩桑",120,'男');//展示一下角色r1.showrole();r2.showrole();//开始回合制战斗while (true) {//r1开始攻击r2r1.attack(r2);//判断血量if (r2.getBlood() == 0) {System.out.println(r1.getName() + "ko了" + r2.getName() );break;}r2.attack(r1);if (r1.getBlood() == 0) {System.out.println(r2.getName() + "ko了" + r1.getName() );break;}}}
}
Role类
在类中添加了角色信息展示,随机面容,随机的攻击描述,并根据受伤程度有不同的受伤描述。
package heinma.java.text2;import java.util.Random;public class Role2 {private String name;private int blood;private char gender;private String face;//长相随机String[] boyfaces= {"风流俊雅","气宇轩昂","相貌英俊","五官端正","相貌平平","一塌糊涂","面目狰狞"};String[] girlfaces ={"美奂绝伦","沉鱼落雁","婷婷玉立","身材娇好","相貌平平","相貌简陋","惨不忍睹"};//创给数组 attack 攻击描述:String[] attacks_desc={"%s使出了一招【背心钉】,转到对方的身后,一掌向%s背心的灵台穴拍去。","%s使出了一招【游空探爪】,飞起身形自半空中变掌为抓锁向%s。","%s大喝一声,身形下伏,一招【劈雷坠地】,捶向%s双腿。","%s运气于掌,一瞬间掌心变得血红,一式【掌心雷】,推向%s。","%s阴手翻起阳手跟进,一招【没遮拦】,结结实实的捶向%s。","%s上步抢身,招中套招,一招【劈挂连环】,连环攻向%s。"};//创个数值 injured 受伤描述:String[] injureds_desc={"%s退了半步,毫发无损","给%s造成一处瘀伤","一击命中,%s痛得弯下腰","%s痛苦地闷哼了一声,显然受了点内伤","%s摇摇晃晃,一跤摔倒在地","%s脸色一下变得惨白,连退了好几步","『轰』的一声,%s口中鲜血狂喷而出","%s一声惨叫,像滩软泥般塌了下去"};public Role2() {}public Role2(String name, int blood,char gender) {this.name = name;this.blood = blood;this.gender= gender;setFace(gender);}public char getGender() {return gender;}public void setGender(char gender) {this.gender = gender;}public String getFace() {return face;}public void setFace(char gender) {Random r = new Random();//判断性别决定随机长相的数值,然后随机出长相if(getGender() == '男' ){int faceindex =r.nextInt(boyfaces.length);this.face = boyfaces[faceindex];}else if(getGender() == '女' ){int faceindex =r.nextInt(girlfaces.length);this.face = girlfaces[faceindex];}}/*** 获取* @return name*/public String getName() {return name;}/*** 设置* @param name*/public void setName(String name) {this.name = name;}/*** 获取* @return blood*/public int getBlood() {return blood;}/*** 设置* @param blood*/public void setBlood(int blood) {this.blood = blood;}public String toString() {return "Role{name = " + name + ", blood = " + blood + "}";}public void attack(Role2 role){Random r = new Random();//随机出攻击描述int index = r.nextInt(attacks_desc.length);String kungfu=attacks_desc[index];System.out.printf(kungfu,this.getName(),role.getName());System.out.println();//随机造成伤害20-39//rnumber为剩余血量int hurtnumber = r.nextInt(20)+20;int rnumber=role.getBlood()-hurtnumber;//对剩余血量做验证 小于0时修改血量rnumber=rnumber < 0 ? 0 : rnumber ;role.setBlood(rnumber);if (rnumber>90){System.out.printf(injureds_desc[0],role.getName()+role.getName());System.out.print("剩余"+role.getBlood()+"血量");}else if (rnumber>70){System.out.printf(injureds_desc[1],role.getName()+role.getName());System.out.print("剩余"+role.getBlood()+"血量");}else if (rnumber>60){System.out.printf(injureds_desc[2],role.getName()+role.getName());System.out.print("剩余"+role.getBlood()+"血量");}else if (rnumber>40){System.out.printf(injureds_desc[3],role.getName()+role.getName());System.out.print("剩余"+role.getBlood()+"血量");}else if (rnumber>30){System.out.printf(injureds_desc[4],role.getName()+role.getName());System.out.print("剩余"+role.getBlood()+"血量");}else if (rnumber>10){System.out.printf(injureds_desc[5],role.getName()+role.getName());System.out.print("剩余"+role.getBlood()+"血量");}else if (rnumber>0){System.out.printf(injureds_desc[6],role.getName()+role.getName());System.out.print("剩余"+role.getBlood()+"血量");}else if (rnumber==0){System.out.printf(injureds_desc[7],role.getName()+role.getName());System.out.print("剩余"+role.getBlood()+"血量");}System.out.println();}public void showrole(){System.out.println("姓名:"+this.name);System.out.println("性别:"+this.gender);System.out.println("血量:"+this.blood);System.out.println("面容:"+this.face);}
}
结果如下
面向对象(文字格斗进阶版)相关推荐
- 深度学习实战14(进阶版)-手写文字OCR识别,手写笔记也可以识别了
大家好,我是微学AI,今天给大家带来手写OCR识别的项目.手写的文稿在日常生活中较为常见,比如笔记.会议记录,合同签名.手写书信等,手写体的文字到处都有,所以针对手写体识别也是有较大的需求.目前手写体 ...
- Java_题目_面向对象文字花钱格斗游戏
一.题目:面向对象文字花钱格斗游戏 二.重难点: 1)掌握JavaBean的写法,及相关快捷键或插件生成. 包含缺省及含参构造器.getter和setter.成员方法等. 2)掌握创建对象.方法后的栈 ...
- 进阶版的Java发牌小程序
进阶版的Java发牌小程序 考虑到上次的发牌程序有很大的缺陷,无法得知牌的花色和点数,也就无法对牌添加别的操作方法,这次采用面向对象的思想,重新编写这个发牌小程序. 程序如下: /*** 扑克类,具有 ...
- 《Cocos Creator游戏实战》摘星星进阶版
摘星星进阶版 添加开始按钮 实现按钮功能 显示"Game Over" 限制主角移动范围 让跳跃动作更加细腻 加入星星收集动画 编写动画脚本 加入触屏控制 添加游戏提示 Cocos ...
- Python学员管理系统进阶版
Python学员管理系统进阶版 整合基础,使用面向对象的方式做学员管理系统 文章目录 Python学员管理系统进阶版 前言 一.系统需求 1.创建程序文件 2.书写程序 3.管理系统框架 二.功能函数 ...
- Python爬虫:抓取智联招聘岗位信息和要求(进阶版)
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者:王强 ( 想要学习Python?Python学习交流群 ...
- 深度学习实战13(进阶版)-文本纠错功能,经常写错别字的小伙伴的福星
大家好,我是微学AI,我们在日常生活中,经常会写一些文稿,比如:会议纪要,周报,日报,汇报材料,这些文稿里我们会发现有时候出现拼写.语法.标点等错误:其中拼写错误的错别字占大部分. 经过初步统计:在微 ...
- 苹果手机智能计算机怎么用,siri快捷指令进阶版,如何用苹果手机NFC控制米家设备...
siri快捷指令进阶版,如何用苹果手机NFC控制米家设备 2020-08-16 13:05:20 11点赞 94收藏 3评论 上一篇简单说了下用Siri控制米家设备.这篇说一下用NFC控制.需要准备苹 ...
- 深度学习实战23(进阶版)-语义分割实战,实现人物图像抠图的效果(计算机视觉)
大家好,我是微学AI,今天给大家带来深度学习实战23(进阶版)-语义分割实战,实现人物图像抠图的效果.语义分割是计算机视觉中的一项重要任务,其目标是将图像中的每个像素都分配一个语义类别标签.与传统的目 ...
最新文章
- 中文版证书_CIA考试多久后才可以领取证书?领取的方式是什么?
- PE学习(四)第四章:导入表
- MySQL查询昨天的数据
- eclispse调试为什么什么都看不到_【科普6】单号出了为什么还是看不到物流信息?...
- 1.RTMP流媒体服务器搭建
- nuxt2.0 设置 webpack 路径别名
- C++socket编程(五):5.1 创建tcpclient项目
- 数据库乱象丛生,开发者该如何选择?
- Git异常:fatal: V1.0 cannot be resolved to branch.
- 开课吧里的python学习是真的吗-明星为开课吧直播带货:人人都要学,人人都可以学的Python...
- 邮件服务器pop3和imap,POP3服务器和IMAP服务器
- 本科毕业论文查重网站分享(维普、知网、万方、大雅等)
- 如何制作一个计算机病毒,怎样制作一个简单的电脑病毒
- Delphi实现通用的定时自动关机程序
- Maven镜像源汇总(含国内、国外)
- android自定义剪切板,Android10适配之剪切板
- 木瓜移动再度荣获2022“Google优秀合作伙伴”
- ybt1223:An Easy Problem
- 基于java的水果商城系统 水果销售系统
- submit的用法实例
热门文章
- Windows下Python无法正常卸载:There is a problem with this Windows Installer package.
- 从B站的代码泄露事件中,我们能学到些什么?
- 【K哥爬虫普法】蓄意突破反爬虫技术,爬取牌照信息
- SwissArmyKnife调试Android UI的工具
- 全面分析前端的网络请求方式
- 实用糖尿病学读书笔记-第28章-糖尿病患者的教育
- Luogu P2448 无尽的生命
- 自我管理的经典书籍推荐:《自我管理必读12篇》
- 根据地址获取坐标经纬度
- 洛谷P3354 [IOI2005]Riv 河流——“承诺”DP