1

どうすればいいのか、ちょっとだけ迷っています。私は 2 つの武器クラスを持っています。1 つは M16 用、もう 1 つは M4 用です。次に、Armory という名前のインターフェイスを実装するこれらのクラスを用意します。しかし、戦闘クラスに問題があります。戦闘クラスには、乱数を生成する乱数ジェネレーターがあり、その数に応じて、プレイヤーに武器を与えるか、何もしません。以下にコードを掲載します。

インターフェース:

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
        }
            }



}

注: 私は武器クラスを持っていますが、そこには何もありません。何を入れたらいいのかさっぱりわかりません。

助言がありますか?

前もって感謝します: シャンダン

4

1 に答える 1

0

いくつかの問題 -


A. m16 要素と m14 要素を Weapons 配列に配置するには、これらのクラスが拡張 (Weapons がクラスの場合) または実装 (weapons がインターフェイスの場合) のいずれかでなければなりません。
もう 1 つのオプションは Weapons toWeapons()、M16 クラスと M14 クラスの両方にメソッドを含めることです。

B. 間違っていたら訂正してください (ネイティブの英語話者ではありませんが、アーモリーは武器を提供する場所であるため、名前の選択は適切ではありません
。M16 と M14 は「武器」という名前のインターフェイスを実装する必要があります。意見) は配列の型である必要があります.

C. 私が理解した場合、場合によってはユーザーに武器を提供したくない -
これを実行し、if (存在を確認するかどうかを確認する) を醜くしないようにする 1 つの方法は、NoWeapon クラスに Weapon を実装させることです (現在のコードでは、Armory を実装します)。
そのメソッドには、「何もしない」という応用的な意味があります。
たとえば、weaponAmmo は常に 0 を返します。

于 2012-12-23T08:51:13.147 に答える