【问题标题】:Creating Array of weapons for Math.Random to choose from为 Math.Random 创建武器阵列以供选择
【发布时间】:2012-12-23 07:10:53
【问题描述】:

我只是有点不知道该怎么做。我有两个武器课程。一个用于 M16,另一个用于 M4。然后我让这些类实现一个名为 Armory 的接口。但我对 Combat 课程有疑问。在战斗课程中,我有一个随机数生成器,它将生成一个随机数,根据它是什么数字,要么给玩家武器,要么什么都不做。我将在下面发布代码:

界面:

public interface Armory {

public Integer weaponAmmo(int wepAmmo);
public Integer weaponDamage(int wepDamage);
public String weaponName(String wepName);   
}

M4 类(M4 和 M16 类除了伤害和弹药量外相同):

public class M4 implements Armory {

public Integer weaponAmmo(int wepAmmo) {
    wepAmmo = 10;
    return wepAmmo;
}

public Integer weaponDamage(int wepDamage) {
    wepDamage = 2;
    return wepDamage;
}

public String weaponName(String wepName) {
    wepName = "M4";
    return wepName;
}

最后是战斗课(这是我遇到问题的地方):

public class Combat {
final int chanceOfDrop = 3;

Weapons[] wepArray = {new M4(), new M16()};  //Issues here.. Don't really know how to implement this.

static boolean[] hasWeapon = {false, true};



public static int  ranNumberGen(int chanceOfDrop) {
    return (int) (Math.random()*1); 
}

private void enemyDead() {
    boolean canDrop = false;
    if(ranNumberGen(chanceOfDrop)==0){
        canDrop = true;

    }

    if(canDrop == true){
        givePlayerWeapon(wepArray[Combat.ranNumberGen(wepArray.length)] } //Issues here also.
    private static void givePlayerWeapon(int w) {
        hasWeapon[w] = true;

        for (int i = 0; i < hasWeapon.length; ++i)
        {
            if (hasWeapon[i]) System.out.println(( wepArray[i]).weaponName());  //And, last but not least, I am having Issues here
        }
            }



}

注意:我有一个武器类,但里面什么都没有。我真的不知道该放什么。

有什么建议吗?

提前致谢: 山丹

【问题讨论】:

  • 您的帖子包含两次M4
  • @JimGarrison 谢谢。我编辑了我的问题
  • @ShandanSpencer:你有什么问题?我脑子里还不清楚
  • @codeMaker 在 wepArray 上,我收到一条错误消息,提示我无法从 M4 转换为武器或从 M16 转换为武器。 givePlayerWeapons 方法说它不适用于参数。就是这样。
  • @ShandanSpencer: 能不能放个武器类最好分析一下

标签: java arrays class random interface


【解决方案1】:

几个问题 -


A. 要将 m16 和 m14 元素放入武器数组,这些类必须扩展(如果 Weapons 是类)或实现(如果武器是接口)武器。
另一种选择是有一种方法 Weapons toWeapons() 在 M16 和 M14 类中。

B. 如果我错了,请纠正我(不是以英语为母语的人 - 但军械库是提供武器的地方,所以你选择的名字不好。
M16 和 M14 应该实现一个名为“Weapon”的接口,这(以我的拙见)应该是数组的类型。

C. 如果我理解,您想在某些情况下不向用户提供武器 ​​-
完成此操作的一种方法是让 NoWeapon 类实现武器(在您当前的代码中 - 实现军械库),而不是变得丑陋(检查是否存在)。
它的方法将具有“什么都不做”的应用意义。
例如 - 武器弹药总是返回 0。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-04
    • 2012-12-10
    • 2022-06-27
    • 2011-09-18
    • 2017-11-13
    • 1970-01-01
    相关资源
    最近更新 更多