Dag allemaal,
Wat ik wil doen is een array maken met random getallen tussen 1 en 4, elk getal mag maar 1 keer voorkomen.
In de code laat ik dus een randomgetal generen, daarna ga ik door alle elementen van de array (random[j]) en controleer ik met een if lus of het randomgetal zich reeds bevindt in de array, als dat het geval is wordt een while lus uitgevoerd die een nieuw randomgetal genereert tot het randomgetal niet meer gelijk is aan het getal uit de array.
Dan mag het randomgetal toegevoegd worden aan de array (random = randomgetal
Dit geeft mij dus geen array van unieke getallen, de getallen kunnen nog steeds meerdere keren voorkomen, ziet iemand wat ik fout doe?
Wat ik wil doen is een array maken met random getallen tussen 1 en 4, elk getal mag maar 1 keer voorkomen.
Code:
public static int[] randomize() {
int[] random = new int[4];
int randomgetal;
for (int i = 0; i < random.length; i++) {
randomgetal = 1 + (int) (Math.random() * 4);
for (int j = 0; j < random.length; j++) {
if (randomgetal == random[j]) {
while (randomgetal == random[j]) {
randomgetal = 1 + (int) (Math.random() * 4);
}
}
}
random[i] = randomgetal;
}
return random;
}
In de code laat ik dus een randomgetal generen, daarna ga ik door alle elementen van de array (random[j]) en controleer ik met een if lus of het randomgetal zich reeds bevindt in de array, als dat het geval is wordt een while lus uitgevoerd die een nieuw randomgetal genereert tot het randomgetal niet meer gelijk is aan het getal uit de array.
Dan mag het randomgetal toegevoegd worden aan de array (random = randomgetal

Dit geeft mij dus geen array van unieke getallen, de getallen kunnen nog steeds meerdere keren voorkomen, ziet iemand wat ik fout doe?