Ik sta op het punt om een Blackjack in PHP te schrijven. Nu is mijn vraag, wat is precies het idee erachter?
Ik moet sowieso met sessies werken, maar wat zet ik in de sessie?
Ik moet kaarten delen, maar hoe deel ik die, hoe voorkom ik 2 of meer dezelfde kaarten?
etc.
Bekijk eens andere blackjack scripts. Hoe zitten deze in elkaar? Bekijk vooral de scripts welke gebruik maken van OOP. Deze zijn vaak doordacht en makkelijk in te passen.
Bouw er gewoon eens op verder, of kijk hoe ver dat je komt. Je hoeft niet gelijk alle regels te implementeren. Ga gewoon eerst eens proberen hoe je met kaarten uit komt.
Hij geeft namelijk problemen met je sessions
Dan geeft hij alleen niet de getallen weer. Verder als je kiest voor stand dan krijg je enige errors terug. Verder de functie zelf begint er op te lijken
Boven de tekst heb ik namelijk nog een include('playerstats.php'); waarin al sessies worden gestart, vandaar ;).
Nu is het zo dat als ik "bust" de getallen uit beeld verwijderd worden, hoe kan ik nou doen dat als je "bust" "gelijkspeelt" of "wint", de getallen/kaarten in beeld blijven?
Negeer KEIHARD, zo niet harder wat riagabel2 zojuist zei! En een verzoek aan Gerard voor uitleg waarom hij dat gebruikt
Output buffer is niet nodig in dit soort situaties, en zeker bij een beginnend programmeur kan het de indruk wekken dat dit de oplossing is, welke het dus niet is. Dit kun je hier zien als een pleister op een wond. Het werkt, maar is niet weg.
Hmm, alright... Maar Martijn, enig opzetje voor mij of uitleg hoe ik het het beste kan aanpakken? Ben al de hele dag aan het experimenteren, maar kom geen stap verder... dit is by far een van de moeilijkste scripts die je kan schrijven volgens mij.
Negeer KEIHARD, zo niet harder wat riagabel2 zojuist zei! En een verzoek aan Gerard voor uitleg waarom hij dat gebruiktÂ
Output buffer is niet nodig in dit soort situaties, en zeker bij een beginnend programmeur kan het de indruk wekken dat dit de oplossing is, welke het dus niet is. Dit kun je hier zien als een pleister op een wond. Het werkt, maar is niet weg.
Problemen los je, die verberg je niet ;)
In dit stuk code was het niet noodzakelijk om deze constructie te gebruiken. Anders gebruik ik hem ook alleen bij prototyping/poc/examples zoals die ik nu liet zien. Ik werk normaliter alleen met template parsers, waarmee je dit issue nooit echt hebt (je output nu eenmaal maar 1 keer aan het einde), maar wilde het in deze even voorkomen.
Pff komop mensen, iemand moet me toch wel uitleg kunnen geven aan hoe het moet.. aan een script heb ik niks, want dan weet ik alsnog niet welke functie voor wat is en wat wat is... aub iemand?
1. Ken je zelf de spelregels?
2. Welke gegevens moeten op een korte termijn beschikbaar zijn? (variabelen)
3. Welke gegevens moeten op lange termijn beschikbaar zijn? (sessies bv)
4. Welke interacties zijn er? (dealen, kaart geven totdat je 'dood' bent of zegt stop)
5. Welke acties worden er gedaan? (dealen, callen etc)
6. Schrijf een blauwdruk voor een class.
7. Vul de class verder in.
1. ja
2. denk dat het spel gestart is, spelers kaarten, delers kaarten
3. ?
4. Als er op 'deel' word gedrukt, krijgt speler 2 kaarten open, en de deler 1. Daarna heb je een 'hit' of 'stand' knop.
5. Deal -> hit or stand
6?
7?
Het gaat dus niet om de theorie, maar welke functies en code ik verbind met de theorie.. ik snap niet waar ik moet beginnen met de blauwdruk
Zonder dat logisch denken, een hoop puzzelen en proberen, wordt het niet echt veel. De code die ik heb gegeven is een goede start. De rest zal echt van het logisch redeneren moeten komen, anders blijven we zaken voorkauwen. Daar ga je ook weinig van leren.
Stel je hebt 2 arrays. Spelerkaarten en delerkaarten.
vul je dan beide arrays gelijk met het hele spel kaarten? of wacht je tot een speler een kaart 'trekt' en array_push je de volgende kaart in de spelers/delerkaarten arrays?
Als je kijkt naar mijn script dan zal je zien dat ik initieel een volledig deck aan kaarten opbouw en die in 1 sessie array stop. Daarna geef ik de speler en de dealer allebei 1 kaart vanuit dit deck. Met de functie die ik gebruik worden deze kaarten ook verwijderd uit het algemene deck, waarmee we dus het aantal beschikbare kaarten om uit te delen terugbrengen.
De volgorde waarin je dit doet is eigenlijk de volgorde waarop het spel ook gespeeld moet worden. Je zal alleen logica moeten inbouwen bij de dealer wanneer deze een nieuwe kaart trekt, en wanneer juist niet.
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.