Hier ihr.
Ich habe folgendes Problem.
In meinem code kommt es zu einem Stackoverflow wegen einer Rekursion. aber hier erstmal der code
wie ich mir denke liegt das daran das wer zu oft würfeln muss bis er ne zahl findet die net im array steckt.
gibts da ne möglichkeit des zu umgehen oder hab ich nen andern fehler gemacht ?
mfg schonmal Sun
Ich habe folgendes Problem.
In meinem code kommt es zu einem Stackoverflow wegen einer Rekursion. aber hier erstmal der code
Code:
public class random {
/**
* @param args the command line arguments
*/
int[] spielerAnz = new int[60];
int spAnz;
public static void main(String[] args) {
// TODO code application logic here
// 6 Spieler sollen gelost inhalt des arrys ist ja erstmal egal
String[] s = new String[6];
new random(s);
}
// Konst.
public random(String[] spieler)
{
// Kleiner ausgabe test
spAnz = spieler.length;
for(int i=0; i<spAnz; i++)
{
int nrTest = wuerfle();
System.out.println(nrTest);
}
}
// Rekursive Funktion
public int wuerfle()
{
int nr = (int) ((Math.random()*spAnz)+1);
if(test(nr))
{
wuerfle();
}
if(test(nr) == false)
{
schreibe(nr);
return nr;
}
return 0;
}
// Testet ob die zahl schon im arry steht wenn ja wird true zurück gegeben
public boolean test (int test)
{
for(int i=0; i<spielerAnz.length; i++)
{
if(spielerAnz[i] == test)
{
return true;
}
}
return false;
}
// schreibt die zahl ins array
public boolean schreibe(int wurf)
{
for(int i=0; i<spielerAnz.length; i++)
{
if(spielerAnz[i] == 0)
{
spielerAnz[i] = wurf;
return true;
}
}
return false;
}
}
wie ich mir denke liegt das daran das wer zu oft würfeln muss bis er ne zahl findet die net im array steckt.
gibts da ne möglichkeit des zu umgehen oder hab ich nen andern fehler gemacht ?
mfg schonmal Sun