Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
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 algoritmy - Vykreslení rostliny

Aktivity
Avatar
David Hartinger
Vlastník
Avatar
David Hartinger:12.11.2013 11:26

Ahoj programátoři, tento týden budeme v minisoutěži o placku "Machr na algoritmy" (nebo nějakou jinou, kterou ještě nemáte) vykreslovat rostlinu. Naprogramujte aplikaci, která vykreslí co nejzajímavější rostlinu tak, aby nevypadala při každém spuštění stejně. Dost možná budete chtít použít l-systémy, ale pěkných výsledků lze dosáhnout i bez pokročilé matematiky nebo algoritmizace. Generátor rostliny by měl být ideálně objektový a nastavitelný, předveďte tvorbu rostliny s různými parametry.

Můžete použít libovolný programovací jazyk z těch, které mají na devbooku sekce :)

Deadline si dejme jako obvykle v neděli 17.11. v 18:00 hodin.
Podrobnější pravidla soutěží: http://www.itnetwork.cz/…outezi-machr

Odpovědět
12.11.2013 11:26
New kid back on the block with a R.I.P
Avatar
Vadim Kablukov
Tvůrce
Avatar
Odpovídá na David Hartinger
Vadim Kablukov:12.11.2013 18:09

Když už bych se se svými mizernými znalostmi snad pustil do vytváření, jaké parametry by měly být nastavitelné?

Nahoru Odpovědět
12.11.2013 18:09
Oheň je přítel, ne sluha
Avatar
Odpovídá na Vadim Kablukov
Jakub Lásko[Saarix]:12.11.2013 18:24

Podlě mě asi teoreticky výška kmene, počet větví, počet listů na větvi je taky možný a pak třeba definovat typy stromů podle stavby koruny :-)

Nahoru Odpovědět
12.11.2013 18:24
Časem je vše možné.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Vadim Kablukov
David Hartinger:12.11.2013 18:41

Třeba to co zmínil Jakub, také jde o úhly mezi větvemi, pravděpodobnost změny úhlu a podobně, to už závisí na použitémalgoritmu.

Nahoru Odpovědět
12.11.2013 18:41
New kid back on the block with a R.I.P
Avatar
Neaktivní uživatel:12.11.2013 20:19

chci se zeptat, mohu se ucastnit i s ASCII stromem ktery by mel ruzne vetve atd.?

Nahoru Odpovědět
12.11.2013 20:19
Neaktivní uživatelský účet
Avatar
Odpovídá na David Hartinger
Michael Olšavský:12.11.2013 20:27

Je to o kreslení toho stromu nebo mohu nechat na uživately pravidla generování?

 
Nahoru Odpovědět
12.11.2013 20:27
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Michael Olšavský
David Hartinger:13.11.2013 11:13

Jde hlavně o to jak bude vypadat ta rostlina (a samozřejmě i kód).

Nahoru Odpovědět
13.11.2013 11:13
New kid back on the block with a R.I.P
Avatar
Neaktivní uživatel:14.11.2013 18:55

zde posilam :-)

http://leteckaposta.cz/125762138

sice ASCII ale snad to nebude vadit :-)

Nahoru Odpovědět
14.11.2013 18:55
Neaktivní uživatelský účet
Avatar
Vadim Kablukov
Tvůrce
Avatar
Vadim Kablukov:15.11.2013 21:51

Tak tady jsem splácal nějaký ten strom: http://leteckaposta.cz/988571348
má občas nějaké grafické mouchy, ale automaticky je opraví :D v rozhraní skoro nic není, není třeba popisovat :)

Nahoru Odpovědět
15.11.2013 21:51
Oheň je přítel, ne sluha
Avatar
Odpovídá na Vadim Kablukov
Zdeněk Pavlátka:16.11.2013 9:35

Nad stromem se ti generuje široká hnědá čára. Mimochodem, v čem je to dělané?

Nahoru Odpovědět
16.11.2013 9:35
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Vadim Kablukov
Tvůrce
Avatar
Odpovídá na Zdeněk Pavlátka
Vadim Kablukov:16.11.2013 9:51

Fakt? díky za info, mě to nedělalo, nevím proč :D zkusím na jiném os. A je to v Constructu 0.87

Nahoru Odpovědět
16.11.2013 9:51
Oheň je přítel, ne sluha
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Vadim Kablukov
David Hartinger:16.11.2013 9:54

Také tam mám čáru, kterou u běžných stromů nepozoruji, jinak pěkné :)

Nahoru Odpovědět
16.11.2013 9:54
New kid back on the block with a R.I.P
Avatar
Odpovídá na Vadim Kablukov
Neaktivní uživatel:17.11.2013 9:40

Muzes sem poslat aspon obrazek, nemuzu to spustit, protoze nemam directx 9. diky..

Nahoru Odpovědět
17.11.2013 9:40
Neaktivní uživatelský účet
Avatar
Michael Olšavský:17.11.2013 10:48

https://drive.google.com/folderview?…

