Autor Zpráva
Fastman
Profil
Zdravím,

Moje myšlenka je udělat ruletu, která by dala danému uživateli odměnu a následně zapsala do databáze daného uživatele a vyplnila úkol (připsala body atd..). Akorát přemýšlím, která funkce v PHP tohle umí (generování náhodného příkazu, který by PHP kód vyplnil). Samozřejmě by se tam musela doplnit % jaká je pravděpodobnost na padnutí určité věci (příkazu) a určitě tam dát omezení, že když už to jednou zmáčkl, tak by mohl pokračovat až další den - tohle bych udělal tak, že by je to po stisknutí tlačítka zapsalo do databáze a zapsalo čas a ten by se v databázi odečítal a PHP by ověřovalo zda daný uživatel již není v databázi a jestli už má čas 0. Jinak by mu to napsalo, že zbývá ještě HH:MM:SS.

Nicméně můj hlavní dotaz je. Zda existuje funkce, která dokáže náhodně generovat příkaz co má PHP kód udělat (ruleta).

Díky vám za odpovědi.
juriad
Profil
rand vrací náhodné číslo v zadaném rozsahu.
grimword
Profil
$nahoda=rand(0, 36);
Fastman
Profil
Děkuji Vám za odpovědi juriad, grimword.

Dá se tato možnost využít místo čísel na příkazy? Myšleno na proměnné ($sql) atd..
juriad
Profil
Buď si uložíš možnosti do pole:
$moznosti = array('a', 'b', 'c');
echo $moznosti[rand(0, count($moznosti) - 1];

Nebo se prostě rozskočíš (obdobně to jde pomocí ifu):
switch(rand(0, 2)) {
case 0:
  $moznost = 'a';
  break;
case 1:
  $moznost = 'b';
  break;
case 2:
  $moznost = 'c';
  break;
}
grimword
Profil
Jak jako? Myslíš:

$query = mysql_query("SELECT * FROM tabulka WHERE id = $rand()"); 

???
Fastman
Profil
Děkuji opět za odpovědi.

Reaguji na: grimword

Ano. Vyplní do příslušného pole například "Petr" - jeho identifikace. PHP kód náhodně vybere odměnu a napíše. Vyhrál jsi odměnu $moznosti

proměnná $moznosti bude obsahovat: array('a', 'b', 'c');

samozřejmě by to ukázalo "Vyhrál jsi odměnu a" nebo b, c.

PHP kód by vybral například "b" a ten by udělal kód například $query = mysql_query("SELECT * FROM tabulka WHERE id = $uzivatel");
$uzivatel - uživatel co zadával identifikační jméno do vyplněného pole před odesláním. Ostatní (a, c) - ignoruje, protože bylo vybráno "b".
grimword
Profil
Tak to tedy vůbec nechápu, na co se tady ptáš. Vždyť pro náhodné generování odměn uděláš:

$nahoda=rand(0,2);

if($nahoda==0){ echo "Vyhral jsi kolo."; }
if($nahoda==1){ echo "Vyhral jsi motorku."; }
if($nahoda==2){ echo "Vyhral jsi auto."; }

K čemu tam potřebuješ databázi?
Fastman
Profil
Databázi tam chci, protože to bude zapisovat vítěze nebo mu to bude přidávat něco do jeho profilu a pod.
jenikkozak
Profil
Fastman:
proměnná $moznosti bude obsahovat: array('a', 'b', 'c');
>
samozřejmě by to ukázalo "Vyhrál jsi odměnu a" nebo b, c.
Ano. A když tam místo písmenek napíšeš celý název výhry, vypíše se tento název.

Lépe popiš, co si představuješ, že to bude dělat. Nyní to vypadá, že vymýšlíš nějaký hodně složitý způsob řešení jednoduchého problému.
Fastman
Profil
jenikkozak:
Takže jednoduše.

1) Uživatel přijde a zadá svoje "Steam ID". Odešle.

2) Náhodně mu to vybere odměnu (nejlépe procentuálně - nejvyšší odměnu by dostal málo kdo).

3) Odměna se připíše do různých databází. Vyhrál 50 bodů? Zapíšou se pod jeho Steam ID. Vyhrál server? Pošle mi email, že tohle Steam ID vyhrál server. (Nebo podobné věci).

4) Ruleta po odeslání je dostupná opět až za 24 hodin. - Tuhle věc bych udělal přes databázi (zkontroluje zda tohle Steam ID už nepoužívalo ruletu) a odpočet probíhá v databázi.

Snad je to pochopitelnější.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0