Archief - [JAVA] Getallen uitsluiten in random

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Poplipo

Legacy Member
Hallo,

Een maat en ik zijn bezig aan een kaartspel-programma: manillen
Het probleem is: kaarten uitdelen. Je kunt wel telkens 8 randoms maken per speler, ma het probleem is dubbele kaarten. Is er een mogelijkheid in java om cijfers 'uit te delen' aan bvb een array? Of een getal uit te sluiten in een random? :)

Alvast bedankt,
Poplipo

Dreetn

Legacy Member
Kben niet zeker, maar als je die kaarten in een array (speler 1) steekt dan kan je die array toch vergelijken met een 2e array (speler 2) d.m.v. een for-lus ofzo.

Parnakra

Legacy Member
Array bijhouden met kaarten en bools, klasse Kaart maken met waarde en bijhouden als ze reeds uitgedeeld is, ...

Ettelijke oplossingen mogelijk, kies degene die je het makkelijkst/best lijkt.

forloRn_

Legacy Member
Alle kaarten in een collection stoppen en er een willekeurige uithalen.

MilM

Legacy Member
Inderdaad.

Je kunt ze in een collection bijhouden en als een kaart uitgedeeld wordt dan verwijderd je die uit de collection.

En voor volgende kaart gewoon Random.nextInt(collection.size());

forloRn_

Legacy Member
Of Collections.shuffle(cards) en cards.remove(0) om het helemaal echt te maken. :)

Poplipo

Legacy Member
Allemaal heel erg bedankt voor de hulp, kpeis da'k het idd met collections ga doen :)
Probleem is da'k nog nooit daarmee gewerkt heb, heb op inet gezocht naar een tutorial, maar die werkt met ArrayList <...>
Programmeren in Java/Collections - Wikibooks
Noem je dan uw ArrayList Collection, of is collections nog iets anders? :)

Hmm, nog iets

Code:
char chrTeken = strNaam2.charAt (intTeller1);
g.drawChar(chrTeken,5,300+intTeller3);
Is om de namen van de spelers onder elkaar af te drukken
geeft een error, 'cannot find symbol method drawChar (char, int, int)'
Is dus duidelijk dat er iets anders moe staan tussen de haken, ma ik heb geen idee wat :p
Op inet doen ze dit allemaal met arrays, dus zou ik eigenlijk een array moeten maken voor 1 letter in die while? :)

forloRn_

Legacy Member
Een ArrayList is een voorbeeld van een Collection. In de praktijk ga je dit doen:
Code:
List<Card> cards = new ArrayList<Card>();
// vullen
Collections.shuffle(cards);

En wat dat tweede betreft: wat is er mis met g.drawString(strNaam2, 5, 300 + intTeller3); ?

Het staat allemaal in de Bijbel.

Poplipo

Legacy Member
Hij moet de letters onder elkaar drukken, maar kebt gevonden:
Code:
char chrTeken = strNaam2.charAt (intTeller1);
String strTeken = Character.toString(chrTeken);
g.drawString (strTeken, 7, 270+intTeller3);

ik wist nie dat het type Card bestond? es ewa opzoeken
Merci!

forloRn_

Legacy Member
Ah, op die manier.

Card bestaat niet hoor. :) Dat zal je zelf moeten maken.

eniac

Legacy Member
Wat je kan doen: maak twee enums, ene voor de Suits en ene voor de Values. Cards hebben dan een Suit en een Value. Door middel van twee geneste lussen die over beide enums lopen kan je dan erg eenvoudig je hele dek kaarten aanmaken.

Gebruik voor de rest idd de Collections API, zoals forloRn_ zegt.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan