NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Pomoc se zdrojovým kódem (PHP)

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
pgarsky
Člen
Avatar
pgarsky:17.7.2016 11:02

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.7.2016 11:02
Pokud ti něco jde těžko, znamená to, že jdeš tou správnou cestou...
Avatar
pgarsky
Člen
Avatar
pgarsky:17.7.2016 11:03

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

Nahoru Odpovědět
17.7.2016 11:03
Pokud ti něco jde těžko, znamená to, že jdeš tou správnou cestou...
Avatar
vesel.fil
Člen
Avatar
vesel.fil:17.7.2016 13:54

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

Nahoru Odpovědět
17.7.2016 13:54
I don't necessarily agree with everything I say.
Avatar
pgarsky
Člen
Avatar
Odpovídá na vesel.fil
pgarsky:18.7.2016 11:29

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

Nahoru Odpovědět
18.7.2016 11:29
Pokud ti něco jde těžko, znamená to, že jdeš tou správnou cestou...
Avatar
vesel.fil
Člen
Avatar
Odpovídá na pgarsky
vesel.fil:18.7.2016 13:41

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
18.7.2016 13:41
I don't necessarily agree with everything I say.
Avatar
Odpovídá na pgarsky
Neaktivní uživatel:18.7.2016 13:48

To bylo sakra podstatný :D :D

Nahoru Odpovědět
18.7.2016 13:48
Neaktivní uživatelský účet
Avatar
pgarsky
Člen
Avatar
Odpovídá na vesel.fil
pgarsky:18.7.2016 22:29

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.7.2016 22:29
Pokud ti něco jde těžko, znamená to, že jdeš tou správnou cestou...
Avatar
Odpovídá na pgarsky
Neaktivní uživatel:18.7.2016 22:32

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
18.7.2016 22:32
Neaktivní uživatelský účet
Avatar
mkub
Tvůrce
Avatar
Odpovídá na pgarsky
mkub:19.7.2016 0:04

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
19.7.2016 0:04
Avatar
Michael Kufner:19.7.2016 0:28

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.7.2016 0:28
Avatar
Adam Ježek
Tvůrce
Avatar
Adam Ježek:19.7.2016 0:30

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

Nahoru Odpovědět
19.7.2016 0:30
Počkej chvíli, poradím se s křišťálovou koulí.
Avatar
pgarsky
Člen
Avatar
Odpovídá na Michael Kufner
pgarsky:19.7.2016 12:42

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.7.2016 12:42
Pokud ti něco jde těžko, znamená to, že jdeš tou správnou cestou...
Avatar
Lava
Člen
Avatar
Lava:19.7.2016 13:00

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
19.7.2016 13:00
Aspartám, sacharín, to je môj vitamín
Avatar
Jan Bezdíček
Tvůrce
Avatar
Odpovídá na Lava
Jan Bezdíček:19.7.2016 14:13

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
19.7.2016 14:13
Avatar
Odpovídá na Lava
Neaktivní uživatel:19.7.2016 14:16

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.7.2016 14:16
Neaktivní uživatelský účet
Avatar
Jan Bezdíček
Tvůrce
Avatar
Jan Bezdíček:19.7.2016 15:12

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
19.7.2016 15:12
Avatar
katrincsak
Člen
Avatar
Odpovídá na pgarsky
katrincsak:19.7.2016 17:31

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í
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
19.7.2016 17:31
Avatar
Lava
Člen
Avatar
Lava:20.7.2016 9:11

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.7.2016 9:11
Aspartám, sacharín, to je môj vitamín
Avatar
pgarsky
Člen
Avatar
Odpovídá na katrincsak
pgarsky:20.7.2016 9:14

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

Nahoru Odpovědět
20.7.2016 9:14
Pokud ti něco jde těžko, znamená to, že jdeš tou správnou cestou...
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.