文字格斗小游戏

  1. 主程序

public class WordGameTest {

public static void main(String[] args) {

//1.创建对象角色1和角色2

WordGame r1 = new WordGame("张三", 100, "男");

WordGame r2 = new WordGame("李四", 100, "女");

System.out.println("====================对战开始===================");

//显示角色信息

r1.showRoleInfo();

System.out.println("===============");

r2.showRoleInfo();

System.out.println("===============");

//2.r1攻击r2,r2再攻击r1

//如果r1/r2血量不大于0则停止攻击,循环结束,

while (true) {

//r1打r2,打完显示r2血量,如果小于等于0,则r1赢了,循环结束

r1.attack(r2);

System.out.println(r2.getRole() + "剩余血量为:" + r2.getBlood());

if (r2.getBlood() == 0) {

System.out.println(r1.getRole() + "剩余血量为:" + r1.getBlood());

System.out.println(r1.getRole() + "赢得了最终胜利");

break;

}

//r2打r1,打完显示r1血量,如果小于等于0,则r2赢了,循环结束

r2.attack(r1);

System.out.println(r1.getRole() + "剩余血量:" + r1.getBlood());

if (r1.getBlood() == 0) {

System.out.println(r2.getRole() + "剩余血量为:" + r2.getBlood());

System.out.println(r2.getRole() + "赢得了最终胜利");

break;

}

}

}

}

  1. JavaBean类文件

import java.util.Random;

public class WordGame {

//成员变量

private String role;

private int blood;

private String gender;

private String face; //长相随机

//创建面容特征数组

String[] boyface = {"风流俊雅", "气宇轩昂", "相貌英俊", "五官端正", "相貌平平", "一塌糊涂", "面目狰狞" };

String[] girlface = {"美奂绝伦", "沉鱼落雁", "婷婷玉立", "身材娇好", "相貌平平", "相貌简陋", "惨不忍睹" };

//攻击方式

String[] attackDesc = {

"%s使出了一招【背心钉】,转到对方的身后,一掌向%s背心的灵台穴拍去,",

"%s使出了一招【游空探爪】,飞起身形自半空中变掌为抓锁向%s,",

"%s大喝一声,身形下伏,一招【劈雷坠地】,捶向%s双腿,",

"%s运气于掌,一瞬间掌心变得血红,一式【掌心雷】,推向%s,",

"%s阴手翻起阳手跟进,一招【没遮拦】,结结实实的捶向%s,",

"%s上步抢身,招中套招,一招【劈挂连环】,连环攻向%s,"

};

//受伤方式

String[] injuredDesc = {

"结果%s退了半步,毫发无损", "结果给%s造成一处瘀伤",

"结果一击命中,%s痛得弯下腰",

"结果%s痛苦地闷哼了一声,显然受了点内伤", "结果%s摇摇晃晃,一跤摔倒在地",

"结果%s脸色一下变得惨白,连退了好几步", "结果『轰』的一声," + "%s口中鲜血狂喷而出",

"结果%s一声惨叫,像滩软泥般塌了下去"

};

//=============================================

//成员方法

// 1.构造方法

//空参的构造方法

public WordGame() {

}

//带参的构造方法

public WordGame(String role, int blood, String gender) {

this.role = role;

this.blood = blood;

this.gender = gender;

setFace(gender);

}

//=============================================

// 2.Role部分方法

//接收外部给的数据赋值给成员变量

public void setRole(String role) {

this.role = role;

}

//向外部发送成员变量的值

public String getRole() {

return role;

}

//=============================================

// 3.Blood部分方法

//接收外部给的数据赋值给成员变量

public void setBlood(int blood) {

this.blood = blood;

}

//向外部发送成员变量的值

public int getBlood() {

return blood;

}

//=============================================

// 4.攻击行为方法

public void attack(WordGame role) {

//随机造成的伤害(1-20)

Random r = new Random();

String ad=attackDesc[r.nextInt(attackDesc.length)];

int hurt = r.nextInt(20) + 1;

role.blood = role.blood - hurt;

if (role.blood <= 0) {

role.blood = 0;

}

if (hurt <= 10) {

System.out.printf(ad+"造成了"+hurt+"点伤害 ",this.getRole(),role.getRole());

//System.out.print(this.getRole() + "举起小拳拳,打了" + role.getRole() + "一下,造成了" + hurt + "点伤害,");

} else {

System.out.printf(ad+"造成了"+hurt+"点伤害 ",this.getRole(),role.getRole());

//System.out.print(this.getRole() + "举起小拳拳,打了" + role.getRole() + "一下,触发了暴击,造成了" + hurt + "点伤害,");

}

//如果被攻击者血量小于等于0,则血量赋值为0

}

//=============================================

// 5.性别方法

//接收外部给的数据赋值给成员变量

public void setGender(String gender) {

if (gender == "男" || gender == "女") {

this.gender = gender;

} else {

System.out.println("性别输入错误!!!");

}

}

//接收外部给的数据赋值给成员变量

public String getGender() {

return gender;

}

//=============================================

// 6.面容方法

public void setFace(String face) {

//创建随机变量r

Random r = new Random();

if (gender == "男") {

//从boyface里面随机长相

this.face = boyface[r.nextInt(boyface.length)];

} else if (gender == "女") {

//从girlface里面随机长相

this.face = girlface[r.nextInt(girlface.length)];

} else {

this.face = boyface[boyface.length - 1];

}

}

public String getFace() {

return face;

}

//=============================================

//=============================================

// x.其他用法

//1.显示角色信息

public void showRoleInfo() {

System.out.println("角色:" + getRole());

System.out.println("血量:" + getBlood());

System.out.println("性别:" + getGender());

System.out.println("颜值:" + getFace());

}

//=============================================

}

