IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Machr na Javu - Objektová textovka

Aktivity
Avatar
Hartrik
Tvůrce
Avatar
Hartrik:2.3.2013 18:46

Moje dílo:
http://dl.dropbox.com/…re%20III.zip

Dal jsem jí jméno Adventure III, protože je to moje, v pořadí již 3 textovka.
Samozřejmě je z těch tří nejlepší, a jediná která je objektová (i když dvojka byla také v Javě ;) ).

Přibalil jsem info soubor, ale kdybyste měli nějaký dotaz, tak pište. Jinak kód by měl být dostatečně čitelný a okomentovaný - prostě 3000 řádků kvalitního objektového kódu ;)

ukázka 1 - implementoval jsem ukázku viz. nahoře
ukázka 2 - taková blbost :)

 
Odpovědět
2.3.2013 18:46
Avatar
Hartrik
Tvůrce
Avatar
Odpovídá na David Dostal
Hartrik:2.3.2013 18:48

To by zase nebylo fér vůči mě, teď když jsem vyložil karty

Editováno 2.3.2013 18:48
 
Nahoru Odpovědět
2.3.2013 18:48
Avatar
David Dostal
Tvůrce
Avatar
David Dostal:2.3.2013 18:58

Stejně jsem si řekl, že se na ostatní podívám až po odevzdání, aby to byla opravdu moje práce, takže pokud myslíš, že bych ti něco ukradl, tak opravdu ne (a celou hru bych kvůli tomu stejně neprekopaval :D).

 
Nahoru Odpovědět
2.3.2013 18:58
Avatar
Hartrik
Tvůrce
Avatar
Odpovídá na David Dostal
Hartrik:2.3.2013 19:00

tady ale nejde jenom o tebe, každý si to teď může stáhnout...
Tohle prostě neni dobrý

 
Nahoru Odpovědět
2.3.2013 19:00
Avatar
David Hartinger
Tým ITnetwork
Avatar
Odpovídá na David Dostal
David Hartinger:2.3.2013 19:03

Mně to nevadí, ale musíš se dohodnout s ostatními, třeba když sem pošleš co máš teď a uvidí že je to jiné než to jejich, tak jim to vadit nebude.

Nahoru Odpovědět
2.3.2013 19:03
You are the greatest project you will ever work on.
Avatar
Samik11
Tvůrce
Avatar
Odpovídá na Hartrik
Samik11:2.3.2013 19:07

Smekám, fakt parádní... :)Kód se bude hodit ke studijním účelům.

Nahoru Odpovědět
2.3.2013 19:07
„Radost vidět a rozumět, to je nejkrásnější dar přírody.“ Albert Einstein
Avatar
David Dostal
Tvůrce
Avatar
David Dostal:2.3.2013 19:08

Takže má ještě cenu to dodělat?

 
Nahoru Odpovědět
2.3.2013 19:08
Avatar
David Dostal
Tvůrce
Avatar
David Dostal:2.3.2013 19:10

Myslím, že sem stejně všichni (kromě mě), co se chtěli zúčastnit sem svoje řešení dali, takže už to od tebe stejně neokoukaji.

 
Nahoru Odpovědět
2.3.2013 19:10
Avatar
Hartrik
Tvůrce
Avatar
Odpovídá na Samik11
Hartrik:2.3.2013 19:10

:) když jsem to programoval ověřoval jsem si to na Wikipedii

 
Nahoru Odpovědět
2.3.2013 19:10
Avatar
Hartrik
Tvůrce
Avatar
Odpovídá na David Dostal
Hartrik:2.3.2013 19:13

A na kdy to chceš odložit? Měl si na to týden, já i Samik jsme se podle toho zařídili

 
Nahoru Odpovědět
2.3.2013 19:13
Avatar
David Dostal
Tvůrce
Avatar
David Dostal:2.3.2013 19:16

Nebo už to vyhodnoťte. Nesnáším, když programuju pod časovým tlakem. Myslím, že to tak bude nakonec lepší a Hartik bude taky spokojený. PS: Co jsi ověřoval na wikipedii?

 
Nahoru Odpovědět
2.3.2013 19:16
Avatar
David Dostal
Tvůrce
Avatar
David Dostal:2.3.2013 19:19

Týden jsem na to měl, ale počítač jsem na to neměl. :)

 
Nahoru Odpovědět
2.3.2013 19:19
Avatar
Hartrik
Tvůrce
Avatar
Odpovídá na David Dostal
Hartrik:2.3.2013 19:19

Jak myslíš, ale zase bych nechtěl aby to bylo jen kvůli mě...
Lidskou anatomii ;)

 
Nahoru Odpovědět
2.3.2013 19:19
Avatar
David Dostal
Tvůrce
Avatar
David Dostal:2.3.2013 19:24

Je to ok a nic ti nevycitam. Můžete vyhodnocovat.

 
Nahoru Odpovědět
2.3.2013 19:24
Avatar
David Hartinger
Tým ITnetwork
Avatar
David Hartinger:2.3.2013 19:55

Slíbil jsem ještě takový náznak něčeho svého, načali jsme něco podobného s jedním mým žákem, je to velmi nedodělané, funguje víceméně jen příkaz jdi a je to v C#, ale pro představu :) Udělal bych to v Javě, ale máme teď práci s devbookátorem, tak jsem to nestihl. Někdy to sem určitě dám v lepší podobě.

Kód: http://www.itnetwork.cz/dev-lighter/72

Nahoru Odpovědět
2.3.2013 19:55
You are the greatest project you will ever work on.
Avatar
David Hartinger
Tým ITnetwork
Avatar
David Hartinger:2.3.2013 20:15

