java__对战游戏随机先攻、技能及伤害——紫禁之巅

import java.util.Random;


public class jianghufenyun2 {


public static void main(String[] args) throws InterruptedException {
//throws抛出异常,用于Thread.sleep();等待时间
Random r = new Random();//创建随机数对象r
int js1 = 960, mp1 = 630, js2 = 1380, mp2 = 500, xgq, jgs = 0, sh = 0;
int xhmp = 0, huihes = 0;
double baoji = 0.52,ged=0.42;
//角色1、角色2血量与内力(js1,js2,mp1,mp2),角色先攻权xgq,角色武功jgs,技能伤害sh
//武功消耗的内力xhmp,比武回合数huihes,暴击率baoji,格挡率ged
String[] jgfs = { "寒梅凌雪", "削梅三剑", "一剑吹雪", "雪没无晴", "雪尽晴开" };
String[] jgfs1 = { "白云悠悠", "云变风涌", "剑倾天下", "一剑西来", "天外飞仙" };
//两个角色的武功
System.out.println("紫禁之巅,天下第一>>>>>>>");//缓冲
Thread.sleep(3000);//等待3s,
System.out.println("一剑西来,天外飞仙>>>>>>>");
Thread.sleep(3000);
System.out.println("风霆吹雪,剑本无情>>>>>>>");
Thread.sleep(3000);
System.out.println("叶孤城,西门吹雪一证剑道巅峰!\n");
Thread.sleep(3000);
while (js1 > 0 && js2 > 0 && huihes < 15) {//定义比武胜负条件
huihes++;//回合数累加
System.out.print("第" + huihes + "回合:");
xgq = r.nextInt(2);//随机先攻权0或1
jgs = r.nextInt(5);//从武功数组中随机出一个武功
double randombj = (Math.random()*1)+0;
// 随机一个double型的数,通过该值与暴击几率的比较实现暴击
if (mp1 > 0 || mp2 > 0) {//内力不为0方可施放武功
switch (jgs) {//选择武功
case 0:
sh = (int) (Math.random() * 9) + 36;
//伤害在36~45之间浮动[36,36+9]
xhmp = 0;//消耗的内力
break;
case 1:
sh = (int) (Math.random() * 17) + 57;
xhmp = 16;
break;
case 2:
sh = (int) (Math.random() * 16) + 86;
xhmp = 53;
break;
case 3:
sh = (int) (Math.random() * 9) +175;
xhmp = 72;
break;
case 4:
sh = (int) (Math.random() * 15) + 300;
xhmp = 159;
break;
default:
break;
}
}
if (xgq == 0) {
System.out.println("西门吹雪开始进攻");
mp1 = mp1 - xhmp;//剩余内力
if (mp1 >= 0) {
System.out.println("西门吹雪使用【" + jgfs[jgs] + "】攻击了叶孤城,消耗了【" 
+ xhmp + "】点内力" + ",剩余【" + mp1 + "】点内力。");
if (randombj <= baoji) {
//将随机数与暴击几率baoji比较,若在暴击范围内,则暴击。
//如100%暴击,则随机数始终小于暴击几率,则必定暴击。
sh = sh * 2;//暴击后伤害翻倍
ged=0;//暴击时格挡率为0
System.out.println("【" + jgfs[jgs] + "】暴击了!叶孤城未能挡下");
}
if(randombj<=ged)//不暴击时格挡
{
sh=0;//格挡后伤害为0
System.out.println("叶孤城挡下了【"+jgfs[jgs]+"】");
}
js2 = js2 - sh;//剩余血量
System.out.println("叶孤城受到【" + sh + "】点伤害," + "剩余【" + js2 + "】点血量\n");
Thread.sleep(3000);
} else {
System.out.print("西门吹雪内力不足以使用【" + jgfs[jgs] + "】,使用【斩梅剑】攻击了叶孤城。");
sh=10;
if (randombj <= baoji) {
sh = 20;
System.out.println("【斩梅剑】暴击了!");
}
js2 =js2- sh;
System.out.println("叶孤城受到【" + sh + "】点伤害," + "剩余【" + js2 + "】点血量\n");
Thread.sleep(3000);
}
continue;
}
if (xgq == 1) {
System.out.println("叶孤城开始进攻");
mp2 = mp2 - xhmp;
if (mp2 > 0) {
System.out.println("叶孤城使用【" + jgfs1[jgs] + "】攻击西门吹雪,消耗了【" + xhmp + "】点内力," + "剩余【" + mp2 + "】点内力");
js1 = js1 - sh;
System.out.println("西门吹雪受到【" + sh + "】点伤害," + "剩余【" + js1 + "】点血量\n");
Thread.sleep(3000);
} else {
System.out.println("叶孤城内力不足以使用【" + jgfs1[jgs] + "】,使用【白云苍狗】攻击了西门吹雪");
js1 = js1 - 10;
System.out.println("西门吹雪受到【" + 10 + "】点伤害," + "剩余【" + js1 + "】点血量\n");
Thread.sleep(3000);
}
continue;
}
}
if (js1 <= 0)
System.out.println("西门吹雪【血量归零】,叶孤城【胜】");
if (js2 <= 0)
System.out.println("叶孤城【血量归零】,西门吹雪【胜】");
if (js1 > 0 && js2 > 0) {//15回合后血量仍未归零,则根据彼此血量大小来判定胜负
if (js1 > js2)
System.out.println("回合结束," + "西门吹雪剩余【" + js1 + "】血量," + "叶孤城剩余【" + js2 + "】血量," + "西门吹雪【胜】");
if (js2 > js1)
System.out.println("回合结束," + "西门吹雪剩余【" + js1 + "】血量," + "叶孤城剩余【" + js2 + "】血量," + "叶孤城【胜】");
if (js1 == js2)//血量相等则为平手
System.out.println("回合结束,【平手】");
}
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值