0

I'm trying to get this code to loop through the nested string/array and output the value based on the given input value.

        // wepName - {"Weapon Name Here", "Player Damage", "Block Damage", "Range"}
    String[] weapon_44Magnum = {"44 Magnum", "150", "50", "45"};
    String[] weapon_airFilterLandMine = {"Air Filter Land Mine", "300", "200", "5"};
    String[] weapon_huntingRifle = {"Hunting Rifle", "125", "50", "100"};


    //Nested string arrays
    public String[] string_allWeapons[] = {weapon_44Magnum,weapon_airFilterLandMine,weapon_huntingRifle};



public String GetPlayerDamage(String weaponName) {

    // Declaring var
    String ret = "-1";

        for (int j = 0; j < string_allWeapons[0].length; j++) {

            ret = string_allWeapons[j][1] = ret;
            System.out.println(string_allWeapons[j][1]);
        }
    return ret;
}

Any solutions?

2 Answers 2

1

You could add an if to check which array is required by the parameter, then add a second loop.

public class Stuff {
    // wepName - {"Weapon Name Here", "Player Damage", "Block Damage", "Range"}
    String[] weapon_44Magnum = {"44 Magnum", "150", "50", "45"};
    String[] weapon_airFilterLandMine = {"Air Filter Land Mine", "300", "200", "5"};
    String[] weapon_huntingRifle = {"Hunting Rifle", "125", "50", "100"};

    //Nested string arrays
    String[][] string_allWeapons = {weapon_44Magnum,weapon_airFilterLandMine,weapon_huntingRifle};

    public static void main(String[] args) {
        new Stuff().getPlayerDamage("44 Magnum");
    }
    public  String getPlayerDamage(String weaponName) {
        String ret = "-1";
        for (int i = 0; i < string_allWeapons.length; i++) {
            if(string_allWeapons[i][0].equals(weaponName)){
                ret="";
                for (int j = 1; j < string_allWeapons[i].length; j++) {
                    ret += " "+string_allWeapons[i][j];
                }
                System.out.println(ret);
                return ret;
            }
        }
        return ret;
    }
}
Sign up to request clarification or add additional context in comments.

Comments

0

My first solution would be making a new class called "Weapon" with those variables. Its just a lot easier to keep track of. Then you could make a 1-D array of weapons and use getters and setters to get the value of each weapon :). Then you could loop through the array and do something like this:

if(weapon.getName().equals(weaponName)){
    System.out.println(weapon.getPlayerDamage());
    return weapon.getPlayerDamage();
}

I am still getting used to this code block thing...Anyways making a new class is the way to go. Hopefully this helps. Let me know if you need any clarification :)

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.