Poker

  • Hallo mensen,


    Ik ben een poker scriptje aan het maken, die kaarten maakt en vervolgens die controleert of er niet dezelfde kaarten in voorkomen.


    Nu heb ik een probleempje met mijn controleer functie. Als ik nu 2 kaarten controleer, komt bij de eerst gecontroleerde kaart de goede output. Maar bij de 2de kaart komt de output van de eerste kaart en de output van de 2de kaart.


    Misschien is hier iemand die het weet?


    Hier de functie:


    Het zou tof zijn als iemand het probleem vind.


    Met vriendelijke groet,
    MrMees

  • ik snap niet goed wat je bedoeld,
    heb je een voorbeeld van het stukje code dat uitegvoerd wordt (deze functie niet meer) en wat het resultaat er van is?
    of leg het ietsjes beter uit?


    wat is precies de bedoeling van deze functie? je geeft twee kaarten op, en dan?
    waar moet op worden gecontroleerd?


    ook lijkt het me niet zo handig om het volgende te doen:

    PHP
    $kaart[$i] = $kaart[$i];


    het heeft geen zin namelijk


    ik houd nog wat tips achter tot ik precies weet wat je wilt doen en dit opgelost is.

  • Ik maak dus kaarten aan via de functie maakKaart();.
    Dit werkt allemaal vlotjes, alleen het kwam dus wel eens voor dat er 2 dezelfde kaarten in het spel komen.
    Daarom probeer ik een functie te maken die controleert of er al een kaart bestaat.


    Wat deze functie doet:
    Hij controleer bij $kaarten[] of de kaart bestaat, vervolgens kijkt hij of $check[] leeg is.
    Als die leeg is dan is er al een kaart die zo heet, anders maakt hij het leeg en blijft de kaart hetzelfde.


    Het probleem:
    Het probleem is dat de eerste kaart een goede output heeft alleen de 2de niet, want die krijgt de eerste output en de 2de output.


    Dit is een voorbeeldje van wat er uitkomt:
    --------------------
    Jouw kaarten zijn:
    de klaver boer en de harten 6 klaver boer.
    ---------------------


    Je ziet dus dat klaver boer er ook bij de 2de output komt te staan en dit is niet de bedoeling.


    Ik hoop dat er hiermee wat is opgehelderd.


    Mvg,
    MrMees

  • Darsstar ik denk dat hij bedoeld.
    Wanneer hij een kaart aanvraagd dan krijgt hij altijd 2 dezelfde kaarten maar ook krijgt hij nog een kaart erbij.


    Dus eigenlijk heeft hij in totaal 3 kaarten 2 dezelfde en 1 andere kaart. En hij wil eigenlijk dat hij 2 kaarten totaal heeft met 2 verschillende.


    Natuurlijk kan het zijn dat hij ooit hetzelfde is maar het gaat om het idee waarop ik het bedoel.


    Sorry reactie is algeplaatst door MrMees.

    School
    Tweedejaars Informatica Student @ Hogeschool Rotterdam.


    Webtalen
    - PHP ( OOP )
    - SQL
    - JavaScript i.c.m. jQuery framework
    - (x)HTML
    - CSS
    - Actionscript
    - XML


    Programmeertalen
    - Java
    - C#
    - Ruby i.c.m. on Rails framework

  • op het moment zal elke keer dat je deze functie aanroept $check precies het zelfde zal zijn!
    de wijzigingen worden niet bewaard...
    wat doe je daar aan?


    maak er een statische variabele van!
    hoe?
    zet heel simpel 'static' voor de variabele
    kijk maar naar het script, ik doe het daar wel even voor...

  • for($i = 1; $i < 3; ++$i) {
    I is 1 wanneer i kleiner is als 3 dan telt hij op tot hij bij 3 is.
    Logisch toch?


    Dus misschien even 2 van maken.

    School
    Tweedejaars Informatica Student @ Hogeschool Rotterdam.


    Webtalen
    - PHP ( OOP )
    - SQL
    - JavaScript i.c.m. jQuery framework
    - (x)HTML
    - CSS
    - Actionscript
    - XML


    Programmeertalen
    - Java
    - C#
    - Ruby i.c.m. on Rails framework

  • Ik zie het probleem niet echt. Zet gewoon alle mogelijke kaarten in een array. Dan trek je gewoon kaarten uit deze array(array_rand). Dat trekt kaarten uit de array en verwijderd ze er dan ook uit. Zo trek je gewoon meteen alle kaarten (dus inclusief 5 voor de tafel), alleen laat je deze niet zien en stop je deze in de database.


    Je kunt het bijvoorbeeld zo doen:


    $kaarten = array('11','12','13,'14','21' enzovoort.


    Waarbij 11 = Klaveren Aas, 12 = Ruiten Aas, etc.

  • Volgensmij maak je enkele fouten:


    De for-lussen zullen beide maar 1x worden uitgevoerd, daarna return je een waarde.
    Je gebruikt $speelkaarten voor alle argumenten, je kunt dus beter func_get_args() gebruiken.
    Je zet variabele vaak tussen qoutes, dat kun je beter niet doen.


    Hopelijk kom je er iets verder mee. Je werkelijke probleem snap ik nog niet helemaal.

  • Het is nu opgelost.


    In het script hiervoor werd er 53 gecheckt of hij dit allemaal deed. Nu heb ik er iets bij de checks bij geplaatst. Als jet het kaart alleen is dan is het TRUE en anders FALSE.


    Door dit in een while lus te plaatsen bij het controleren en het opnieuw maken van de kaarten, stopt het controleren als het TRUE is.


    Iedereen bedankt voor de hulp


    Slotje


    Mvg,
    MrMees

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!