EDIT: Fixed it by checking distance between houses.
If I create a random generated map with 2 dimension array like [50][50], how could I add random houses?
I thought about putting a random number inside every array field and if the number is like 7, then a house will be generated there.
I would have to edit the surrounding arrays to make it like a house shape.
But the problem is, what if many houses spawn close together? Then it would be weird having houses inside each other.
Is there some other solution?
int mapArray[][]= new int[50][50];
public void createMap(){
Random rand = new Random();
for (int x = 0; x < mapArray.length; x++) {
for (int y = 0; y < mapArray[x].length; y++) {
int i = rand.nextInt(200);
if (i==199) mapArray[x][y] = 2;
else if (i > 150) mapArray[x][y] = 1;
else mapArray[x][y] = 0;
}
}
}
2 means a house should be build. 0 is grass tile and 1 earth.
I draw Map like this:
public void drawMap(Graphics g){
for (int x = 0; x < mapArray.length; x++) {
for (int y = 0; y < mapArray[x].length; y++) {
switch (mapArray[x][y]) {
case 0: g.drawImage(grass, x * 64, y * 64);
break;
case 1: g.drawImage(earth, x * 64, y * 64);
break;
case 2: g.drawImage(stone, x * 64, y * 64);
break;
}
}
}
}