Java 创建数学武器阵列。随机选择
我只是有点不知道该怎么办。我有两门武器课。一个用于M16,另一个用于M4。然后我让这些类实现一个名为Armory的接口。但我对战斗课有意见。在战斗类中,我有一个随机数生成器,它会生成一个随机数,根据随机数的多少,它要么给玩家一件武器,要么什么都不做。我将在下面发布代码: 接口: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);
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
}
}
}