Příště si vezmu na pomoc stádo programátorů, ještě, že mi pomohl Drahomír Hanák. Účast tedy byla poněkud skromná, přesto jsme do toho koukali nějakou chvilku :)

Výsledky:

  1. Hartrik (70 bodů)
  2. Samik11 (60 bodů)

Můj subjektivní komentář:

Hartrik použil zajímavou strukturu - strom. Škoda, že jsi projekt neudělal menší a čistší, pro potřeby této konkrétní soutěže by to bylo lepší, bez těch biomů atd., i když je to dobrý nápad. Úplně jsem nepochopil jakým způsobem propojuješ lokace, některé vkládáš do sebe, jakou to má přidanou hodnotu? Moc se mi nelíbil nápad s těma IDčkama, hodně to znepřehledňuje kód. Sám jsem to řešil tak, že mám třídu Svět, ta má velký konstruktor. Tam si vytvářím místnosti a předměty, které do nich poté rovnou vkládám, nepotřebuji je tedy hledat přes ID.

Samik11: Je tam toho hodně málo a je to nedořešené (ten for cyklus v textová hra, způsob parsování příkazů atd.). Je to škoda, tvoje cesta mi byla sympatičtější, nicméně máš třídy hrozně konkrétní, je zbytečné mít pro každou lokaci podtřídu, když se v podstatě liší pouze předměty a popisky.

Soutěž to byla zajímavá, škoda, že bylo málo lidí, určitě někdy zas něco takového zkusíme, ale vymyslím něco jednoduššího :) A adresu na Hartrika už máme :P

Nahoru Odpovědět
2.3.2013 20:15
You are the greatest project you will ever work on.
Avatar
Drahomír Hanák:2.3.2013 20:18

Pár mých poznámek k obou projektům a nějaké tipy:

Hartrik
V kódu se hodně opakují ty samé chyby návrhu:

  • Některé třídy (zejména Other, Sample) svými názvy nevypovídají o tom, co dělají. U Sample o ničem nevypovídají ani metody.
  • Porušení SRP: některé třídy porušují single responsibility principle (starají se o víc věcí najednou)
  • Porušení OCP: Bioms je úplný antipattern - pár další třd se ani nesnaží dodržovat tento princip = malá rozšiřitelnost
  • není vůbec využita dědičnost, i když by se na mnoha místech hodila
  • nadměrná statika - některé třídy by nemusely být statické = nejsou patrné závislosti
  • některá data by mohla být mimo třídy. V kódu by se pak jen parsovala

Samik

  • Porušení SRP: popis třídy Lokalita: "Určuje lokalitu A vypisuje ji na obrazovku" - výpis bych přesunul do třídy k tomu určené
  • celkem krátké

Obecně tipy:

  • programujte proti rozhraní
  • pište hodně malých tříd
  • snažte se o krátký kód tříd a metod (obecně pokud má metoda víc řádek - řekněme víc jak 30 - dalo by se předpokládat, že je špatně navržená)
    • pokud má metoda víc řádek, zkuste je rozdělit do dalších privátních metod
  • zkuste si popsat funkčnost třídy jednou větou (bez spojky A). Pokud to nejde, přesuňte část funkčnosti do jiné třídy.
  • snažte se, aby bylo možné rozšířit kód bez zásahu do již existujícího kódu (ani nejde dodržovat, ale stačí se o to snažit)
  • snažte se, aby bylo na první pohled vidět, na čem je třída závislá
 
Nahoru Odpovědět
2.3.2013 20:18
Avatar
Зайчик
Člen
Avatar
Odpovídá na Hartrik
Зайчик:2.3.2013 20:21

gratuluju :)

Nahoru Odpovědět
2.3.2013 20:21
Коммунизм для нашего будущего!
Avatar
Hartrik
Tvůrce
Avatar
Hartrik:2.3.2013 20:24

Když to čtu, tak se divím, jak jsem mohl stvořit něco tak hrozného ;(
Ale díky za 1 místo, vezmu si z toho ponaučení.

 
Nahoru Odpovědět
2.3.2013 20:24
Avatar
Hartrik
Tvůrce
Avatar
 
Nahoru Odpovědět
2.3.2013 20:25
Avatar
David Hartinger
Tým ITnetwork
Avatar
Odpovídá na Hartrik
David Hartinger:2.3.2013 20:28

On ten výsledek je fakt dobrý, ale cílem soutěže bylo vlastně udělat co nejkratší a co nejhezčí kód :) Nevadí, díky za účast a gratuluji :)

Nahoru Odpovědět
2.3.2013 20:28
You are the greatest project you will ever work on.
Avatar
Samik11
Tvůrce
Avatar
Samik11:2.3.2013 20:34

Když jsem koukal na Hartrikův projekt, tak jsem si říkal, že bodový rozdíl bude ohromný. Každopádně gratuluji a díky za soutěž David Hartingervi. :-)

Editováno 2.3.2013 20:35
Nahoru Odpovědět
2.3.2013 20:34
„Radost vidět a rozumět, to je nejkrásnější dar přírody.“ Albert Einstein
Avatar
Hartrik
Tvůrce
Avatar
Hartrik:2.3.2013 20:43

Také díky, každopádně se mám ještě co učit o OOP, SRP a OCP ať už je to cokoliv. A ty biomy a id původně měly smysl, teda alespoň jsem si to myslel, ale celá aplikace dopadla tak nějak jinak...

 
Nahoru Odpovědět
2.3.2013 20:43
Avatar
Martin Bartoš:2.3.2013 21:25

ako vždy gratulujem :)

 
Nahoru Odpovědět
2.3.2013 21:25
Avatar
David Dostal
Tvůrce
Avatar
David Dostal:2.3.2013 22:45

Také gratuluju.

 
Nahoru Odpovědět
2.3.2013 22:45
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 25 zpráv z 75.