Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Tablice - jak rozpoznać co jest dodawane
Forum PHP.pl > Forum > Przedszkole
vegeta
Witam,

Mam taki kod:

  1. <?php
  2. $max = intval(mt_rand(1,10));
  3. $akcja = Array('Nie zauważyłeś cegły, która leżała na ziemi, potknąłeś się i wybiłeś sobię zęby. Musisz bardziej uważać. Tracisz '.$max.' życia.', 'Zauważyłeś pająka i postanawiasz go zgnieść. Na szczęście pająk nie był niebezpieczny. Otrzymujesz '.$max.' doświadczenia.', 'Zauważasz, że w kącie pokoju coś się świeci. Postanawiasz to sprawdzić, ale 5 metrowa dżdżownica próbowała Cię zjeść. Tracisz '.$max.' doświadczenia!');
  4.  
  5. echo $akcja[mt_rand(0,2)];
  6. ?>


I tutaj moje pytanie - jak rozpoznać co jest odejmowane lub dodawane - czy życie, exp, kasa i coś innego??
Crozin
  1. $max = ...;
  2.  
  3. switch (mt_rand(0, 2)) {
  4. case 0:
  5. $msg = '...';
  6. // odejmusze życie
  7. break;
  8. case 1:
  9. $msg = '...';
  10. // dodajesz exp
  11. break;
  12. case 2:
  13. $msg = '...';
  14. // odejmujesz exp
  15. break;
  16. }
vegeta
No tak, ale jak rozpoznać automatycznie czy jest coś odjęte czy dodane? Nie chcę robić tego ręcznie, bo tych opcji w tablicy będzie dużo.
Crozin
No to będziesz musiał przechowywać nie tylko komunikat, ale i konkretne informacje n/t tego ile czego dodajesz / odejmujesz. Ot, chociażby:
  1. array('msg' => '...', 'exp' => 10, 'life' => -5),
  2. array('msg' => '...', 'exp' => -50, 'life' => 0)
vegeta
No dobra jeśli np exp mam na 0 to znaczy, że nic z tym nie robię w przeciwnym wypadki znaczy, że muszę to uaktualnić w bazie.
Ale:

Mam robić kilkadziesiąt tablic? Tzn może być dużo tablic, ale wolałbym, aby było to w jednej tablicy tak jak aktualnie mam.
Możesz napisać cały skrypt jak Ty byś to widział?
Crozin
Tablica tablic?
  1. $actions = array(
  2. array('msg' => '...', 'exp' => 10, 'life' => -5),
  3. array('msg' => '...', 'exp' => -50, 'life' => 0,
  4. array('msg' => '...', 'exp' => 0, 'life' => 50)
  5. );
  6.  
  7. $action = $actions[mt_rand(0, 2)];
  8.  
  9. print_r($action);
vegeta
Ok dzięki wielkie.

Jeszcze jedno pytanie: czy da się zrobić mt_randa bez wpisywania liczby (chodzi mi o to, żebym nie musiał dodawać +1 jak dodam następną tablicę z opisem).
Crozin
array_rand?
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-2025 Invision Power Services, Inc.