IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

Diskusia – Tvorba Snake 2D - krok za krokom v Jave

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Avatar
matesax
Tvůrce
Avatar
matesax:22.10.2012 17:29

To mi přijde jednodušší řešení to mé - mám ho jako seznam pozic - když se pohybuje, smaže se zadek, a přidá nová hlava (podle směru). (První položka se vždy vykresluje jako hlava.) Když zrovna jí, tak se akorát nesmaže zadek... Dále had má zmiňovanou vlastnost směr a podle té se pohybuje - v enum je i stop - takže popř. stojí - i když se volá move - tím mi stačí pořád volat move. No a při stisknutí klávesy se akorát nastaví nový směr... (Bonus se generuje podle délky hada a náhodného čísla.)

 
Odpovedať
22.10.2012 17:29
Avatar
Kit
Tvůrce
Avatar
Odpovedá na matesax
Kit:22.10.2012 18:14

Ještě jeden rozdíl tady je: Tento had mi (po drobných úpravách) funguje. Jenom když se někde zakousne, hra se zastaví, nereaguje na nic a musím zavřít okno. Ještě se podívám, čím to je.

Odpovedať
22.10.2012 18:14
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Fugiczek
Tvůrce
Avatar
Odpovedá na matesax
Fugiczek:22.10.2012 18:39

Na tvé řešení se tu nikdo neptal ;-) Já to kdysi psal podle verze ze starých nokií a tam se nezastavovalo. Toto neměla být žádná převratná hra, jen jsem na požádání albertpatera popsal jak při tvoření postupuju a rovnou udělal úpravy ve starém kódu.

To Kit: to zakousnutí je tím že kolize se kontroluje v určité době, takže pokud nastane kolize po kontrole tak chvíli trvá než se to zase zkontroluje, ale to by nemělo trvat nějak moc dlouho

O všech chybách jsem si vědom, jen se mi nechtějí opravovat, jak už jsem psal, šlo jen o postup na žádost albertpatera...

 
Odpovedať
22.10.2012 18:39
Avatar
matesax
Tvůrce
Avatar
Odpovedá na Fugiczek
matesax:22.10.2012 18:51

Děkuji, že jsi mě slušně poslal někam - chtěl jsem ti poradit - ale tak si klidně smol kilometrové kódy a neuč se jednodušším řešením... A efektivitou abych si utíral zadek - že? Viz. test kolizí v časových intervalech...

Editované 22.10.2012 18:51
 
Odpovedať
22.10.2012 18:51
Avatar
Kit
Tvůrce
Avatar
Odpovedá na Fugiczek
Kit:22.10.2012 18:53

Může to být klidně zaviněno přenosem mezi platformami a různými verzemi Javy (mám 1.6.0_22). V Javě normálně nedělám, může to být i z jiných důvodů. Budu zkoumat.

Odpovedať
22.10.2012 18:53
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Fugiczek
Tvůrce
Avatar
Fugiczek:22.10.2012 19:00

To matesax: Já tě nikam neposílál, jen jsem naznačil že mi tvuj názor celkem u pr*ele :-) Zadek si utírej čím chceš, do toho se ti vtírat nebudu. Ono by stačilo pohyb napsat před kontrolu kolizí a bylo by to vyřešený. Já o těch chybách vím :-) Ale proč bych si měl nechat radit od někoho kdo ani pomalu neumí upravit svoje vlastní kódy?

To Kit: Nejspíš to bude rozdílnými verzemi Javy a nejspíš to bude dělat řádek:

body = new ArrayList<>();

Toto lze od javy 7.
V javě 6 se to musí vypisovat takhle:

body = new ArrayList<GObject>();
 
Odpovedať
22.10.2012 19:00
Avatar
matesax
Tvůrce
Avatar
Odpovedá na Fugiczek
matesax:22.10.2012 19:07

Sorry, ale vytahovat staré věci - není to trochu dětinské? :) Aktuálně se mě tedy chaos v kódech rozhodně netýká... Nebo ti přijde jeden list, 2 proměnné a struktura jako chaos - anebo jako lepší a jednodušší řešení? :) (Upravenou verzi jsem již nepublikoval.)

 
Odpovedať
22.10.2012 19:07
Avatar
Kit
Tvůrce
Avatar
Kit:22.10.2012 19:12

Ten řádek jsem měl jen

body = new ArrayList();

protože mi to nešlo zkompilovat. Po úpravě se nic nezměnilo.

Možná budu brzy dělat celkový upgrade OS, sveze se s tím i Java. Tak to neřeš. Chtěl jsem si jen vyzkoušet nějaký program v Javě s GUI. Nějaká funkčnost tam je, pro dnešek jsem spokojen.

Odpovedať
22.10.2012 19:12
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Fugiczek
Tvůrce
Avatar
Odpovedá na matesax
Fugiczek:22.10.2012 19:15

Možná je, možná není. Není jak posoudit. Názor ostatních na mě je mi lhostejný. V chaosu má každý svůj pořádek a tvrdit že v kódu nemáš chaos zní celkem nafoukaně. Každý má svůj vlastní styl psaní. Navíc o Javě nevíš skoro nic, tak mi do toho nekecej ;-) já ti taky nekecám do kopírky (pokud jsi nepochopil myslel jsem tím C#).

No a stejně tahle diskuze nikam nevede, takže pokud ještě máš něco na srdci tak mi pošli SZ...

 
Odpovedať
22.10.2012 19:15
Avatar
matesax
Tvůrce
Avatar
Odpovedá na Fugiczek
matesax:22.10.2012 19:19

Jak ty víš, že o Javě nic nevím? :) Zaprvé, má hodně společného s C#, za druhé v ní dělám... Vzhledem k tomu, že dodržuji OOP se přehlednosti ani vyhnout nedá... (Vše má stejný nárys - stejné názvy, stejné metody,...)

Editované 22.10.2012 19:21
 
Odpovedať
22.10.2012 19:19
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zatiaľ nikto nevložil komentár - buď prvý!