Java 创建数学武器阵列。随机选择

Java 创建数学武器阵列。随机选择,java,arrays,class,random,interface,Java,Arrays,Class,Random,Interface,我只是有点不知道该怎么办。我有两门武器课。一个用于M16,另一个用于M4。然后我让这些类实现一个名为Armory的接口。但我对战斗课有意见。在战斗类中,我有一个随机数生成器,它会生成一个随机数,根据随机数的多少,它要么给玩家一件武器,要么什么都不做。我将在下面发布代码: 接口: public interface Armory { public Integer weaponAmmo(int wepAmmo); public Integer weaponDamage(int wepDamage);

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

接口:

public interface Armory {

public Integer weaponAmmo(int wepAmmo);
public Integer weaponDamage(int wepDamage);
public String weaponName(String wepName);   
}
M4等级(M4和M16等级相同,但伤害和弹药量不同):

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

公共级战斗{
最终int chanceOfDrop=3;
武器[]wepArray={new M4(),new M16()};//这里的问题..我真的不知道如何实现这一点。
静态布尔值[]haswarm={false,true};
公共静态int ranNumberGen(int chanceOfDrop){
返回值(int)(Math.random()*1);
}
私有无效enemyDead(){
布尔值canDrop=false;
如果(ranNumberGen(chanceOfDrop)==0){
坎德罗普=真;
}
如果(canDrop==true){
givePlayerWeapon(wepArray[batch.ranNumberGen(wepArray.length)]}//这里也有问题。
专用静态播放器武器(int w){
haswarm[w]=真;
对于(int i=0;i
注意:我有一个武器类,但里面什么都没有。我真的不知道该放什么进去

有什么建议吗

提前感谢:
山丹

几个问题-


A.要将m16和m14元素放入武器数组,这些类必须扩展(如果武器是一个类)或执行(如果武器是接口)武器。
另一个选择是有一个
武器拖缆()
在M16和M14类中。

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

C.如果我理解,在某些情况下,您希望不向用户提供武器-
一种方法是让NoWeapon类实现武器(在您当前的代码中-实现武器库中)。
其方法将具有“不做任何事情”的应用意义。
比如说-
武器弹药将始终返回0。

您的帖子包含
M4
twice@JimGarrison谢谢,我编辑了我的Question@ShandanSpencer当前位置你的问题是什么?我的问题没有弄清楚mind@codeMaker在wepArray上,我得到一个错误,说我不能从M4转换为武器或从M16转换为武器。给定的玩家武器相遇了霍德说它不适用于争论。仅此而已。@ShandanSpencer:如果你能把武器分类,最好是分析一下
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
        }
            }



}