Фон
Я объявил двумерный массив с именем villainCharacteristics
. Каждая строка представляет отдельного злодея. Он состоит из 3 столбцов (типа integer), представляющих боевые значения для HP
, BulletDamage
и FireWeakness
.
Класс Villains
инкапсулирует эти 3 боевые переменные и включает в себясеттеры для присвоения им значений.
Что я пытаюсь
Я попытался использовать цикл for
, чтобы присвоить каждой строке с боевыми значениями из массива другого злодея, отсюда 5 строк массива и 5 объектов злодеяЯ создал.
Ожидаемый результат
Для пояснения, пример будет:
Злодей 1
, который должен иметь HP из 0
, bulletDamage из 2
и fireWeakness из 1
.
Проблема и код
Однако, при попытке напечатать эти значения, это не работает.
public class WesternStory {
//setting characteristics to each villain
public static void main(String[] arguments) {
int[][] villainCharacteristics = {{0,1,1},
{5,2,1},
{10,3,2},
{15,4,2},
{20,5,3}};
Villains[] villainArray = new Villains[5]; //instantiated an array of 5 villain objects
for(int i = 0; i < villainArray.length; i++){
villainArray[i] = new Villains();
}
for(int i = 0; i < 5; i++) { //initialises the different combat variables from the 2D array to each villain.
villainArray[i].setHP = villainCharacteristics[i][0]; //I get an error here
villainArray[i].setBulletDamage = villainCharacteristics[i][1]; //error
villainArray[i].setFireWeakness = villainCharacteristics[i][2]; //error
System.out.println(villainArray[0].fireWeakness); //trying to print the value of fireWeakness within the first stored villain object.
}
Source code of Class Villains
public class Villains {
//attacking variables:
private int hp;
private int bulletDamage;
private int fireWeakness;
private int coins;
//attack getters
public int getHp(){
return hp;
}
public int getBulletDamage(){
return bulletDamage;
}
public int getFireWeakness(){
return fireWeakness;
}
public int getCoins() {
return coins;
}
//attack setters
public void setHp(int hp){
this.hp = hp;
}
public void setBulletDamage(int bulletDamage){
this.bulletDamage = bulletDamage;
}
public void setFireWeakness(int fireWeakness){
this.fireWeakness = fireWeakness;
}