Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Gra w zgadywanie liczb
Forum PHP.pl > Forum > Przedszkole
dexter6000
Witam,
Chcę zrobić gre w której losowane są 2 liczby następnie użytkownik wpisuje wynik i wyświetla się napis "dobrze" albo "żle". Nastepnie chcę dodać liczenie poprawnych odpowiedzi oraz poziomy trudności ale teraz utknąłem na dość banalnym problemie. Liczby wyświetlają się a po wpisaniu wyniku liczby są losowane od nowo natomiast jeśli linijka echo $liczba1." + ".$liczba2." = "."<br/>";
jest pod isset to liczby się nie wyświetlą dopóki nie wprowadzi się wyniku. Mógłby mi ktoś napisać jak naprawić ten problem, z góry dziękuję i poniżej wstawiam kod:
  1. <?php
  2. ?>
  3.  
  4. <form method="post">
  5. <input name="liczba" type="text"/>
  6. <input type="submit" value="Sprawdź" name="test"/>
  7. <input type="submit" value="pokaz" name="pokaz" />
  8. </form>
  9.  
  10. <?php
  11. @$liczba=$_POST['liczba'];
  12. $liczba1 = $_SESSION['liczba1'];
  13. $liczba2 = $_SESSION['liczba2'];
  14. $wynik = $liczba1 + $liczba2;
  15. echo $liczba1." + ".$liczba2." = "."<br/>";
  16. if (isset($_POST['test'])){
  17. if($wynik == $liczba)
  18. {
  19. echo "Brawo"."<br/>";
  20. echo "Twoja liczba to: ".$liczba;
  21. }
  22. else
  23. {
  24. echo "Źle"."<br/>";
  25. echo "Twoja liczba to: ".$liczba;
  26. }
  27. }
  28. else
  29. {
  30. $_SESSION['liczba1'] = mt_rand(0,5);
  31. $_SESSION['liczba2'] = mt_rand(0,5);
  32. }
  33. ?>
  34. </body>
  35. </html>
MGie
jeżeli chcesz skorzystać z sesji, to:

sprawdź czy w tablicy $_SESSION[] istnieją elementy 'liczba1' i 'liczba2',
jeżeli nie, wylosuj liczby i zapisz je do sesji, a następnie odśwież stronę,
jeżeli tak wypisz je na ekran i pobierz liczba z $_POST[].
dexter6000
już sprawdzam, nie musze korzystać z sesji tylko tak mi koledzy podpowiedzieli że to jest dobry i łatwy sposób ale jeśli zna ktoś inny to chętnie posłucham.

Ucze się php od tygodnia i jeszcze nie ogarniam tych tablic dołączyłem do progamu coś takiego aby wogóle sprawdzic czy coś sie w tablicy znajduje:
  1. $_SESSION[$liczba1][$liczba2];
  2. if (in_array($liczba1))
  3. {
  4. echo"Znaleziono";
  5. }
  6. if (in_array($liczba2))
  7. {
  8. echo"Znaleziono";
  9. }

między
  1. $wynik = $liczba1 + $liczba2;
  2. $_SESSION...
  3. echo $liczba1." + ".$liczba2." = "."<br/>";
i wysakakują błedy?
MGie
Sprawdzałeś w dokumentacji co robi in_array()?

Użyj isset() albo empty().
dexter6000
Cytat(MGie @ 29.02.2016, 23:09:59 ) *
Użyj isset() albo empty().


Wydaje mi się ze te funkcje nic nie dadzą ponieważ liczba jest losowana, problem polega na tym że po uzyciu isset() liczby sa losowane od nowa i w jaki sposób to zatrzymać?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.