[php/mysql]Kaartspel ontwerpen

Pagina: 1
Acties:
  • 200 views sinds 30-01-2008
  • Reageer

Onderwerpen


  • ijsthijs
  • Registratie: Juni 2003
  • Laatst online: 18-09 16:09
Hello, het is mijn bedoeling om een kaartspel in php na te maken dat gespeeld kan worden door 4 afzonderlijke spelers.

Probleem is echter niet het scripten.. maar hoe bouw je zo'n spel op ? Heeft iemand goeie tips over hoe het script in te gaan delen ? En met welke dingen moet ik rekening houden ?

Ik heb eerder al vrij veel gemaakt, maar ben totaal vastgelopen doordat ik er een grote puinhoop van hebt gemaakt, idee is dus om opnieuw te beginnen.

Het kaarstpel zelf is afgeleidt van het spel: "assholen".. misschien wel bekend bij jullie, echter ik wil de "twentse" parodie er op maken.

Als er meer info nodig is, vraag het.

Alvast bedankt voor het lezen van bovenstaande tekst.

eenechtezzper.nl


Verwijderd

Misschien is het handig om even uit te leggen wat dat (twentse) assholen eigenlijk is? Dat is misschien handig voor de briljante phpers die het spel niet kennen.

  • ijsthijs
  • Registratie: Juni 2003
  • Laatst online: 18-09 16:09
Hehe okeh :-)

4 spelers.. ontvangen elke 12 kaarten.

Speler 1 komt uit met bijvoorbeeld en 4. De andere spelers kunnen daarop een hogere kaart opgooien om "de slag" te pakken. Ze kunnen ook "passen".

D gene die "de slag" heeft gepakt mag dan weer uitkomen. Deze kan dat ook doen met een "setje", bijvoorbeeld: 3 vieren of 2 heren. De medespelers zullen dan ook een setje moeten bedienen die voorgaande kaarten overtreffen.

Degene die als eerst van zijn kaarten af is "de president".. de gene daarna "vice president", daarna komt "vice fuck" en daarna "fuck".

Aan het einde van zo een ronde dient de president zijn 2 slechtste kaarten om te wisselen met de 2 beste kaarten van de fuck. De vice president en vice fuck doen hetzelfde met 1 kaart.

De fuck mag vervolgens weer uitkomen.

eenechtezzper.nl


Verwijderd

juist !

Als je niets nuttigs te zeggen hebt, zeg dan niets.. :/

[ Voor 87% gewijzigd door gorgi_19 op 19-08-2004 16:06 ]


Verwijderd

Ik zou beginnen met 1 grote array met alle kaarten in. Vervolgens deze kaarte random laten wegschrijven naar 4 nieuwe arrays: de spelers. Dan zou je dmv het indexnummer de array kunnen laten uitlezen en zo de kaarten aan de spelers tonen. Dan zou het zoiets worden als: If kaart nummer 1 beeld dan plaatje 1 af. De eerste keer moet een random generator bepalen wie er mag beginnen. De eerste speler moet dan 1 kaart kunnen kiezen, maar moet ook de mogelijkheid hebben om er meerdere te kiezen. En stel dat hij fout klikt dan moet dat ook nog terug gedraaid kunnen worden. Ik zelf ben net een week met php bezig dus of dat technisch mogelijk is weet ik niet. Ik zou proberen een soort submit knop te maken die de keuze verzend. Vervolgens moet de computer controleren of dat een eventuele set wel toegestaan is.

Gezien je zowel met 1 kaart als met setjes wil gaan werken lijkt het mij het handigst als je met arrays werkt.

Even een vraagje tussendoor. Stel ik leg 2 dames op. Om te kunnen winnen moet jij 2 heren of 2 azen opleggen. Maar wat als jij uberhaupt geen kaarten dubbel hebt?

Zo dit is al een begin. Probeer je zo dicht mogelijk te houden aan het hartejagen spel van windows zelf. Ik denk dat dat nog 1 vd meest overzichtelijke spellen is.

  • ijsthijs
  • Registratie: Juni 2003
  • Laatst online: 18-09 16:09
Ik waardeer je reactie maar zover was ik al gekomen.

Waar het eigenlijk om draait.. is... de constructie die het spel draaiende moet houden...

Dus bijvoorbeeld.. moet ik iedere speler zijn gooi laten controleren door een functie. Moet iedere speler elke 10 seconden vragen aan een functie of die al aan de beurt is.. enz

[ Voor 39% gewijzigd door ijsthijs op 19-08-2004 15:15 ]

eenechtezzper.nl


Verwijderd

Zoiets is niet op een twee drie te schrijven, maar daar was je waarschijnlijk ook wel al uit. Je moet iets hebben dat de status bijhoudt. een soort van daemon of de mysql server.

