horse_99
Legacy Member
Hallo allemaal,
Ik ben bezig met het maken van een Java game. De spelers krijgen een speelveld te zien waarbij Z x Z kaarten liggen. Achter elke kaart schuilt een getal. De spelers mogen om de beurt twee kaarten omdraaien. Als de getallen achter deze kaarten gelijk zijn, wint de speler een punt. "Raadje plaatje" met getallen dus.
Ik zit echter met een probleem voor het uitdelen van de getallen aan de kaarten.
value[j] is de array die gevuld moet worden, waarbij telkens 1 willekeurig getal wordt uitgedeeld aan twee kaarten. Eerst wordt voor ieder element in de array de waarde op 0 gezet.
Ik heb het volgende geprobeerd.
Dit voorbeeld werkt dus niet. Het gaf geen fouten, maar het programma start gewoon niet op, waarschijnlijk omdat het zeer lang duurt vooraleer alle waarden van de kaarten geset zijn. Mijn PC werkt ook verschrikkelijk traag op dat moment.
Iemand suggesties?
Alle hulp is welkom.
MVG, Kristof.
Ik ben bezig met het maken van een Java game. De spelers krijgen een speelveld te zien waarbij Z x Z kaarten liggen. Achter elke kaart schuilt een getal. De spelers mogen om de beurt twee kaarten omdraaien. Als de getallen achter deze kaarten gelijk zijn, wint de speler een punt. "Raadje plaatje" met getallen dus.
Ik zit echter met een probleem voor het uitdelen van de getallen aan de kaarten.
value[j] is de array die gevuld moet worden, waarbij telkens 1 willekeurig getal wordt uitgedeeld aan twee kaarten. Eerst wordt voor ieder element in de array de waarde op 0 gezet.
Ik heb het volgende geprobeerd.
Code:
for(i = 0; i <= n; i++)
{
// Getal berekenen dat uitgedeeld moet worden aan de kaarten.
random = (int) (100 * Math.random() + 1);
// While-lus waarin 2 kaarten worden geselecteerd die nog geen waarde hebben.
while(done == false)
{
done = false;
// Array-posities kiezen.
a = (int) (n * Math.random());
b = (int) (n * Math.random());
c = (int) (n * Math.random());
d = (int) (n * Math.random());
// Als deze waarden nog niet gezet zijn, ...
if(value[a][b] == 0 && value[c][d] == 0)
{
value[a][b] = random;
value[c][d] = random;
// done op true zetten: men mag uit de while-lus gaan, en terug in de volgende doorloop van de for-lus.
done = true;
}
else
{
// done op false zetten, er moeten opnieuw twee kaarten gekozen worden.
done = false;
}
}
}
Dit voorbeeld werkt dus niet. Het gaf geen fouten, maar het programma start gewoon niet op, waarschijnlijk omdat het zeer lang duurt vooraleer alle waarden van de kaarten geset zijn. Mijn PC werkt ook verschrikkelijk traag op dat moment.
Iemand suggesties?
Alle hulp is welkom.
MVG, Kristof.
.
.
.