学java的第九天,面向对象 23.2.15
文字格斗小游戏
主程序
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;
}
}
}
}
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相关推荐
- 新手学java7编程_新手学Java 7编程:面向对象程序设计
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 面向对象程序设计 Java的核心是面向对象程序设计(OOP).面向对象方法论与Java是密不可分的,而Java所有的程序至少在某种程度上都是面向对象的.因 ...
- 菜鸟学java ——(一)面向对象程序设计(几个重要的概念)
几个概念的解释: (1)面向对象(OOP:程序由对象组成,每个对象中包括功能部分和实现部分.面向对象关心能否满足用户需求,而非对象的具体实现.在OOP思想中数据被放在第一位,而操作数据的算法被放在第二 ...
- 【零基础学Java】第九天 IDEA的免费使用和常用设置及快捷键
- 漳州java,漳州学java,漳州学java学校,漳州学java效果怎么样
漳州学java,漳州学java学校,漳州学java效果怎么样 首页 > java > 漳州学java 作者:镀金池 发布时间:2018-12-16 15:00 Javascript也是 ...
- 从零学Java(16)之赋值运算符
作者简介 作者名:编程界明世隐 简介:CSDN博客专家,从事软件开发多年,精通Java.JavaScript,博主也是从零开始一步步把学习成长.深知学习和积累的重要性,喜欢跟广大ADC一起打野升级,欢 ...
- 学java教程之面向对象(四)
学编程吧学java教程之面向对象(四)发布了,欢迎通过xuebiancheng8.com来访问 本次课来分析java面向对象之构造方法.什么是构造方法呢,构造方法听名字顾名思义,构造的时候执行的方法就 ...
- 【小白学java】java的面向对象设计:封装+继承+抽象类+接口(day06)
课程链接:共六天 第一天:开发环境:初识java,搭建环境 第二天:语言基础:关键字.变量.常量.运算符 第三天:数据结构:基本类型.包装类型.引用类型(数组和对象) 第四天:流程控制:分支判断.循环 ...
- 教妹学Java(二十一):一文带你了解面向对象编程的所有概念
你好呀,我是沉默王二,是<Web 全栈开发进阶之路>的作者,CSDN 的博客之星.<教妹学 Java>是一套非常有趣的付费专栏,除了继续保持幽默风趣的行风风格,我还力求把每一个 ...
- java从入门到精通_想要开始学java?你要的java从入门到精通布列如下!
java从入门到精通,让我来告诉你! 毫无疑问,java是当下最火的编程语言之一.对于许多未曾涉足计算机编程的领域「小白」来说,深入地掌握java看似是一件十分困难的事.其实,只要掌握了科学的学习方法 ...
最新文章
- 面试官:高并发下,如何保证分布式唯一全局 ID 生成?
- 展望:模型驱动的深度学习
- 2.3.2便捷的电子邮件
- 去掉button按钮左右两边的留白
- 奇迹暖暖服务器不稳定,闪耀暖暖用土豆当服务器?开服仅半小时就崩溃,无数玩家疯狂吐槽...
- mybatis新增返回主键值
- 论文浅尝 - ICLR2020 | 具有通用视觉表示的神经机器翻译
- LeetCode(181)——超过经理收入的员工(MySQL)
- yaml文件中Map集合的key、value的坑
- php令牌桶,令牌桶限频(TokenBucket)
- HCDA day1
- [每日一氵]上古年代的 Visual Studio2015 安装
- 期货数据保存到excel里面
- 找不到anaconda prompt
- Android 使用MediaPlayer播放本地raw资源超简单实现点击播放效果
- java 序列化 文件_一种恢复Java序列化文件数据的方法与流程
- eclipse的web工程中导入jir包如何放到lib目录中
- 总结输入法挡住输入框方案
- cookie、session与token之间的关系
- IntelliJ IDEA - 闪退解决方案