Avatar
pgarsky
Člen
Avatar
pgarsky:

Ahoj!
Potřebuji pomoct se zdrojovým kódem. Rozhodl jsem se udělat jednu hru na tématiku jednoho tábora. Rozhodl jsem se udělat hru na styl třeba Walking Dead nebo Until Dawn atd... Zkrátka je o příběhu a hráč si volí co ta postava ve hře udělá. Jak by byla struktura zdrojáku? Nějaký jsem vymyslel, ale nefunguje, tak moc prosím o pomoc a napsání jenom začátku, jak by mohl vypadat. Je v jazyce PHP. Přikládám zde tedy ten kód, který jsem naprogramoval.
Toto je kód index.php, na který hráč přijde a dostane na něm první otázku.:

<!DOCTYPE html>
    <html lang="cs-cz">
<head>
    <meta charset="utf-8">
    <link rel="stylesheet" href="styl.css" type="text/css">
    <title>Dobrodružství Jardy Mudry</title>
</head>
<body>
<h1>První den</h1>
<p>Jednoho dne Jarda přijel do tábora. Co by udělal jako první?</p>
<form method="post" action="podstranky/system">
    <select name="otazka1">
        <option value="1">Půjde se podívat okolo</option>
        <option value="2">Nechá všechno být, sedne si na židli a počká na ostatní</option>
        <option value="3">Začne vykládat z auta</option>
    </select>
</form>
<input type="submit" value="Odeslat!">
</body>
</html>

A toto je kód systému:

<?php
$odpoved = $_POST['otazka1'];
if ($odpoved == '1')
{
    $moznosti = 'echo(<p>něco se stalo<select name=otazka2> . <option value="1">moznost1</option> <option value="2">moznost1</option> <option value="3">moznost1</option></select></p>)';
}
else if ($odpoved == '2')
{
    $moznosti = 'echo(<p>něco se stalo<select name=otazka2> . <option value="1">moznost2</option> <option value="2">moznost2</option> <option value="3">moznost2</option></select></p>)';
}
else if ($odpoved == '3')
{
    $moznosti = 'echo(<p>něco se stalo<select name=otazka2> . <option value="1">moznost3</option> <option value="2">moznost3</option> <option value="3">moznost3</option></select></p>)';
}
echo('<p>' . $moznosti . '</p>');
?>

Děkuji předem za pomoc. :)

 
Odpovědět 17. července 11:02
Avatar
pgarsky
Člen
Avatar
pgarsky:

A tento kód se bude dál větvit tímto způsobem.

 
Nahoru Odpovědět 17. července 11:03
Avatar
vesel.fil
Člen
Avatar
vesel.fil:

Tlačítko na odeslání musí být uvnitř formuláře.

Nahoru Odpovědět  +4 17. července 13:54
I don't necessarily agree with everything I say.
Avatar
pgarsky
Člen
Avatar
Odpovídá na vesel.fil
pgarsky:

Dobře, ale to nebylo zas tak podstatný :D

 
Nahoru Odpovědět  -6 18. července 11:29
Avatar
vesel.fil
Člen
Avatar
Odpovídá na pgarsky
vesel.fil:

Co je na tom nepodstatného? Když na to tlačítko mimo formulář klikneš, tak se neodešlou žádná data. Vždycky se odešle to, co je ve stejném formuláři jako tlačítko.

Nahoru Odpovědět  +5 18. července 13:41
I don't necessarily agree with everything I say.
Avatar
Jiří Gracík
Redaktor
Avatar
Odpovídá na pgarsky
Jiří Gracík:

To bylo sakra podstatný :D :D

Nahoru Odpovědět 18. července 13:48
Creating websites is awesome till you see the result in another browser ...
Avatar
pgarsky
Člen
Avatar
Odpovídá na vesel.fil
pgarsky:

Tím nepodstatný myslím to, že zkrátka na to bych přišel i sám. Avšak já žádám pomoct se zdrojovým kódem. Takže: 1. Je tenhle použitelný ? Dá se případně nějak vylepšit? 2. Případně navrhnout jiný zdrojový kód.

 
Nahoru Odpovědět 18. července 22:29
Avatar
Jiří Gracík
Redaktor
Avatar
Odpovídá na pgarsky
Jiří Gracík:

Není to dobrý kód. Lepší by bylo mít například pole objektů (je jedno, jak je získáš, ať už z databáze, nebo třeba z jsonu). Co id to otázka, v objektu by byla nějaká množina odpovědí na výběr které by měli id nějaké další otázky (připadně slepé uličky a konce příběhu)

Nahoru Odpovědět  +1 18. července 22:32
Creating websites is awesome till you see the result in another browser ...
Avatar
mkub
Redaktor
Avatar
Odpovídá na pgarsky
mkub:

vzdy je mozne vylepsit ten kod... napr. keby si mal 100 odpovedi, tak by si sa preifoval... skus porozmyslat aj nad inymi prikazmi na vetvenie, napr. nad case ;)

 
Nahoru Odpovědět  -1 19. července 0:04
Avatar
Michael Kufner:

Zajimavej napad :) jak dlouho programujes?

