ingen dubletter
Jeg har et problem med at denne klasse skulle lave points der ikke overlapper hianden men det sker af og til at det sker hvad er der galt med koden, det er altså sådan at food ikke må have den samme point som wallimport java.util.*;
import java.awt.*;
public class MapBuilder {
private static Vector shared;
public static Vector buildLevel1() {
shared = new Vector();
Vector res = new Vector();
int i,j;
for(i = 100,j = 50;j < 200 ;j += 5) {
Point p = new Point(i,j);
Wall w = new Wall(p,0);
res.add(w);
}
for(i = 200,j = 50;j < 200 ;j += 5) {
Point p = new Point(i,j);
Wall w = new Wall(p,0);
res.add(w);
shared.add(w);
}
return res;
}
public static Vector buildLevel1FoodItems() {
int[] range = new int[80];
Vector v = new Vector();
int i,j;
for(i=0,j = 0;j < range.length;i +=5,j++) {
range[j] = i;
System.out.println(range[j]);
}
int random = randomInt(0,80);
i = 0;
while (i < 5) {
if (i == -1) { i = 0; }
int x = range[randomInt(5,40)];
int y = range[randomInt(5,40)];
Point p = new Point(x,y);
Food mapfood = new Food(p,10);
boolean found = false;
for(j = 0;j < shared.size() && !found;j++) {
Wall w = (Wall)shared.elementAt(j);
Point wallPoint = w.getPosition();
if (p.x == wallPoint.x && p.y == wallPoint.y) {
found = true;
}//end if
}//end for
if (!found) {
v.add(mapfood); i++; }
else {
i--;
}
}//end while
return v;
}
public static int randomInt(int a, int b) {
if (a > b) throw new IllegalArgumentException();
if (a == b) return a;
double x = Math.random();
int n = a + (int)(x * (b - a + 1));
if (n > b) n = b;
return n;
}//end randomInt
}//end mapBuilder
