对一道题目的爆改
回合制游戏
boss攻击一波玩家
boss和玩家有名字有血量
boss有普通攻击造成13点伤害,群体技能攻击造成8点伤害,单体技能造成20点伤害
玩家只有普通攻击造成3点伤害
boss普通攻击和单体技能一次只能攻击一只玩家,群体技能是群体攻击
玩家轮流攻击boss
要求:
boss血量为100,四名玩家的血量分别是40,45,50,60
随机攻击方式随机攻击目标,不能出现负数血量,死亡玩家不可以攻击boss,也不可以被boss攻击
boss血量为0或者玩家团灭即为游戏结束
例如:
======第1回合======
boss使用了普通攻击,
玩家们使用了普通攻击。
boss的生命值为:88
玩家1的生命值为50
玩家2的生命值为47
玩家3的生命值为45
玩家4的生命值为40
爆改的方式是 删除多余的玩家 剩下一个玩家 玩家攻击由键盘控制 且有类似与能量条之类的鬼东西
代码如下
package com.neko.控制语句.练习;
import java.io.*;
import java.util.*;
//这是啥 不知道 大概是运行库之类的 反正不能删
/**
* 玩家对boss的攻击指令已经完成
*
* 程序会出bug 不知道啥原因
*/
public class 游戏交互版 {
public static void main(String[] args) throws InterruptedException {
int boss =300;
//boss血量
int boss_skill1 =15;
//boss普通攻击
int boss_skill2 =20;
//boss小技能
int boss_skill3 =70;
//boss大技能
int judgment=0;
//判定boss小技能与大招是否开启 (招数判定值)
int Players=1;
//玩家血量
int Players_skill1=10;
//玩家普通攻击
int Players_skill2=40;
//玩家小技能
int Players_skill3=100;
//玩家大招
int Players_judgment=0;
int Judge=0;
//程序开关
Scanner cin=new Scanner(System.in);
//我不知道咋实现的 反正有它就能进行输入
System.out.println("交互游戏 0.1版");
Thread.sleep(1);
System.out.println("该版本有大量bug 本人技术暂时无法解决 在技术完备后会对版本进行更新");
Thread.sleep(1);
System.out.println("玩家有三个技能 普通 小技能 大招 分别对应 1 2 3 技能代码");
Thread.sleep(1);
System.out.println("释放技能有技能点数的限制 当技能点数为0-1时无法释放除普通技能的技能");
Thread.sleep(1);
System.out.println("且boss有一套和玩家一样的技能系统 由随机数触发");
Thread.sleep(1);
System.out.println("确定完成后按下1开始游戏");
int Start =cin.nextInt();
while (Judge==0&&Start==1){
int Random_Skills =(int)(3*Math.random());
//如果判定为开启则用随机数进行筛选是否放出技能
//对boss的技能判断
if (judgment==0){
Players=Players-boss_skill1;
//当判定boss无法开启技能时 发动普通攻击且招数判定值加一
++judgment;
System.out.println("boss使用了普通的攻击对玩家造成"+boss_skill1);
System.out.println("玩家剩余血量"+Players);
Thread.sleep(1);
}else if (Random_Skills==0){
Players=Players-boss_skill1;
//此处为随机数判定
++judgment;
System.out.println("boss使用了普通的攻击对玩家造成"+boss_skill1);
System.out.println("玩家剩余血量"+Players);
Thread.sleep(1);
}else if (judgment==2&&Random_Skills==1){
Players=Players-boss_skill2;
//当符合开启技能判定后开启技能 并且将判定数值减去开启数值
judgment=judgment-2;
System.out.println("boss使用了小技能的攻击对玩家造成"+boss_skill2);
System.out.println("玩家剩余血量"+Players);
Thread.sleep(1);
}else if (judgment==3&&Random_Skills==2){
Players=Players-boss_skill3;
//如上所述
judgment=judgment-3;
System.out.println("boss使用了大招的攻击对玩家造成"+boss_skill3);
System.out.println("玩家剩余血量"+Players);
Thread.sleep(1);
}else if (judgment==1){
Players=Players-boss_skill1;
//此处为无法开启技能技能点
++judgment;
System.out.println("boss使用了普通的攻击对玩家造成"+boss_skill1);
System.out.println("玩家剩余血量"+Players);
Thread.sleep(1);
}
System.out.println("boss剩余血量为"+boss);
Thread.sleep(1);
System.out.println("boss拥有技能点"+judgment);
//判定玩家是否死亡
if (Players<=0){
System.out.println("玩家死亡 游戏结束");
break;
}
//判定玩家存活 进入玩家操作阶段
System.out.println("玩家存活 请输入技能代号");
int skill_enter =cin.nextInt();
Thread.sleep(1);
//对玩家的输入进行判定
if (skill_enter==1){
boss=boss-Players_skill1;
System.out.println("玩家使用了一技能 对boss造成了"+Players_skill1+"伤害");
Thread.sleep(1);
//玩家使用一技能 且技能点数加一
++Players_judgment;
}else if (skill_enter>=2&&Players_judgment>=2){
boss=boss-Players_skill2;
System.out.println("玩家使用了二技能 对boss造成了"+Players_skill2+"伤害");
Thread.sleep(1);
//对玩家使用二技能 判定成功 并减去技能点数
Players_judgment=Players_judgment-2;
}else if (skill_enter==3&&Players_judgment>=3){
boss=boss-Players_skill3;
System.out.println("玩家使用了三技能 对boss造成了"+Players_skill3+"伤害");
Players_judgment=Players_judgment-3;
Thread.sleep(1);
//对玩家使用三技能 判定成功 并减去技能点数
//对玩家的输入进行判定 如果不合规直接退出程序
}else if (Players_judgment<=1&&skill_enter==2){
System.out.println("技能点不足 非法输入 关闭程序");
++Judge;
}else if (Players_judgment<=1&&skill_enter==3){
System.out.println("技能点不足 非法输入 关闭程序");
++Judge;
}else if (skill_enter>=3){
System.out.println("非法输入 程序关闭");
++Judge;
}
System.out.println("玩家拥有技能点为"+Players_judgment);
Thread.sleep(1);
//对boss死亡的判定
if (boss<=0){
System.out.println("boss死亡 游戏结束");
++Judge;
break;
}
}
System.out.println("程序结束");
}
}
Comments | NOTHING