Přidávám svou verzi. Tento týden to bylo zajímavé zadání. Se samotným algoritmem jsem si docela vyhrál. Splnilo to účel něčeho nového :-)

 
Nahoru Odpovědět
17.11.2013 10:48
Avatar
Silvinios
Tvůrce
Avatar
Silvinios:17.11.2013 11:27

Posílám řešení (HTML5 + JavaScript)
http://leteckaposta.cz/715213459

 
Nahoru Odpovědět
17.11.2013 11:27
Avatar
Vadim Kablukov
Tvůrce
Avatar
Odpovídá na David Hartinger
Vadim Kablukov:17.11.2013 13:18

Diky za upozorneni, pokusim se to do 6pm opravit, bohuzel jsem hned po nahrani programu odjel z domu, stale tam nejsem :) a posix obrazek za chvili nahraju

Nahoru Odpovědět
17.11.2013 13:18
Oheň je přítel, ne sluha
Avatar
Zdeněk Pavlátka:17.11.2013 14:30

Nečekal bych, že to přepisování L-systémů je tak složité. :D Ale stihnout bych to měl.

Nahoru Odpovědět
17.11.2013 14:30
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Vadim Kablukov
Tvůrce
Avatar
Odpovídá na David Hartinger
Vadim Kablukov:17.11.2013 15:21

Tak jsem to zkusil na XP a W7, žádná čára. Mohl bys to prosím víc popsat nebo třeba poslat screenshot? Jinak můj screenshot je přiložen :)

Nahoru Odpovědět
17.11.2013 15:21
Oheň je přítel, ne sluha
Avatar
Odpovídá na Vadim Kablukov
Zdeněk Pavlátka:17.11.2013 16:07

Mám Windows Vista. A tady máš obrázek:

Editováno 17.11.2013 16:08
Nahoru Odpovědět
17.11.2013 16:07
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Vadim Kablukov
Tvůrce
Avatar
Odpovídá na Zdeněk Pavlátka
Vadim Kablukov:17.11.2013 16:22

Dík moc! Zkusil jsem to opravit, snad to teď poběží, asi to bylo tím, že generátor chodil do mínusu a na Vistě to asi bralo ten mínus jako šířku. Zde je nový program: http://leteckaposta.cz/790863788

Nahoru Odpovědět
17.11.2013 16:22
Oheň je přítel, ne sluha
Avatar
Zdeněk Pavlátka:17.11.2013 16:37

Zase něco nefunguje! To je u každýho Machra! Tentokrát nefunguje přepisování.
Místo

O(l) -> O(l) O(l)

udělá

O(l) -> O() O()

Kód ještě před chvílí fungoval! A zlobí až při několikátém přepisu.

Nahoru Odpovědět
17.11.2013 16:37
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Zdeněk Pavlátka:17.11.2013 17:24

Opravit se mi to nepodařilo( :@ ), tak alespoň posílám svůj ukázkový L-systém v Malsys( http://malsys.cz/Process - výborně se v tom vytvářejí obrázky rostlin)

lsystem tree {
        set symbols axiom = N(3);
        set initialAngle = 90;
        set iterations = 7;
        let x = (random()*30-15);

        interpret N(l) as DrawForward(l, 1, #008000);
        interpret O(l) as DrawForward(l, 1, #804000);
        interpret L(c) as TurnLeft(c*(0.5+(random()/2)));
        interpret P(c) as TurnLeft(-c*(0.5+(random()/2)));
        interpret [ as StartBranch;
        interpret ] as EndBranch;

        rewrite N(l) to O(l/2) P(x) [ P(22) N(l) ] [ L(22) N(l) ] O(l/2) N(l);
        rewrite O(l) to O(l) O(l);
}

process tree with SvgRenderer;

Generuje náhodně, kód se vloží do textového pole a stiskne se tlačítko Process & display results

Editováno 17.11.2013 17:29
Nahoru Odpovědět
17.11.2013 17:24
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Odpovídá na Zdeněk Pavlátka
Zdeněk Pavlátka:17.11.2013 17:30

Ještě obrázek :D i když nesplňuju zadání (Můžete použít libovolný programovací jazyk z těch, které mají na devbooku sekce) asi budu muset napsat nějaké tutoriály na Malsys :D

Nahoru Odpovědět
17.11.2013 17:30
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
David Dostal
Tvůrce
Avatar
David Dostal:17.11.2013 17:32

Na https://www.dropbox.com/…j/susQiAQoa7 najdete můj výtvor. Při náhodném generování pravidel snaží generovat pravidla podobná těm, co jsou nadefinovaná v souboru ls.txt - můžete přidávat vlastní (první řádek je axiom, další jsou pravidla). Ještě jsem chtěl udělat nastavitelné obarvování podle písmen, to už jsem bohužel nestihl.
PS: Nastavitelnost, o které Sdraco psal jsem možná trochu přehnal.

 
Nahoru Odpovědět
17.11.2013 17:32
Avatar
Odpovídá na David Dostal
Zdeněk Pavlátka:17.11.2013 17:37

Pěkné, škoda těch barev. Ale pořád lepší než já :D .

Nahoru Odpovědět
17.11.2013 17:37
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
David Hartinger
Vlastník
Avatar
David Hartinger:17.11.2013 20:20

Rozhodl jsem se udělit zas více placek, jelikož výsledky jsou super :) Těm, co použili L-systémy, jsem přidal, protože je to něco nového a cením si toho, že se tím prokousali a prakticky to použili.

David Dostal - Salátík to rozjel ve velkém stylu, výstup sice není tak propracovaný, ale položil jsi silné základy interpreteru L-systémů. Jen mi chvíli trvalo, než jsem přišel na to, že asi nemám zadávat více než 5 iterací :) Některé rostliny jsem na zemi ještě neviděl, ale stejně je to jasný machr na algoritmy.

Michael Olšavský - Další úspěšné využití L-systémů. Rostlinka vypadá lépe než u Salátíka, ale trochu jsi to přehnal s počtem iterací a nejsou tak náhodné. Vykreslení občas neproběhne, možná kreslíš směrem dolů, chtělo by to opravit. Vím, že algoritmy již zkoušíš asi po sté, tak je máš mít :)

