Array vraag
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?
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
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.
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?
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)
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
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
trouwens ik heb niet alleen jouw mannier geprobeerd, maar allemaal.
Echt iedereen bedankt, ik kan nu weer een stuk verder experimenteren!
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
Bumpen::
SanThe.
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?