java制作英雄联盟角色对战,基础练习

 运行代码部分截图,从角色生命值100到0 的过程

首先定义Hero类用于定义角色属性及方法

public class Hero {
    String roleName;//定义角色名字
    int roleBlood;//定义角色血量
    String roleWeapon;//定义角色武器
}

接着是攻击方法,传入目标角色的信息,通过随机Random()方法随机造成角色伤害值,并对齐目标角色的血量做出相应的减少, 定义局部变量nowBlood,当角色攻击伤害大于目标角色血量时,直接赋予目标角色nowBlood=0,并输出相应攻击提醒。

/**
     * 攻击
     *传入目标角色的参数
     * @param target
     */
    public void attack(Hero target) {
        Random random = new Random();
        int harm = random.nextInt(10) + 1;//定义伤害
        int nowBlood = target.roleBlood -= harm;
        if (nowBlood < 0) {//当伤害大于剩余血量时,英雄剩下血量为0
            nowBlood = 0;
        }
        System.out.println("英雄" + roleName + "用" + roleWeapon + "攻击了" + target.roleName +
                ",造成了" + harm + "点伤害," + target.roleName + "还剩下" + nowBlood + "点血。");

    }

 定义角色是否存活方法,当角色血量>0时,返回true,否则返回false;

/**
     * 判断英雄血量是否大于0
     * @return
     */
    public boolean isLive() {
        if (roleBlood > 0) {
            return true;
        }
        return false;
    }

 在main方法中,实例化两个对象,并赋予两个对象不同的属性值,

Hero hero1 = new Hero();
hero1.roleName = "盖伦";
hero1.roleBlood = 100;
hero1.roleWeapon = "斧子";

Hero hero2 = new Hero();
hero2.roleName = "寒冰射手";
hero2.roleBlood = 100;
hero2.roleWeapon = "箭";

通过while循环判断当两个角色都存活时,调用attack()方法,如果有一方角色生命值小于0,则输出角色K.O.了目标角色

while (hero1.isLive() && hero2.isLive()) {
      hero1.attack(hero2);//调用攻击方法
            if(!hero2.isLive()){//判断血量是否小于0
                System.out.println(hero1.roleName+"K.O.了"+hero2.roleName);
                break;
            }
      hero2.attack(hero1);
            if(!hero1.isLive()){
                System.out.println(hero2.roleName+"K.O.了"+hero1.roleName);
                break;
            }
}

完整代码如下 

package com.csi.lol;

import java.util.Random;

public class Hero {
    String roleName;
    int roleBlood;
    String roleWeapon;


    /**
     * 攻击
     *传入目标角色的参数
     * @param target
     */
    public void attack(Hero target) {
        Random random = new Random();
        int harm = random.nextInt(10) + 1;//定义伤害
        int nowBlood = target.roleBlood -= harm;
        if (nowBlood < 0) {//当伤害大于剩余血量时,英雄剩下血量为0
            nowBlood = 0;
        }
        System.out.println("英雄" + roleName + "用" + roleWeapon + "攻击了" + target.roleName +
                ",造成了" + harm + "点伤害," + target.roleName + "还剩下" + nowBlood + "点血。");

    }


    /**
     * 判断英雄血量是否大于0
     * @return
     */
    public boolean isLive() {
        if (roleBlood > 0) {
            return true;
        }
        return false;
    }


}
package com.csi.lol;

import java.util.Scanner;

public class LolStart {
    public static void main(String[] args) {
        Hero hero1 = new Hero();
        hero1.roleName = "盖伦";
        hero1.roleBlood = 100;
        hero1.roleWeapon = "斧子";

        Hero hero2 = new Hero();
        hero2.roleName = "寒冰射手";
        hero2.roleBlood = 100;
        hero2.roleWeapon = "箭";

        while (hero1.isLive() && hero2.isLive()) {
            hero1.attack(hero2);//调用攻击方法
            if(!hero2.isLive()){//判断血量是否小于0
                System.out.println(hero1.roleName+"K.O.了"+hero2.roleName);
                break;
            }
            hero2.attack(hero1);
            if(!hero1.isLive()){
                System.out.println(hero2.roleName+"K.O.了"+hero1.roleName);
                break;
            }
        }
    }
}

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值