Vadim Kablukov - Výstup vypadá graficky dost dobře, škoda toho Constructu. Oproti ostatním to nemůžu moc dobře hodnotit, ale ten výstup je prostě super, co bys říkal placce Machr na efekty? Ta se dává hlavně za grafické zpracování.

Silvinios - Šel jsi na to klasickou cestou, výsledek i implementace vypadají pěkně, chválím změnu barev. Jsi asi někde mezi nejlepším grafickým výsledkem a nejlepším použitým algoritmem, tak jsem placku nechal klukům, nejraději bych ji dal všem, ale to by potom nebyla soutěž :). Stejně budeme moc rádi, když výtvor přidáš.

next-x - Snaha se cení. Stačí ti vytvořit jednu instanci randomu, nemusíš pro každé náhodné číslo tvořit jiný. Určitě se odnauč používat názvy jako foo, bar a podobně.

nuz15 - Rostlina vypadá pěkně, škoda, že jsi to nezvládl s tou aplikací, mohla být velice zajímavá. Určitě ji sem hoď potom mimo soutěž.

Všem děkuji za účast, vítězové nechť publikují výtvory a napíší x adresu a jakou placku chtějí. Těším se příští týden :)

Nahoru Odpovědět
17.11.2013 20:20
New kid back on the block with a R.I.P
Avatar
Odpovídá na David Hartinger
Michael Olšavský:17.11.2013 20:35

Zkouším většinu Machrů :-D Ale ty na algoritmy jsou nejzajímavější. Díky za vysvětlení proč se to občas nevykreslí :-D S tou náhodností máš pravdu. Dělal jsem to na poslední chvíli. O víkendu jsem neměl moc čas. Každopádně děkuji a gratuluji ostatním :-)

 
Nahoru Odpovědět
17.11.2013 20:35
Avatar
Vadim Kablukov
Tvůrce
Avatar
Odpovídá na David Hartinger
Vadim Kablukov:18.11.2013 14:12

Já bych proti placce s efekty nic neměl :D za chvíli bych to publikoval :)

Nahoru Odpovědět
18.11.2013 14:12
Oheň je přítel, ne sluha
Avatar
Odpovídá na David Hartinger
Zdeněk Pavlátka:18.11.2013 16:02

Já zkoušim každého machra, u kterého se mi líbí zadání a pokaždé mám smůlu. Jednou nefunguje dropbox, jindy nejde načítání ze souboru po řádkách (to bylo opsané z knihy 1001 tipů a triků pro C++) a teď dělá C# nesmyslné chyby. ;(

Nahoru Odpovědět
18.11.2013 16:02
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Odpovídá na David Hartinger
Zdeněk Pavlátka:18.11.2013 19:32

Zdroják(C#) - https://dl.dropboxusercontent.com/…L_system.zip
Spustitelný soubor - https://dl.dropboxusercontent.com/…stem_run.zip
pozn. odstranil jsem nefunkční část :D, v kódu je zakomentovaná

Nahoru Odpovědět
18.11.2013 19:32
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Odpovídá na Zdeněk Pavlátka
Zdeněk Pavlátka:19.11.2013 15:58

Když už někdo dá i--, mohl by alespoň napsat proč.

Nahoru Odpovědět
19.11.2013 15:58
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Zdeněk Bauer
Tvůrce
Avatar
Zdeněk Bauer:19.11.2013 16:34

Nuzi, taky mě to štve, chtělo by to nějaký komentáře malinký k tomu :)
Jinak gratuluji výhercům, opravdu moc krásné, žasnu nad kódem, snad se to taky naučím :)

 
Nahoru Odpovědět
19.11.2013 16:34
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 32 zpráv z 32.