上个简易版本优化了些,文字描述更有趣一点
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);}
}

结果如下

面向对象(文字格斗进阶版)相关推荐

  1. 深度学习实战14(进阶版)-手写文字OCR识别,手写笔记也可以识别了

    大家好,我是微学AI,今天给大家带来手写OCR识别的项目.手写的文稿在日常生活中较为常见,比如笔记.会议记录,合同签名.手写书信等,手写体的文字到处都有,所以针对手写体识别也是有较大的需求.目前手写体 ...

  2. Java_题目_面向对象文字花钱格斗游戏

    一.题目:面向对象文字花钱格斗游戏 二.重难点: 1)掌握JavaBean的写法,及相关快捷键或插件生成. 包含缺省及含参构造器.getter和setter.成员方法等. 2)掌握创建对象.方法后的栈 ...

  3. 进阶版的Java发牌小程序

    进阶版的Java发牌小程序 考虑到上次的发牌程序有很大的缺陷,无法得知牌的花色和点数,也就无法对牌添加别的操作方法,这次采用面向对象的思想,重新编写这个发牌小程序. 程序如下: /*** 扑克类,具有 ...

  4. 《Cocos Creator游戏实战》摘星星进阶版

    摘星星进阶版 添加开始按钮 实现按钮功能 显示"Game Over" 限制主角移动范围 让跳跃动作更加细腻 加入星星收集动画 编写动画脚本 加入触屏控制 添加游戏提示 Cocos ...

  5. Python学员管理系统进阶版

    Python学员管理系统进阶版 整合基础,使用面向对象的方式做学员管理系统 文章目录 Python学员管理系统进阶版 前言 一.系统需求 1.创建程序文件 2.书写程序 3.管理系统框架 二.功能函数 ...

  6. Python爬虫:抓取智联招聘岗位信息和要求(进阶版)

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者:王强 ( 想要学习Python?Python学习交流群 ...

  7. 深度学习实战13(进阶版)-文本纠错功能,经常写错别字的小伙伴的福星

    大家好,我是微学AI,我们在日常生活中,经常会写一些文稿,比如:会议纪要,周报,日报,汇报材料,这些文稿里我们会发现有时候出现拼写.语法.标点等错误:其中拼写错误的错别字占大部分. 经过初步统计:在微 ...

  8. 苹果手机智能计算机怎么用,siri快捷指令进阶版,如何用苹果手机NFC控制米家设备...

    siri快捷指令进阶版,如何用苹果手机NFC控制米家设备 2020-08-16 13:05:20 11点赞 94收藏 3评论 上一篇简单说了下用Siri控制米家设备.这篇说一下用NFC控制.需要准备苹 ...

  9. 深度学习实战23(进阶版)-语义分割实战,实现人物图像抠图的效果(计算机视觉)

    大家好,我是微学AI,今天给大家带来深度学习实战23(进阶版)-语义分割实战,实现人物图像抠图的效果.语义分割是计算机视觉中的一项重要任务,其目标是将图像中的每个像素都分配一个语义类别标签.与传统的目 ...

最新文章

  1. 中文版证书_CIA考试多久后才可以领取证书?领取的方式是什么?
  2. PE学习(四)第四章:导入表
  3. MySQL查询昨天的数据
  4. eclispse调试为什么什么都看不到_【科普6】单号出了为什么还是看不到物流信息?...
  5. 1.RTMP流媒体服务器搭建
  6. nuxt2.0 设置 webpack 路径别名
  7. C++socket编程(五):5.1 创建tcpclient项目
  8. 数据库乱象丛生,开发者该如何选择?
  9. Git异常:fatal: V1.0 cannot be resolved to branch.
  10. 开课吧里的python学习是真的吗-明星为开课吧直播带货:人人都要学,人人都可以学的Python...
  11. 邮件服务器pop3和imap,POP3服务器和IMAP服务器
  12. 本科毕业论文查重网站分享(维普、知网、万方、大雅等)
  13. 如何制作一个计算机病毒,怎样制作一个简单的电脑病毒
  14. Delphi实现通用的定时自动关机程序
  15. Maven镜像源汇总(含国内、国外)
  16. android自定义剪切板,Android10适配之剪切板
  17. 木瓜移动再度荣获2022“Google优秀合作伙伴”
  18. ybt1223:An Easy Problem
  19. 基于java的水果商城系统 水果销售系统
  20. submit的用法实例

热门文章

  1. Windows下Python无法正常卸载:There is a problem with this Windows Installer package.
  2. 从B站的代码泄露事件中,我们能学到些什么?
  3. 【K哥爬虫普法】蓄意突破反爬虫技术,爬取牌照信息
  4. SwissArmyKnife调试Android UI的工具
  5. 全面分析前端的网络请求方式
  6. 实用糖尿病学读书笔记-第28章-糖尿病患者的教育
  7. Luogu P2448 无尽的生命
  8. 自我管理的经典书籍推荐:《自我管理必读12篇》
  9. 根据地址获取坐标经纬度
  10. 洛谷P3354 [IOI2005]Riv 河流——“承诺”DP