Array vraag
Ik ben weer met php begonnen en ben nu weer flink aan het oefenen. Ik ben ter oefening nu bezig met een kaartspelletje. Alleen loop ik vast.
Ik wil een/meerdere array(s) hebben waarin de kleur en de naam van de kaart in staat (bijv. 2 of Boer).
Vervolgens maak een een andere array aan waar je hand in staat. Dus welke kaarte je tot je beschikking hebt. Alleen hoe kan ik het beste kijken welke hoogste kaart er in je hand is, en of ze dubbel voorkomen.
Kan iemand mij hier mee helpen?
Ik wil een/meerdere array(s) hebben waarin de kleur en de naam van de kaart in staat (bijv. 2 of Boer).
Vervolgens maak een een andere array aan waar je hand in staat. Dus welke kaarte je tot je beschikking hebt. Alleen hoe kan ik het beste kijken welke hoogste kaart er in je hand is, en of ze dubbel voorkomen.
Kan iemand mij hier mee helpen?
Kan je niet zoiets maken als
De 1 van waards komt dan overeen met de 2
En de 14 komt dan overeen met de aas.
Dus als je bijvoorbeeld een koning hebt, is het 13. Heb je een andere bijvoorbeeld een boer (dus 11), weet je dat de aas koning hoger is dan de boer.
Je zou ook zoiets kunnen doen:
Hier kan je ook vrij gemakkelijk de kaarten vergelijken door simpel te kijken wel getal (de waarde) het hoogste is.
Edit:
Om te controleren of al iets in de array staat, kan je in_array() gebruiken, er was ook een functie, die alle array keys terug gaf, bij het zoeken. Als hij dan meer dan 1 bevat, weet je dat ze dubbel zijn..
De 1 van waards komt dan overeen met de 2
En de 14 komt dan overeen met de aas.
Dus als je bijvoorbeeld een koning hebt, is het 13. Heb je een andere bijvoorbeeld een boer (dus 11), weet je dat de aas koning hoger is dan de boer.
Je zou ook zoiets kunnen doen:
Code (php)
Hier kan je ook vrij gemakkelijk de kaarten vergelijken door simpel te kijken wel getal (de waarde) het hoogste is.
Edit:
Om te controleren of al iets in de array staat, kan je in_array() gebruiken, er was ook een functie, die alle array keys terug gaf, bij het zoeken. Als hij dan meer dan 1 bevat, weet je dat ze dubbel zijn..
Gewijzigd op 01/01/1970 01:00:00 door Arian Stolwijk
Is wel een behoorlijke opdracht om weer mee te beginnen hoor ;P
Je kan beter een array maken maken met de mogelijke kaarten (Kaarten) en dan doe je alles in de pot (Deck) en als je uit de pot pakt heb je ze uniek in je hand (Hand).
Je kan beter een array maken maken met de mogelijke kaarten (Kaarten) en dan doe je alles in de pot (Deck) en als je uit de pot pakt heb je ze uniek in je hand (Hand).
@Arian: Je hebt 56 kaarten in jouw spel. ;-))
Dit is een typisch voorbeeld waar OOP om de hoek komt kijken. Met behulp van een aantal klasses en verschillende methodes kun je dit probleem aanpakken.
Dank voor alle reacties.
De functie in_array() ken ik inderdaad.
Alleen werkt dat niet zo makkelijk als er vier verschillende kleuren kaarten zijn (schoppen, klaveren, harten en ruiten).
Hoe kan ik de array optimaal uitwerken waarin ook de kleuren verwerkt zijn?
De functie in_array() ken ik inderdaad.
Alleen werkt dat niet zo makkelijk als er vier verschillende kleuren kaarten zijn (schoppen, klaveren, harten en ruiten).
Hoe kan ik de array optimaal uitwerken waarin ook de kleuren verwerkt zijn?
Dat lijkt me dan het volgende te worden:
@blanche
Ik denk dat het beter is om door te tellen vanaf de 10. Dat gaat veel makkelijker met controleren wat hoger/lager is.
Ik denk dat het beter is om door te tellen vanaf de 10. Dat gaat veel makkelijker met controleren wat hoger/lager is.
Ik zou naar de key kijken, die loopt dus van 0 tot 12. Je zult op 1 of andere manier er ook een label aan moeten koppelen.
Je zet toch nooit 'schoppen heer' neer op een kaart, dusja. Tis een kwestie van smaak.
Tja, maar ook geen 'schoppen 12'. Dan zou je als label dus 'H' kunnen gebruiken. Maar aangezien het text-based is, lijkt me de volledige naam duidelijker.
Nee, daarom juist, omdat je dat niet neerzet. Je maakt er plaatje van. Text-based waar staat dat. Ik ga ervan uit dat je plaatjes gebruikt.
Ik zou gewoon range(0,51) gebruiken en dan met modulo 13 kijken of de één hoger is dan de ander. Dat is gewoon het simpelst.
Quote:
Dat basseerde ik op dit stukje uit de openingspost. Maar goed, dat kan de TS vast wel vertellen.(bijv. 2 of Boer)
in eerste instantie is het text based, maar dit is natuurlijk goed uit te brijden met plaatjes van kaarten,
Ik ben nu even aan het spelen met de mannier van PHPerik
edit: ik snap wat je met range(0,51) bedoeld, maar wat bedoel je met modulo 13?
Ik ben nu even aan het spelen met de mannier van PHPerik
edit: ik snap wat je met range(0,51) bedoeld, maar wat bedoel je met modulo 13?
Gewijzigd op 01/01/1970 01:00:00 door Scrptr
Modulo is '%'-operator. Daarmee krijg je het restproduct van een breuk.
http://nl.php.net/operators
http://nl.php.net/operators
Gewijzigd op 01/01/1970 01:00:00 door Gerben Jacobs
13 % 13 = 0
1 % 13 = 1
26 % 13 = 0
31 % 13 = 5
6 % 13 = 6
130 % 13 = 0
10 % 13 = 10
etc
Overigens niet alleen mijn manier proberen omdat ik moderator ben hè ;) Blanche en Kalle zeggen meestal minstens zo nuttige dingen.
1 % 13 = 1
26 % 13 = 0
31 % 13 = 5
6 % 13 = 6
130 % 13 = 0
10 % 13 = 10
etc
Overigens niet alleen mijn manier proberen omdat ik moderator ben hè ;) Blanche en Kalle zeggen meestal minstens zo nuttige dingen.
Gewijzigd op 01/01/1970 01:00:00 door PHP erik
Dat is echt handig die Modulo,
trouwens ik heb niet alleen jouw mannier geprobeerd, maar allemaal.
Echt iedereen bedankt, ik kan nu weer een stuk verder experimenteren!
trouwens ik heb niet alleen jouw mannier geprobeerd, maar allemaal.
Echt iedereen bedankt, ik kan nu weer een stuk verder experimenteren!
Nog een vraag:
is er een functie om te kijken of een array 3 of meer opvolgende getallen heeft?
Edit: excuses voor het bumpen, ik dacht nieuwe vraag, nieuw bericht.
is er een functie om te kijken of een array 3 of meer opvolgende getallen heeft?
Edit: excuses voor het bumpen, ik dacht nieuwe vraag, nieuw bericht.
Gewijzigd op 01/01/1970 01:00:00 door Scrptr
Niet Bumpen.
SanThe.
'Bumpen:':
SanThe.
Ik ben nu een stuk verder,
Alleen nu ben ik bij het volgende probleem aangekomen: Hoe kan ik kijken of er 4 opvolgende waardes in een array zitten.
Is daar een functie voor, of moet ik ze allemaal langs gaan?
Alleen nu ben ik bij het volgende probleem aangekomen: Hoe kan ik kijken of er 4 opvolgende waardes in een array zitten.
Is daar een functie voor, of moet ik ze allemaal langs gaan?