学java的第九天,面向对象 23.2.15相关推荐

  1. 新手学java7编程_新手学Java 7编程:面向对象程序设计

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 面向对象程序设计 Java的核心是面向对象程序设计(OOP).面向对象方法论与Java是密不可分的,而Java所有的程序至少在某种程度上都是面向对象的.因 ...

  2. 菜鸟学java ——(一)面向对象程序设计(几个重要的概念)

    几个概念的解释: (1)面向对象(OOP:程序由对象组成,每个对象中包括功能部分和实现部分.面向对象关心能否满足用户需求,而非对象的具体实现.在OOP思想中数据被放在第一位,而操作数据的算法被放在第二 ...

  3. 【零基础学Java】第九天 IDEA的免费使用和常用设置及快捷键

  4. 漳州java,漳州学java,漳州学java学校,漳州学java效果怎么样

    漳州学java,漳州学java学校,漳州学java效果怎么样 首页 > java > 漳州学java 作者:镀金池   发布时间:2018-12-16 15:00 Javascript也是 ...

  5. 从零学Java(16)之赋值运算符

    作者简介 作者名:编程界明世隐 简介:CSDN博客专家,从事软件开发多年,精通Java.JavaScript,博主也是从零开始一步步把学习成长.深知学习和积累的重要性,喜欢跟广大ADC一起打野升级,欢 ...

  6. 学java教程之面向对象(四)

    学编程吧学java教程之面向对象(四)发布了,欢迎通过xuebiancheng8.com来访问 本次课来分析java面向对象之构造方法.什么是构造方法呢,构造方法听名字顾名思义,构造的时候执行的方法就 ...

  7. 【小白学java】java的面向对象设计:封装+继承+抽象类+接口(day06)

    课程链接:共六天 第一天:开发环境:初识java,搭建环境 第二天:语言基础:关键字.变量.常量.运算符 第三天:数据结构:基本类型.包装类型.引用类型(数组和对象) 第四天:流程控制:分支判断.循环 ...

  8. 教妹学Java(二十一):一文带你了解面向对象编程的所有概念

    你好呀,我是沉默王二,是<Web 全栈开发进阶之路>的作者,CSDN 的博客之星.<教妹学 Java>是一套非常有趣的付费专栏,除了继续保持幽默风趣的行风风格,我还力求把每一个 ...

  9. java从入门到精通_想要开始学java?你要的java从入门到精通布列如下!

    java从入门到精通,让我来告诉你! 毫无疑问,java是当下最火的编程语言之一.对于许多未曾涉足计算机编程的领域「小白」来说,深入地掌握java看似是一件十分困难的事.其实,只要掌握了科学的学习方法 ...

最新文章

  1. 面试官:高并发下,如何保证分布式唯一全局 ID 生成?
  2. 展望:模型驱动的深度学习
  3. 2.3.2便捷的电子邮件
  4. 去掉button按钮左右两边的留白
  5. 奇迹暖暖服务器不稳定,闪耀暖暖用土豆当服务器?开服仅半小时就崩溃,无数玩家疯狂吐槽...
  6. mybatis新增返回主键值
  7. 论文浅尝 - ICLR2020 | 具有通用视觉表示的神经机器翻译
  8. LeetCode(181)——超过经理收入的员工(MySQL)
  9. yaml文件中Map集合的key、value的坑
  10. php令牌桶,令牌桶限频(TokenBucket)
  11. HCDA day1
  12. [每日一氵]上古年代的 Visual Studio2015 安装
  13. 期货数据保存到excel里面
  14. 找不到anaconda prompt
  15. Android 使用MediaPlayer播放本地raw资源超简单实现点击播放效果
  16. java 序列化 文件_一种恢复Java序列化文件数据的方法与流程
  17. eclipse的web工程中导入jir包如何放到lib目录中
  18. 总结输入法挡住输入框方案
  19. cookie、session与token之间的关系
  20. IntelliJ IDEA - 闪退解决方案

热门文章

  1. 子网掩码划分,交换机,SecureCRT命令行
  2. 小程序wx.getLocation,wx.openLocation地图相关的问题
  3. 联系导师邮件 | 清华人大浙大上财 均被回复
  4. 文兄的算法题——算术表达式递归构造二叉树
  5. 原创 | 自学编程,我该如何寻找自学资源?
  6. 华为p20pro关闭HTML查看,华为p20如何调出息屏时钟 每天定时开启灭屏显示功能
  7. 数字IC手撕代码-同步FIFO
  8. DateTimePicker 日期时间选择器设置默认时间
  9. linux nc命令使用详解
  10. Python黑客攻防入门