
PHP - pomoc s proměnými
Dobrý den, moc se v php nevyznám a tak bych vás chtěl poprosit o radu :
Mám hodně volného času a proto pracuji na primitivní online hře. Vím, že vám to může připadat směšné , ale to teď nechme stranou. Úspěšně jsem dokončil systém registrace a přihlašování, teď chci vytvořit proměnné (level a nějaké suroviny) které bude mít každý hráč, samozřejmě se budou vyvíjet s časem v závislosti na produkci (kromě levelu, ten si poté upravím).
Potřeboval bych tedy vědět, jak vytvořím proměnné pro každého hráče v závislosti na čase ? (v MySQL se mi při registraci vytvoří u hráče mimo jiné ID se kterým se to bude vázat)
Díky za rady
Adam
Asi jsem nechápavý...
Prostě je zapíšeš do databáze ne?
no nevím jak udělat, aby ten hráč měl nějakou surovinu například a aby se její hodnota odvíjela podle času tj. produkce za čas spolu se zápisem do databáze ?
Např. v jedné tabulce definované suroviny, ve druhé množství které hráč drží, ve třetí hodnoty podle času.
Dokud přesně neřekneš, co vlastně chceš, tak se těžko radí.
Dobře, chci, aby měl hráč suroviny se kterými může hospodařit. Každý hráč je bude mít různé. Budou mít nějakou výchozí hodnotu x. Jejich změny budou závislé jednak na čase, druhak na tom, co s nimi hráč udělá. potřebuji zápis takové proměnné v php a taky co zapsat do databáze.
No obávám se, že tohle opravdu není rada na jeden příspěvek. Prakticky chceš udělat celou logiku aplikace včetně uložení do databáze.
potřebuji pochopit, jak měnit proměnnou u každého hráče v závislosti na čase.
Asi jsem opravdu natvrdlý, ale nerozumím ti. Napiš konkrétní scénář nějaké události. Tj. kdo, co, kde, za kolik... má, co se s tím má stát. Za jakých okolností se to má stát. Jaký má být konečný stav.
fajn, uživatel bude mít , dejme tomu, 200 nějaké suroviny, zlata. za každou hodinu se mu zlato zvětší o 100. bude ho takto produkovat. koupí si nějakou zbraň co stojí 300 zlata, pokud má dostatek zlata, tak se mu ta koupě provede a odečte, pokud nemá, vypíše mu to hlášku. to je celé.
Omlouvám se za špatný dotaz a cením si toho, že se mi snaží někdo pomoc.
No dobrá, a co z toho neumíš udělat? A nepiš že nic, protože to bysme se nikam nepohnuli.
udělám proměnnou, která se uloží do databáze, neudělám už ale to, aby se ta proměnná měnila s časem. nevím jak podmínit ten nákup.
Prostě chceš udělat něco jako travian/divoké kmeny/jánevimco. Já bych to udělal tak, že by se přepočet udělal při každém reloadu stránky. Do databáze by se uložil čas poslední změny (fce Time viz php.net) a pak je na to jednoduchej vzorec:
Jestli chceš, aby to uživateli naskakovalo bez reloadu, tak to uděláš jednoduše s použitím javascriptu. Jestli nevíš, jak udělat nic z toho, co jsem napsal, tak bych se bez potřebných znalostí do něčeho tak složitého nepouštěl.
díky, to je chytré, vlastně logické ;)
A ještě jedna rada, když děláš velkej projekt, tak si namaluj diagram a veškerý kod kouskuj do co nejmenších úseků, udělej z nich funkce a používej je všude. Stálé proměnné definuj jako konstanty do zvláštního souboru (ne x=200*(250-120), ale třeba x=a*(b-c)) Protože jakmile to budeš mít napsaný všechno za sebou, bude to dlouhý jak hajzlpapír a jakmile budeš chtít něco změnit, tak to budeš muset udělat na 100 místech a zblázníš se z toho. A navíc to bude nepřehledné. Když jsem byl mladší a blbější, tak jsem takhle musel zahodit tříměsíční práci.
díky, to je cenná rada, ve škole nás to taky učí (gymnázium, programování), hlavně pro tu editaci potom.
A já nedám pokoj
.
) atd.
Určitě znáš rozdíl mezi algoritmem a programem. Program je pouze algoritmus interpretovaný v nějakém programovacím jazyce. Proto bych ještě doporučil nad každým problémem zamyslet se víc matematicky a logicky. Strojový čas je i v dnešní době docela "drahá záležitost" (když je na web připojeno třeba tisíc uživatelů ) a čím delší kod, tím náchylnější k chybám. Když si napíšeš nějakej vzorec, tak ho zkus upravit do jednodušší formy, v případě složitějších věcí si najdi již ověřené hotové řešení na netu (na to se hodí fráze "do not re-invent the wheel"
díky :) nás ve škole učí pochopit jak daný algoritmus funguje, to jak ho zapsat a v čem už je potom druhotná záležitost. Ono umět vysvětlit, pochopit nebo vymyslet algoritmus je mnohem lepší, než že jich budu znát hodně, ale nebudu vědět, jak pracují ;)