学java的第九天,面向对象 23.2.15

这是一个使用Java编写的文字格斗小游戏,包含两个角色进行对战。游戏逻辑包括角色信息展示、血量管理、攻击行为以及随机伤害计算。当一方血量降为0时,游戏结束并宣布胜者。代码中定义了WordGame类,包含角色属性如姓名、血量、性别以及随机生成的面容和攻击描述。
摘要由CSDN通过智能技术生成

文字格斗小游戏

  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());

}

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

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值