Cześć! Sorry że zawracam głowy z taką błahostką, ale jak to na świeżaka przystało - nie mogę sobie poradzić.
Zacząłem pisać taką klasę:
import java.util.Random;
public class Map {
private int MapSize;
private String[][] array = new String[MapSize][MapSize];
public Map(int x)
{
MapSize = x;
for(int i = 0; i<MapSize;i++)
{
System.out.print("\n");
for(int j=0;j<MapSize;j++)
{
System.out.print("[ ]");
array[i][j]="[ ]";
}
}
}
void showMap()
{
for(int i=0; i< MapSize; i++){
for(int j=0; j< MapSize; j++)
System.out.print(array[i][j]);
System.out.println();
}
}
void spawnGift()
{
Random randomSpawn = new Random();
int Xposition = randomSpawn.nextInt(MapSize);
int Yposition = randomSpawn.nextInt(MapSize);
array[Xposition][Yposition] = "[X]";
}
}
W klasie main mam:
Map mapa = new Map(10);
Jednak wywala mi błąd:
java.lang.ArrayIndexOutOfBoundsException: 0
Po zmianie kodu i dopisaniu wartości * private int MapSize; = 10;*
I skasowaniu wartości z konstruktora - kod działa. Jednak zależy mi na tym żeby wartość MapSize, była przypisywana przez konstruktor.
Jak tak zrobić? Jeżeli coś nie zrozumiale piszę, to śmiało krzyczcie, postaram się wytłumaczyć o co mi chodzi ;)
Pozdrawiam!