Hallo,
ich habe einen Kopfrechentrainer geschrieben bei dem man die Möglichkeit hat über eine GUI auszuwählen in welchem Bereich die beiden Zahlen liegen sollen. Per Zufallsgenerator werden dann die Aufgaben erzeugt.
Es funktioniert auch alles wunderbar, nur wenn ich für die erste Zahl auswähle, dass sie zwischen 2 und 9 liegen soll, ist die Zahl immer die selbe, sprich der Generator funktioniert nicht. Bei allen anderen Zahlen geht es. Nur nicht bei 2 und 9. Woran kann sowas liegen und vorallem wie finde ich so was raus? Das Programm funktioniert ja eigenltich. Eigentlich..
Zuerst hatte ich immer die gleichen Aufgaben, weil der Zufallsgenerator mit dem gleichen Seed erzeugt wurde. Dafür habe ich dann ein Delay eingebaut. Aber daran kann es diesmal nicht liegen...
Die Klasse Task
Was auch noch kurios ist:
Wenn ich
schreibe, tritt der Fehler bei der zweiten Zahl auf und wenn ich es drehe bei der Ersten.
Hier noch der Zufallsgenerator (der böserweise auch Random heißt):
Ich vermute es will sich niemand durch den kompletten wüsten Anfänger-Code wühlen, aber falls Interesse besteht, sagt Bescheid. Ich hoffe ihr könnt mir weiterhelfen.
Gruß
ich habe einen Kopfrechentrainer geschrieben bei dem man die Möglichkeit hat über eine GUI auszuwählen in welchem Bereich die beiden Zahlen liegen sollen. Per Zufallsgenerator werden dann die Aufgaben erzeugt.
Es funktioniert auch alles wunderbar, nur wenn ich für die erste Zahl auswähle, dass sie zwischen 2 und 9 liegen soll, ist die Zahl immer die selbe, sprich der Generator funktioniert nicht. Bei allen anderen Zahlen geht es. Nur nicht bei 2 und 9. Woran kann sowas liegen und vorallem wie finde ich so was raus? Das Programm funktioniert ja eigenltich. Eigentlich..
Zuerst hatte ich immer die gleichen Aufgaben, weil der Zufallsgenerator mit dem gleichen Seed erzeugt wurde. Dafür habe ich dann ein Delay eingebaut. Aber daran kann es diesmal nicht liegen...
Die Klasse Task
Java:
public class Task{
private double figure1, figure2;
private double solution;
private char operator;
private Random r;
public Task() {
try {
Thread.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
r = new Random();
this.operator = r.getOperator(Options.getOperator());
this.figure2 = r.getInt(Options.getMinF2(), Options.getMaxF2());
this.figure1 = r.getInt(Options.getMinF1(), Options.getMaxF1());
switch(this.operator){
case '+': this.solution = this.figure1 + this.figure2;
break;
case '-': this.solution = this.figure1 - this.figure2;
break;
case '*': this.solution = this.figure1 * this.figure2;
break;
case '/': this.solution = this.figure1 / this.figure2;
break;
}
}
Wenn ich
Java:
this.figure2 = r.getInt(Options.getMinF2(), Options.getMaxF2());
this.figure1 = r.getInt(Options.getMinF1(), Options.getMaxF1());
Hier noch der Zufallsgenerator (der böserweise auch Random heißt):
Java:
public class Random {
private java.util.Random r;
public Random(){
r = new java.util.Random(System.currentTimeMillis());
}
public int getInt(int lower, int upper){
return r.nextInt(upper + 1 - lower) + lower;
}
}
Ich vermute es will sich niemand durch den kompletten wüsten Anfänger-Code wühlen, aber falls Interesse besteht, sagt Bescheid. Ich hoffe ihr könnt mir weiterhelfen.
Gruß
Zuletzt bearbeitet: