- class YouXi{
- static int bao = 10;
- public static void main(String[] args) {
- Scanner arr = new Scanner(System.in);
- /*
- 杀死小兵,获得 50经验值;
- 经验值到达100,升级!
- 升级后:+5攻击,+20血量,+2防御
- 然后,经验上限达到120,才能升级,每升一级,经验上限就提升20.
- 暴击,如果小于等于10,就2倍伤害
- 根据键盘录入,输入1就是杀小兵,输入0就是杀boss
- 主角:血量100,攻击15,防御5,经验0,等级1
- 小兵:血量20,攻击10,防御5
- boss:血量500,攻击30,防御15
- */
- //人物属性值设定
- Zj zj = new Zj(100,15,5,0,1);
- Xb xb = new Xb(20,10,10);
- Boss boss = new Boss(500,30,15);
-
- //
-
-
- while (true) {
- if (boss.getXl() <= 0) {
- break;
- }
- System.out.println("输入1是杀小兵,2是查询状态,0是杀boss");
- int vs = arr.nextInt();
- if (vs == 1){
- xzc(zj,xb);
- }else if (vs == 2){
- zt(zj);
- }else if (vs == 0) {
- bos(boss,zj);
- }else {
- System.out.println("您的输入有误!");
- }
- }
-
- }
- public static void bos(Boss boss,Zj zj){ //杀Boss
- int a = (int)(Math.random() * 100) + 1;
- int b = (int)(Math.random() * 100) + 1;
- if (a <= bao) {
- boss.setXl(boss.getXl() - ((zj.getGj() - boss.getFy()) * 2));
- System.out.println("**获取双倍暴击**");
- }else{
- boss.setXl(boss.getXl() - (zj.getGj() - boss.getFy()));
- }
- if (boss.getXl() > 0) {
- if (a <= bao) {
- System.out.println("boss被你砍掉"+(zj.getGj()-boss.getFy()) * 2+"滴血"+"boss剩下"+boss.getXl()+"滴血");
- }else{
- System.out.println("boss被你砍掉"+(zj.getGj()-boss.getFy())+"滴血"+"boss剩下"+boss.getXl()+"滴血");
- }
- if (boss.getGj() <= zj.getFy()) {
- zj.setXl(zj.getXl() -1);
- System.out.println("boss回击,砍掉你1滴血");
- if (zj.getXl() <= 0) {
- System.out.println("你被boss砍死了,游戏结束");
- }
- }else {
- if (b <= 20) {
- zj.setXl(zj.getXl() - (boss.getGj() - zj.getFy()) * 2);
- System.out.println("**Boss获取双倍暴击**");
- System.out.println("boss回击,砍掉你"+(boss.getGj()-zj.getFy()) * 2+"滴血");
- }else {
- zj.setXl(zj.getXl() - (boss.getGj() - zj.getFy()));
- System.out.println("boss回击,砍掉你"+(boss.getGj()-zj.getFy())+"滴血");
- }if (zj.getXl() <= 0) {
- System.out.println("你被boss砍死了,游戏结束");
- }
- }
- }else {
- if (a <= bao) {
- System.out.println("boss被你砍掉"+(zj.getGj()-boss.getFy()) * 2+"滴血");
- }else{
- System.out.println("boss被你砍掉"+(zj.getGj()-boss.getFy())+"滴血");
- }
- System.out.println("****boss已被杀死,恭喜您游戏胜利****");
- }
- }
- public static void zt(Zj zj) { //查询状态
- System.out.println("等级:"+zj.getDj()+"\n"+"血量:"+zj.getXl()+"\n"+"攻击力:"+zj.getGj()+"\n"+"防御力"+zj.getFy()+"\n"+"经验值"+zj.getJy()+"\n"+"暴击率"+bao+"%");
- }
- static int jy = 100;
- public static void xzc(Zj zj,Xb xb) { //杀小兵
- int a = (int)(Math.random() * 100) + 1;
- if (a <= bao) {
- xb.setXl(xb.getXl() - ((zj.getGj() - xb.getFy()) * 2));
- System.out.println("**双倍暴击**");
- }else{
- xb.setXl(xb.getXl() - (zj.getGj() - xb.getFy()));
- }
- if (xb.getXl() > 0) {
- if (a <= bao) {
- System.out.println("砍掉小兵"+(zj.getGj() - xb.getFy()) * 2+"滴血"+",小兵剩下"+xb.getXl()+"滴血");
- }else{
- System.out.println("砍掉小兵"+(zj.getGj() - xb.getFy())+"滴血"+",小兵剩下"+xb.getXl()+"滴血");
- }
- if (xb.getGj() <= zj.getFy()) {
- zj.setXl(zj.getXl() -1);
- System.out.println("小兵回击,砍掉你1滴血,你现在剩下"+zj.getXl()+"滴血");
- }else {
- zj.setXl(zj.getXl() - (xb.getGj() - zj.getFy()));
- System.out.println("小兵回击,砍掉你"+(xb.getGj() - zj.getFy())+"滴血,你现在剩下"+zj.getXl()+"滴血");
- }
- if (zj.getXl() <= 0) {
- System.out.println("你居然被小兵砍死了,游戏结束");
- }
- }else {
- zj.setJy(zj.getJy() + 50);
- System.out.println("小兵被杀死,经验加"+50+"现总经验为"+zj.getJy());
- xb.setXl(20);
- if (zj.getJy() >= jy) {
- zj.setJy(0);
- zj.setDj(zj.getDj()+ 1);
- zj.setXl(zj.getXl()+ 20);
- zj.setGj(zj.getGj()+ 5);
- zj.setFy(zj.getFy()+ 2);
- jy += 20;
- bao = bao + 5;
- System.out.println("\n"+"----------恭喜您升级了,现在等级为"+zj.getDj()+"级!!!!"+"\n"+"\n");
- }
- }
-
- }
- }
- abstract class RenWu {
- private int xl,gj,fy;
- public RenWu(){}
- public RenWu(int xl,int gj,int fy){
- this.xl = xl;
- this.gj = gj;
- this.fy = fy;
- }
- public void setXl(int xl){ //血量
- this.xl = xl;
- }
- public int getXl(){
- return xl;
- }
- public void setGj(int gj){ //攻击
- this.gj = gj;
- }
- public int getGj(){
- return gj;
- }
- public void setFy(int fy){ //防御
- this.fy = fy;
- }
- public int getFy(){
- return fy;
- }
- }
- class Zj extends RenWu {
- private int jy;
- private int dj;
- public Zj(){}
- public Zj(int xl,int gj,int fy,int jy,int dj){
- super(xl,gj,fy);
- this.jy = jy;
- this.dj = dj;
- }
- public void setJy(int jy){ //经验
- this.jy = jy;
- }
- public int getJy(){
- return jy;
- }
- public void setDj(int dj){ //等级
- this.dj = dj;
- }
- public int getDj(){
- return dj;
- }
- }
- class Xb extends RenWu {
- public Xb(){}
- public Xb(int xl,int gj,int fy){
- super(xl,gj,fy);
- }
- }
- class Boss extends RenWu {
- public Boss(){}
- public Boss(int xl,int gj,int fy){
- super(xl,gj,fy);
- }
- }
复制代码
前几天学完延迟,但是没时间做了,谁有兴趣拿去修改下。
try(
Thread.sleep(1000); //延迟1秒
)catch(Exception e){} |
|