Партийное моделирование и случайный генератор

78
9

Я пытаюсь создать симуляцию для вечеринки. Будет 4 класса: хост, инженер, художник и ученый. Каждый из них должен быть помещен в поле 50x50. Я должен создать случайный генератор, чтобы сделать это, и я действительно застрял в этой части уже много часов, так как я никогда не делал случайных генераторов, поэтому я надеюсь, что смогу получить некоторую помощь. (Я новичок, да.) Я в настоящее время получаю эту ошибку: "Исключение в потоке" main "java.lang.NullPointerException в Simulator.populate(Simulator.java:88) на Simulator.partyStatus(Simulator.java: 101) в Simulator. (Simulator.java:56) в Simulator.main(Simulator.java:41) СТРОИТЬ УСПЕШНО (общее время: 3 секунды) "

Если есть другой, лучший способ сделать это, я был бы более чем счастлив увидеть его, и если вам понадобится более подробная информация об этом, тогда просто спросите.

Заранее спасибо!

public class Simulator {

private static double ARTIST_CREATION_PROBABILITY = 0.2;
private static double HOST_CREATION_PROBABILITY = 0.2;
private static double ENGINEER_CREATION_PROBABILITY = 0.2;
private static double SCIENTIST_CREATION_PROBABILITY = 0.2;

private static int seed;

private ArrayList<Artist> artists;
private ArrayList<Scientist> scientists;
private ArrayList<Engineer> engineers;
private ArrayList<Host> hosts;
private ArrayList<People> people;

private int depth;
private int width;
private Field field;
// private static int step;
private SimulatorView simView;

Random rand = RandomGenerator.getRandom();

public static void main(String [] args) {
// SimulatorView simView = new SimulatorView(50,50);
Simulator simulator = new Simulator(50,50);

}

/**
*
* @param depth
* @param width
*/
public Simulator(int depth, int width) {
this.simView = new SimulatorView(depth, width);
this.field = new Field(depth, width);
this.depth = depth;
this.width = width;
this.partyStatus(simView, field);

RandomGenerator.initialiseWithSeed(seed);
}

public void populate(Field field){
// People host = new Host();
// People artist = new Artist();
// People scientist = new Scientist();
// People engineer = new Engineer();
// field.place(artist, 10, 10);
// field.place(scientist, 20, 20);
// field.place(engineer, 30, 30);
// field.place(host,40,40);

Random rand = RandomGenerator.getRandom();
field.clear();

for(int row = 0; row<field.getDepth(); row++){
for(int col = 0; col<field.getWidth(); col++){
if(rand.nextDouble() < ARTIST_CREATION_PROBABILITY){
Artist artist = new Artist();
artists.add(artist);
field.place(artist, row, col);
}
else if(rand.nextDouble() < SCIENTIST_CREATION_PROBABILITY){
Scientist scientist = new Scientist();
scientists.add(scientist);
field.place(scientist, row, col);
}
else if(rand.nextDouble() < ENGINEER_CREATION_PROBABILITY){
Engineer engineer = new Engineer();
engineers.add(engineer);
field.place(engineer, row, col);
}
else if(rand.nextDouble() < HOST_CREATION_PROBABILITY){
Host host = new Host();
hosts.add(host);
field.place(host, row, col);
}
}
}
}

public void partyStatus(SimulatorView simView, Field field){
this.populate(field);
simView.setColor(Artist.class, Color.ORANGE);
simView.setColor(Scientist.class, Color.BLUE);
simView.setColor(Engineer.class, Color.MAGENTA);
simView.setColor(Host.class, Color.GREEN);
simView.showStatus(1, field);
}
}

спросил(а) 2016-11-27T20:44:00+03:00 3 года, 2 месяца назад
0
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема