永发信息网

我看到你有回复一个JAVA游戏的问题

答案:1  悬赏:30  手机版
解决时间 2021-04-01 16:29
我看到你有回复一个JAVA游戏的问题
最佳答案
哦,我看到你留言了, 找到了以前写的代码,你参考下吧.
//人物属性包括生命,攻击,防御,运气,人物随机吃血瓶,当一方的生命为0时游戏结束。

class Hero {//定义一个角色类,拥有基础属性和战斗的方法
public String id;// 角色名
public int total;// 总血量
public int hp;// 血
public int att;// 攻击
public int def;// 防御
public int luck;// 运气

public Hero(String id, int hp, int att, int def, int luck) {
this.id = id;
this.hp = hp;
this.att = att;
this.def = def;
this.luck = luck;
this.total = hp;// 初始血值赋值给总血量
}
//定义回血的方法
public void addHp(int point) {
if (hp + point <= total) {
hp = hp + point;
} else {
point = total - hp;
hp = total;
}
System.out.println(" 运气事件:" + id + "吃了血瓶增加了" + point + "点生命值");
}
//判断英雄是否存活
boolean isAlive() {
return hp > 0;
}
//如果需要每局战斗前都显示自己的血量,那么可以调用这个函数
public String sayHp() {
return id + "生命值" + hp;
}
//输出的样式
@Override
public String toString() {
return id + "初始状态:" + "血:" + hp + "攻:" + att + "防:" + def + "运气:" + luck;
}
//战斗的方法
void startAtt(Hero hero) {
int luckAtt = (int) (Math.random() * 10) * luck;//随机的攻击力0~10乘以运气值
int tempAtt = att + luckAtt;//总攻击力= 基础攻击+随机的运气攻击
hero.hp = hero.hp + hero.def - tempAtt;//剩余血量= 现在的血+防御- 伤害
System.out.println(id + "对" + hero.id + "造成了" + tempAtt + "点伤害");

if (!hero.isAlive()) {
System.out.println(id + "取得了胜利");
} else {
//如果角色还存在,那么有一定几率触发回血事件
int x = (int) (Math.random() * 20 + 1);
if (x <= hero.luck) {
hero.addHp(x * 5);//回血量随机
}
}
}

}
//控制攻击的类
class DuelControl {
Hero h1;
Hero h2;

public DuelControl(Hero h1, Hero h2) {//初始化
this.h1 = h1;
this.h2 = h2;
}
//开始战斗
void beginDuel() {

System.out.println("*********" + h1.id + "和" + h2.id + "进入了角斗场" + "*********");
System.out.println(h1 + "
" + h2);//输出初始状态
int i = 0;//循环次数
while (h1.isAlive() && h2.isAlive()) {//循环条件,两个角色都还有血
i++;
System.out.println("===========第" + i + "回合=============");
h1.startAtt(h2);//先让h1攻击h2
if (!h2.isAlive()) {
break;
}
try {
Thread.sleep(1000);// 暂停1000毫秒=1秒
} catch (InterruptedException e) {
e.printStackTrace();
}
h2.startAtt(h1);//再让h2攻击h1
if (!h1.isAlive()) {
break;
}
}
}
}
//测试类
public class GameDemo {
public static void main(String[] args) {
System.out.println("");
System.out.println("");
System.out.println("
");
Hero lucy = new Hero("lucy", 1000, 290, 60, 8);
Hero jcak = new Hero("jcak", 1200, 200, 120, 10);
new DuelControl(lucy, jcak).beginDuel();
}
}来自:求助得到的回答
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
魔兽世界术士职业怎么样?适合新手玩吗?
一大帮人聚在一起打牌,赌一点钱,但数额不是
问一个小白的问题啊~~没考过计算机一、二级可
续字组成语成语
间歇性掉帧卡成ppt怎么解决
汽车氮气推进装置
中经工信是什公司啊?
石门子在哪里啊,我有事要去这个地方
吃什么能去内火
若a>0,b>0,且1/a+1/b=√(ab)。 (1
电源的6+2pin接口怎么接
花钟二十四小时开的是什么花
在康熙字典中10笔五行属金字有哪些
大家说说,遥控船用双电机好还是用单电机和舵
每晚睡觉前,将腿靠在墙壁,与身体成90度角,
推荐资讯
如图所示,一电子束沿图中箭头所示方向通过两
07版word 如何从第六页添加页眉和页码?!
不买房怎么取出工厂交的公积金
世界上最愚蠢的人?
猫可以吃黄鸭鱼吗
头发稀少和真菌有关系么
LNG管道绝热材料有哪些
72.4320.259200数字用语什么意思
下列句子没有语病的一项是(2分)A在新版课标
普通发票的税率是多少??
工厂里上班导致右手终生残废应要多少赔偿
求问植物水葫芦为何长成这样了?如何恢复正常
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?