【发布时间】: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