..
Jak tu uz nekdo psal, je lepsi mit data "externe" a ne ve zdrojaku, napr.kdybys chtel vice pribehu, muzes pouzit kod ale zmenit tabulku v databazi. Takze bych kompletne ty data soupnul do mysql.
A pote, ty odpovedi zakodovat do databaze do JSON (vlastne text, ze ktereho se jednoduchou funkci da udelat pole a naopak) a pote si to v cyklu vypisovat (vcetne moznosti).
Na mnohonasobny if .. Else se vykasli, vzdycky jde vyresit nejak jinak (switchem, slozenou podminkou s operatorem and nebo or)

 
Nahoru Odpovědět 19. července 0:28
Avatar
Adam Ježek
Tým ITnetwork
Avatar
Adam Ježek:

Je tu fórum pro PHP, tak piš tam, když to tam patří.
Přesunuto

Nahoru Odpovědět 19. července 0:30
Programátor dělá co může. Počítač co chce. | Pokud mi dáš mínus, tak prosim, napiš proč!
Avatar
pgarsky
Člen
Avatar
Odpovídá na Michael Kufner
pgarsky:

No v PHP jsem já začátečník a moc ještě neumím. Máš skype nebo tak něco, že by sis udělal chvíli na mě čas a vysvětlil mi to prosím ? Moc bych ti byl vděčný :)

 
Nahoru Odpovědět 19. července 12:42
Avatar
Mego
Člen
Avatar
Mego:

Si začiatočník a hneď chceš robiť hru? Ja sa PHP venujem od roku 2012 a na hru som sa ešte neodvážil :D (mám na mysli poriadnu hru typu travian)

Nahoru Odpovědět  ±0 19. července 13:00
Radšej 15 minút skôr, ako 15 sekúnd neskoro...
Avatar
Jan Bezdíček
Redaktor
Avatar
Odpovídá na Mego
Jan Bezdíček:

Pokud si neveris, ze bys to zmakl tak je neco spatne ... :D neco na zpusob Travianu by zvladl i clovek co se tomu venuje par mesicu a nema ani poneti o MVC :D

 
Nahoru Odpovědět  +1 19. července 14:13
Avatar
Jiří Gracík
Redaktor
Avatar
Odpovídá na Mego
Jiří Gracík:

Něco takového je na naučení se PHP ideální, není to moc složité a procvičí si většinu věcí, co v reálu bude potřeboval

Nahoru Odpovědět 19. července 14:16
Creating websites is awesome till you see the result in another browser ...
Avatar
Jan Bezdíček
Redaktor
Avatar
Jan Bezdíček:

Obecne u her je spis problem vymyslet fungujici mechaniku, ekonomiku apod. nez to zrealizovat :) V hlave mam taky plan na jednu hru v PHP, kterou planuji zrealizovat ... jen grafika bude asi muj nejvetsi nepritel :D

 
Nahoru Odpovědět  +2 19. července 15:12
Avatar
katrincsak
Člen
Avatar
Odpovídá na pgarsky
katrincsak:

Pakliže začínáš hrou, doporučuji spíše zvolit nějaké primitivní hry, které ti pomohou se rozvíjet. Protože zda plánuješ hru dělat více rozmanitější, tak na konec zjistíš, že nedostatek znalostí tě stojí spousta času. Budeš spoustu věcí předělávat na základě zkušeností, které postupně budeš získávat a na konec budeš více předělávat než se rozvíjet.

Aspoň tohle jsou mé zkušenosti, kdy jsem chtěl také vytvářet hru a mimochodem na podobné téma s již vymyšleným složitějším konceptem v OOP. Ale později čím víc věcí hra obsahuje, tím je více kodu a o to hůře se bez zkušeností v tom dělá pořádek a logika.

A zda je těžké vytvořit jednoduchý formulář a nebo vytvářet jednoduchý kod bez nutnosti ho opakovat, tak bych doporučil se zaměřit na tutoriály a již prostudovat OOP a ještě lépe MVC ve kterém je logika mnohem hezčí a spoustu problému v rozložení kodu/scriptů řeší.

Rozhodně tvé řešení není ideální a jak bylo již napsáno, bude dobré zvolit komunikaci s MySQL, nebo s jinou DB a texty automaticky tahat ze své databáze. Podobnou věc jsem již dříve dělal i s virtuální mapou za pomocí příběhu a pohybu "Jako např. chci jít rovně k vodě" atp. A vše se generovalo automaticky z databáze dle ID pozice, nebo dle návaznosti na daný text.

Trošku jsem se při obědě v práci rozepsal ;-)

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět 19. července 17:31
Avatar
Mego
Člen
Avatar
Mego:

Tiež si myslím, že na hre je najťažšie vymyslieť game design, teda rozhodnúť sa, čo bude koľko surovín stáť, aké útočné sily majú mať jednotky a podobne. Aby to bolo dobre, neže jeden hrač bude furt vyhravať a druhy furt prehravať :D To by bola muka.

Nahoru Odpovědět 20. července 9:11
Radšej 15 minút skôr, ako 15 sekúnd neskoro...
Avatar
pgarsky
Člen
Avatar
Odpovídá na katrincsak
pgarsky:

Děkuji za čas, popřemýšlím o tom :)

 
Nahoru Odpovědět 20. července 9:14
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 19 zpráv z 19.