Autor | Zpráva | ||
---|---|---|---|
Fastman Profil |
#1 · Zasláno: 7. 5. 2014, 16:45:57
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 |
#2 · Zasláno: 7. 5. 2014, 16:48:18
rand vrací náhodné číslo v zadaném rozsahu.
|
||
grimword Profil |
#3 · Zasláno: 7. 5. 2014, 16:48:25
$nahoda=rand(0, 36); |
||
Fastman Profil |
#4 · Zasláno: 7. 5. 2014, 16:50:13
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 |
#5 · Zasláno: 7. 5. 2014, 16:54:02
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 |
#6 · Zasláno: 7. 5. 2014, 16:54:03
Jak jako? Myslíš:
$query = mysql_query("SELECT * FROM tabulka WHERE id = $rand()"); ??? |
||
Fastman Profil |
#7 · Zasláno: 7. 5. 2014, 16:59:28
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 |
#8 · Zasláno: 7. 5. 2014, 17:25:36
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 |
#9 · Zasláno: 7. 5. 2014, 17:28:57
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 |
#10 · Zasláno: 7. 5. 2014, 17:40:51
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ší. |
||
Časová prodleva: 11 let
|
0