Een tweede probleem is dat datgene wat de status bijhoudt, voortdurend moet refreshen.

javascript dus.

Het komt er dus op neer om bepaalde informatie te loggen in een database ( hoeveel kaarten, wie er speelt, etc... ) simpelst allemaal in een record... met een unieke id, die de 4 spelers hebben...

En dan de webpagina die uitgestuurd wordt zodanig schrijven dat hij zichzelf iedere vijf seconden refresht...

Er zullen wel betere oplossingen zijn...

Verwijderd

Je zou het zo kunnen maken dat zodra er op de verstuurknop vd kaarten wordt gedrukt de teller 1 omhoog gaat en dat laten wegschrijven naar een file. Als de teller 1 is, dan moeten de invoervelden/knoppen van user 1 worden geactiveerd. Bij 2 de volgende enz... Als hij bij user 4 is geweest moet hij opnieuw beginnen bij 1. Zo zou je het kunnen laten controleren. En idd iedere 5 sec refreshen.

  • Ajunne
  • Registratie: December 2001
  • Laatst online: 09-09 11:38

Ajunne

Uitje

Ik zeg niet dat dit niet kan in PHP, maar in mijn ogen is dit wel heel erg ver gezocht. Om zoiets te maken kun je best werken met een programmeertaal waar je verschillende clients kunt laten verbinden met een server, en houd je gewoon centraal de kaarten en de score van de spelers bij en gebruik je de clients gewoon als manier om alles klantvriendelijk te tonen. Alles in PHP doen KAN, maar is niet echt logisch.

Volgens mij ben je beter af met wat simpele java applets en een servertje die je in gelijk welke programmeertaal kunt schrijven, als je maar een fatsoenlijk netwerkprotocol afspreekt.

Of je kunt het natuurlijk ook fancy doen met web services.

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 14:28
Dit spelen noemen ze ookwel president en negeren, iets minder scheldwoorden en misschien wel wat bekender.

  • frickY
  • Registratie: Juli 2001
  • Laatst online: 18-09 14:42
Waarom wil je dit in hemelsnaam in PHP gaan doen? Dat is toch helemaal niet fijn? Pak dan een taal welke client-side kan werken.. desnoods javascript (en een hidden frame welke om de zoveel tijd refresht en JS zn data kan lezen).

In PHP wordt het spel opgezet, maar het daardwerkelijke spelen gebeurd dmv javascript...

[ Voor 17% gewijzigd door frickY op 19-08-2004 19:05 ]


Verwijderd

in javascript word het een beetje lastig als alle 4 de spelers achter een verschillende machine zitten lijkt me ;)

Ik denk dat je het spel in 2 stukken moet hakken, 1 soort statemachine die bij houd welke speler aan de beurt is en een 2 stuk die de afhandeling etc doet.

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 14:28
Het is zo simpel:
je schrijft op wat je input is
je schrijft op wat je output moet zijn

Dit geheel verdeel je netjes in modules. En klaar ben je.

Acties:
  • 0 Henk 'm!

  • ijsthijs
  • Registratie: Juni 2003
  • Laatst online: 18-09 16:09
Hoi luc.. ik heb lang na zitten denken over je post... maar wat bedoel je er nu eigenlijk mee ?

eenechtezzper.nl


Acties:
  • 0 Henk 'm!

  • KompjoeFriek
  • Registratie: Maart 2001
  • Laatst online: 15-08 22:46

KompjoeFriek

Statsidioot

ik zou PHP het spel laten bijhouden (mogenlijk met een spelnummer) in een (MySQL) database.

clientside zou je je dan een spel moeten kunnen aanmaken, aanmelden(joinen), en starten.

als het spel gestart is, hoeft je client-side alleen maar door te geven welke actie je doet aan het serverside-gedeelte(PHP) en clients die niet aan de beurt zijn om de x aantal seconden de status op laten vragen.

lijkt me niet zo super moeilijk, toch?

WhatPulse! - Rosetta@Home - Docking@Home


Acties:
  • 0 Henk 'm!

Verwijderd

Aangezien dit spelt draait op interactiviteit lijkt me PHP niet bepaald de beste oplossing.

Wanneer de speler die aan de beurt is een actie onderneemt moet er een signaal gestuurd worden naar de andere 3 deelnemers van het spel. Volgens mij kan je met PHP data ophalen wanneer je pagina opvraagt, maar de pagina kan niet data aan jou opgeven wanneer ie al volledig geladen is. Geen interactiviteit dus.

Dan is de oplossing dus bijv. JavaScript waarmee je tussen een bepaald interval de pagina zou kunnen laten refreshen. Lijkt me een erg ranzige oplossing van het maken van een kaartspel.

Ik zou persoonlijk denken aan bijv. Flash / Flash Communication Server of Java.
Pagina: 1