login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Een gok spel maken..

Offline Babak - 25/04/2008 17:33
Avatar van BabakMySQL interesse Sorry voor de misleidende titel maar kon niks beters verzinnen.

Beste mensen,

stel je dit voor: Je hebt een spel, je moet 10 cijfers selecteren van 1 t/m 80. Je kiest deze 10, je drukt op een knopje. Hierna kiest de 'computer' 20 cijfers van 1 t/m 80, en daarna moet de script kijken hoeveel getallen overeenkomen met de getallen die jij hebt aangeklikt.

Hoe zou ik dit het beste moeten maken? BVD.

15 antwoorden

Gesponsorde links
Offline shonda - 25/04/2008 17:36
Avatar van shonda Lid Misschien kan je hier wat mee: rand() functie
Offline Babak - 25/04/2008 17:41
Avatar van Babak MySQL interesse Ja, ik snap dat je met rand moet werken om de computer getallen uit te laten zoeken. Maar hoe kan je kijken of deze overeenkomen met de getallen die jij hebt ingetikt? En rand is maar 1 getal.... de computer moet er 20 uitzoeken.
Offline Ultimatum - 25/04/2008 17:47
Avatar van Ultimatum PHP expert Een for loop om je rand heen zetten en de uitkomst van rand in een array zetten en dan met in_array kijken of de getallen van de gebrruiker in de array met de 20 random getallen zit.
Offline Babak - 25/04/2008 17:49
Avatar van Babak MySQL interesse Kan je een voorbeeld geven Ultimatum?
Offline shonda - 25/04/2008 17:50
Avatar van shonda Lid Misschien heb je hier wel wat aan? http://www.site...&id=33
Offline Ultimatum - 25/04/2008 17:59
Avatar van Ultimatum PHP expert
  1. <?php
  2. $randomGetallen = array();
  3. for($i = 1; $i <= 20; $i++) {
  4. $randomGetallen[] = mt_rand(1, 80);
  5. }
  6.  
  7. //kijken of getal juist is
  8. if(in_array(4, $randomGetallen)) {
  9. ?>


Je moet nog wel even controleren of het getal dat mt_rand() aanmaakt al in je array zit, zodat je geen dubbele getallen hebt. En bij die laatste lijn is die 4 het getal die de gebruiker raad als het ware, moet je maar in een variable stoppen ofzo
Offline Rik - 25/04/2008 18:47
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Die van Ultimatum iets uitgebreid met controle op dubbele nummers en een snelle manier om het aantal goed gegokte nummers te laten zien:
  1. $guess = array(3, 4, 5, 9, 10);
  2. $random = array();
  3. for ($i = 0; $i < 20;) {
  4. $number = mt_rand(1, 80);
  5. if (in_array($number, $random) === false) {
  6. ++$i;
  7. $random[] = $number;
  8. }
  9. }
  10. echo 'Er komen ' . count(array_intersect($random, $guess)) . ' getallen overeen.';
Offline Babak - 25/04/2008 22:20 (laatste wijziging 25/04/2008 22:22)
Avatar van Babak MySQL interesse Ja, maar jij doet die $guess, die zet je erin. Maar iemand moet die nummers aanvinken zeg ma. En met die van jou krijg ik telkens: je hebt 1, of je hebt 0 nummers goed. Dus er klopt iets niet..
Offline Rik - 26/04/2008 10:12
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Ik ging er van uit dat je zelf wel een script kan maken dat die $guess array vult met waarden uit de checkboxen. Dat er nu zo weinig uit komt, komt omdat er nu in de array $guess maar 5 getallen staan. Als je er daar meer in zit kom je al snel rond de 8 uit.
Offline JBke - 26/04/2008 11:19
Avatar van JBke PHP gevorderde werk met select boxen en haal de geselecteerde eruit, maar ik zou aanradeneerst een basis cursus of tutorial php door te nemen het forum is niet bedoeld om anderen scripts te laten schrijven voor u, daar leer je niets van, had je eigenlijk zelf al eens naar een oplossing of werkwijze / redinatie nagedacht??

Dit is toch echt wel basic stuff!!
Offline Babak - 26/04/2008 12:17
Avatar van Babak MySQL interesse Lol, weet echt al wel veel over PHP. Bij mij ontbreekt de logica. En for loops willen nog niet echt.

p.s: dit scriptje is dus ECHT niet basic stuff.
Offline Joost - 26/04/2008 13:33 (laatste wijziging 26/04/2008 13:35)
Avatar van Joost PHP expert Zo ingewikkeld is het nu ook weer niet.

Iets in deze zin zou wel moeten werken:

  1. <?php
  2.  
  3. $guess = array();
  4.  
  5. for($i = 0; $i < 80; $i++){
  6.  
  7. if(isset($_POST[$i])){
  8. $guess[] = $i;
  9. }
  10.  
  11. }
  12.  
  13. $fout = 0;
  14. $goed = 0;
  15.  
  16. for($i = 0; $i < 20; $i++){
  17.  
  18. $number = rand(1, 80);
  19.  
  20. if(isset($guess[$number])){
  21.  
  22. $goed++;
  23.  
  24. } else {
  25.  
  26. $fout++;
  27. }
  28.  
  29. echo "Nummer ".$i." door Computer: <b>".$number."</b>.<br>";
  30.  
  31. }
  32.  
  33. foreach($guess as $key => $num){
  34. echo "#".$key." Ingevoerd Getal: ".$num."<br>";
  35.  
  36. }
  37.  
  38. echo "<br><br>Goed: <b>".$goed."</b>. Fout <b>".$fout."</b>.";
  39.  
  40. ?>


Er zitten nog wel een paar fouten in, maar dit zou je wel op weg moeten helpen. Zoals ook bij Ultmatum, wordt niet gekeken of een getal als is gebruikt.
Offline Maffiow - 28/04/2008 00:28
Avatar van Maffiow PHP interesse
Babak schreef:
Lol, weet echt al wel veel over PHP. Bij mij ontbreekt de logica. En for loops willen nog niet echt.

p.s: dit scriptje is dus ECHT niet basic stuff.


Als de logica ontbreekt scheelt er toch wel iets en zou ik er toch dringend iets aan proberen te doen want dit is toch wel basic php
Offline Babak - 28/04/2008 00:45
Avatar van Babak MySQL interesse Nou, waarom laat jij niet eens zien dat jij het kan dan wijsneus? Het is heel makkelijk om te zeggen dat het gemakkelijk is, voor JOU misschien, niet voor MIJ. En daarom verschillen wij van elkaar.
Offline Maffiow - 28/04/2008 01:54
Avatar van Maffiow PHP interesse
Babak schreef:
Lol, weet echt al wel veel over PHP. Bij mij ontbreekt de logica. En for loops willen nog niet echt.

p.s: dit scriptje is dus ECHT niet basic stuff.


Wijsneus?! Je spreekt jezelf tegen.. for loop is basic.. logica hoort bij de basic.. dus zeg niet dat je echt wel veel van PHP weet..
Durf ten eerste al kritiek te accepteren en als meer ervaren leden dan jou je raad willen geven zou het wel slim zijn om deze raad op te volgen.. Maar dat is uiteraard aan jezelf..

JBke schreef:
werk met select boxen en haal de geselecteerde eruit, maar ik zou aanradeneerst een basis cursus of tutorial php door te nemen het forum is niet bedoeld om anderen scripts te laten schrijven voor u, daar leer je niets van, had je eigenlijk zelf al eens naar een oplossing of werkwijze / redinatie nagedacht??

Dit is toch echt wel basic stuff!!


Nu hebben hier al zoveel mensen moeite gedaan om je verder te helpen
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.216s