Diskuze: Machr na Algoritmy - Vánoční stromek

Java Java Machr na Algoritmy - Vánoční stromek

Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Zdeněk Pavlátka:

Zdravím všechny. :) V tomto machrovi bude vaším úkolem vytvořit prográmek, který bude náhodně generovat obrázek vánočního stromku s ozdobami. Výsledný obrázek program uloží do souboru, jehož název si zvolí uživatel. Pokud budete chtít, můžete přidat i animaci - generování více obrázků za sebou.

Čas si dáme do neděle 28.12.2014 do 12:00.
Na jakékoli dotazy je dost místa v komentářích.
Povolené jazyky: Java, PHP, C#, ohledně dalších se můžete ptát v komentářích

Kompletní pravidla soutěží: http://www.itnetwork.cz/…outezi-machr

Snažte se dodržet pravidla, za porušení bude bodová penalizace

Odpovědět  +8 21.12.2014 10:41
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na Šimon Raichl
Zdeněk Pavlátka:

Můžeš ho použít, ale nebude za něj tolik bodů.

Nahoru Odpovědět  +1 21.12.2014 11:01
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Michal Žůrek (misaz):

Visual Basic?

Nahoru Odpovědět 21.12.2014 12:56
Nesnáším {}, proto se jim vyhýbám.
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Nahoru Odpovědět 21.12.2014 13:00
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
PiskotPiskotovic
Redaktor
Avatar
PiskotPiskotovic:

Javascript ?

Nahoru Odpovědět 21.12.2014 13:12
Error 404 - stránka motto.php nenalezena.
Avatar
Ondrca
Redaktor
Avatar
Odpovídá na Filip Šohajek
Ondrca:

Ou, tak C++ bude drsný :D

Nahoru Odpovědět  +1 21.12.2014 15:30
Zase jsem o něco chytřejší
Avatar
Filip Šohajek
Redaktor
Avatar
Odpovídá na Ondrca
Filip Šohajek:

Pročpak? S OpenGL to pujde super. :)

 
Nahoru Odpovědět 21.12.2014 15:31
Avatar
Ondrca
Redaktor
Avatar
Odpovídá na Filip Šohajek
Ondrca:

Jako že to nepůjde, nebo špatně jsem nemyslel, ale prostě C++ je na mě jinej level :D

Nahoru Odpovědět 21.12.2014 15:33
Zase jsem o něco chytřejší
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Zdeněk Pavlátka:

Javascript a C++ klidně :)

Nahoru Odpovědět 21.12.2014 15:34
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Insane Qurd
Redaktor
Avatar
Nahoru Odpovědět 21.12.2014 17:12
It's impossible to say it's impossible.
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Nahoru Odpovědět 21.12.2014 17:47
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Denis Homolík (Alfonz):

Je povolené i nějaké nastavení nebo to musí být čistě náhodné? Mimochodem není to na hlavní stránce fóra :)

Nahoru Odpovědět  +2 21.12.2014 17:56
Vše je možné, dokud si to myslíte!
Avatar
mnauik
Člen
Avatar
mnauik:

Může obrázek obsahovat jakoby jiné obrázky? Např nějakou fotku jako pozadí nebo nějaké ozdoby v podobě obrázku atd?

Nahoru Odpovědět 21.12.2014 20:59
minusuj mě, ale zdůvodni to ;)
Avatar
Odpovídá na mnauik
Denis Homolík (Alfonz):

Pokud to zvládneš všechno uložit do souboru tak to asi nebude problém :)

Nahoru Odpovědět  +1 21.12.2014 21:08
Vše je možné, dokud si to myslíte!
Avatar
Odpovídá na mnauik
Michal Žůrek (misaz):

myslím, že by to nemělo vadit, ale záživnější je udělat to "kreslené" nebo rovnou vektorové.

Nahoru Odpovědět  +1 21.12.2014 21:17
Nesnáším {}, proto se jim vyhýbám.
Avatar
Denis Homolík (Alfonz):

Není to zas tak těžké. Svoji verzi už mám. Mix XNA a Winforms :D. Přes týden doladím grafiku a návrh a pošlu to :)

Nahoru Odpovědět 21.12.2014 23:23
Vše je možné, dokud si to myslíte!
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Nahoru Odpovědět 22.12.2014 9:25
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na mnauik
Zdeněk Pavlátka:

Ano, můžeš použít nějaké obrázky, ale jak psal Michal Žůrek (misaz) , zajímavější by to bylo "kreslené".

Nahoru Odpovědět 22.12.2014 9:27
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Odpovídá na Zdeněk Pavlátka
Denis Homolík (Alfonz):

Napadlo mě jestli by se za výhru Machra mohlo dostávat i body :)

Nahoru Odpovědět  +3 22.12.2014 13:35
Vše je možné, dokud si to myslíte!
Avatar
Odpovídá na Denis Homolík (Alfonz)
Michal Žůrek (misaz):

však za výhru dostaneš 10 bodů, když to publikuješ.

Nahoru Odpovědět  +5 22.12.2014 14:34
Nesnáším {}, proto se jim vyhýbám.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Michal Žůrek (misaz)
David Čápka:

Za program je trochu min, ale shrnul jsi to dobre :)

Nahoru Odpovědět  +2 22.12.2014 16:33
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Denis Homolík (Alfonz):

Jak moc záleží na grafice? :)

Nahoru Odpovědět 22.12.2014 19:25
Vše je možné, dokud si to myslíte!
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na Denis Homolík (Alfonz)
Zdeněk Pavlátka:

hodně ;) 50% kód, 50% výsledné obrázky

Nahoru Odpovědět 22.12.2014 19:35
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
coells
Redaktor
Avatar
coells:

Něco pro vánoční náladu od Boltzmanna, když už je tenhle machr.

V příloze je obrázek vánočního stromku, který jsem zadal do neuronové sítě, aby se ho naučila. Animovaný gif obsahuje celý proces učení, takže je hezky vidět, jak v danou chvíli celá síť uvažuje.

Enjoy :-)

 
Nahoru Odpovědět  +3 22.12.2014 23:19
Avatar
martinsakra
Redaktor
Avatar
Odpovídá na coells
martinsakra:

tak k tomuhle by mě,ale opravdu zajmali zdrojový kody

Nahoru Odpovědět  +2 23.12.2014 9:24
Democracy is two wolves and a lamb voting on what to have for lunch. Liberty is a well-armed lamb contesting the vote.
Avatar
coells
Redaktor
Avatar
Odpovídá na martinsakra
coells:

Zrovna tady jsou zdrojáky naprosto nezajímavé, složitost není o nic vyšší než u programu, který řeší soustavu lineárních rovnic, což je jenom pár for-cyklů. Těžká je matematika za tím. Používám Restricted Boltzmann Machines a Stochastic Gradient Descent, hezká přednáška od tvůrce metody je na http://videolectures.net/…audolph_aml/

 
Nahoru Odpovědět  +1 23.12.2014 11:01
Avatar
Michal Žůrek (misaz):

Po hodně, ale hodně dlouhé době se zapojuji i já. http://misaz.moxo.cz/…reeMisaz.zip
Moje řešení je jednoduché, až na.

• naimportovat ttf font je sice utrpení ale jde to.
• vyexportovat GIF je s nástroji .NETu ještě větší utrpení a ačkoliv by to sice mělo jít, nejde to nebo borci ze Stackoverflow neví jak. Musel jsem tedy použít 3rd party library NGif.

Umí to vyexportovat PNG a GIF.

Nahoru Odpovědět  ±0 23.12.2014 20:29
Nesnáším {}, proto se jim vyhýbám.
Avatar
tomasmanhal
Člen
Avatar
Odpovídá na Michal Žůrek (misaz)
tomasmanhal:

Soubor je nebezpečný a byl zablokován :-D

Nahoru Odpovědět 23.12.2014 21:30
Kdyby nám dodali k životu zdrojový kód, vše by bylo jednodušší...
Avatar
Adam Ježek
Tým ITnetwork
Avatar
Odpovídá na tomasmanhal
Adam Ježek:

To mi chrome dělá pořád a se všim :D

Nahoru Odpovědět 23.12.2014 21:31
Programátor dělá co může. Počítač co chce. | Pokud mi dáš mínus, tak prosim, napiš proč!
Avatar
coells
Redaktor
Avatar
Odpovídá na Michal Žůrek (misaz)
coells:

svůj animovaný gif jsem exportoval přímo z .NET pomocí vestavěného GifBitmapEncoder, nepotřebuješ 3rd party knihovnu

 
Nahoru Odpovědět 23.12.2014 21:33
Avatar
Odpovídá na tomasmanhal
Michal Žůrek (misaz):

Chrome? Taky mi to teď tak označil, nevím proč. Nic nebezpečného v tom není. Tvrdí to i virustotal. https://www.virustotal.com/…/1419366794/

(nevím jestli ten superdivný odkaz bude fungovat)

Nahoru Odpovědět  ±0 23.12.2014 21:34
Nesnáším {}, proto se jim vyhýbám.
Avatar
tomasmanhal
Člen
Avatar
Odpovídá na Michal Žůrek (misaz)
tomasmanhal:

Nechápu proč to Chrome dělá :-) Nějspíš z důvodu, že není soubor nijak často stahovaný :-)

Nahoru Odpovědět  +1 23.12.2014 21:36
Kdyby nám dodali k životu zdrojový kód, vše by bylo jednodušší...
Avatar
MadaraCZech
Redaktor
Avatar
Odpovídá na Michal Žůrek (misaz)
MadaraCZech:

Že by se dal Misaz na dráhu hackera ? :D

 
Nahoru Odpovědět  ±0 23.12.2014 21:38
Avatar
Odpovídá na coells
Michal Žůrek (misaz):

to jsem zkoušel (mám tam tu metodu zakomentovanou), ale nelze tam nastavit tu prodlevu a většina programů (které jsem zkoušel) to neanimuje nebo zanimuje moc rychle a neopakuje do nekonečna.

Nahoru Odpovědět 23.12.2014 21:40
Nesnáším {}, proto se jim vyhýbám.
Avatar
Odpovídá na tomasmanhal
Michal Žůrek (misaz):

anebo moje doména (resp. moxo.cz) není moc důvěryhodná.

Nahoru Odpovědět 23.12.2014 21:42
Nesnáším {}, proto se jim vyhýbám.
Avatar
coells
Redaktor
Avatar
Odpovídá na Michal Žůrek (misaz)
coells:

Na stackoverflow najdeš návody, jak to udělat i s časováním nebo to jako já vygeneruj a hoď do GIMPu, kde už jen upravíš časování.

 
Nahoru Odpovědět 23.12.2014 21:49
Avatar
dave_23
Člen
Avatar
dave_23:

Zde je tedy můj výtvor :`
http://leteckaposta.cz/562298113

 
Nahoru Odpovědět 23.12.2014 23:27
Avatar
Lukáš Hruda (Luckin):

Přikládám svůj pokus:
http://leteckaposta.cz/263961101

Poznámky:
Při ukládání souboru je potřeba přidat koncovku .png.
Generování stromu funguje na principu fraktálů.
Nechtěl jsem, aby dekorace byla přeplácaná barvami, takže jsem se omezil pouze na červenou a modrou, světélka mají pouze červenou barvu, modrá nevypadala dobře.
Pravděpodobnost výskytu střapců je 50%, nechtěl jsem aby tam byly vždy, protože mi bez nich strom připadá většinou hezčí, ale prázdnější.
Přišlo mi divné, když světélka pouze "vysela na větvích", takže jsem implementoval i vykreslení kabelu, který světélka spojuje, podle mě to vypadá lépe.

Zde ukázka:

 
Nahoru Odpovědět  +5 25.12.2014 15:09
Avatar
Ondřej Štorc:

Taky se přidám se svým výtvorem, jeho největším nedostatkem je hrozně pomalé vytváření GIFů nevím čím to je způsobený, možná je to jen mým počítačem (nemám možnost to otestovat jinde). Je tam přidané i nějaké to nastavení

Taky přidám ukázku:

Nahoru Odpovědět 27.12.2014 20:29
Život je příliš krátký na to, abychom bezpečně odebírali USB z počítače..
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Zdeněk Pavlátka:

Šimon Raichl :
Nefunguje ukládání obrázku, pravděpodobně kvůli tomuhle:

obrazek = "obrazek";
soubor = get_save_filename("Bitmapa|*.bmp", obrazek); // vrací "obrazek.bmp" ( včetně přípony )
screen_save_part(soubor + ".bmp", 0, 48, 640, 480); // ukládáš obrazek.bmp.bmp

Kmen stromku vypadá trochu divně, je hrozně tlustý a asi by měl být "za stromkem", ne ho překrývat. Navíc se při generování mění jen pozice jeho pravé strany, neposouvá se celý.

Michal Žůrek (misaz) :
Kartičky jsou moc pěkné, líbí se mi nápad s popiskem.
Kód nevypadá špatně, ale tohle je trochu zvláštní:

While True
        x = rnd.Next(0, mask.Width)
        y = rnd.Next(0, mask.Height)

        If mask.GetPixel(x, y) = color Then
                Exit While
        End If
End While

Kdyby na obrázku daná barva nebyla, máš nekonečný cyklus.
Kód je pěkně komentářovaný, přehledný.

Lukáš Hruda (Luckin) :
Moc pěkný výtvor. Po vzhledové stránce by to možná chtělo více barev (hlavně světýlka, nebýt drátků mezi nimi bych ani nepoznal, že to nejsou jen další ozdoby) a kousek kmenu pod stromkem.
Pokud při ukládání za název nedám příponu, program jí tam nedoplní, to by určitě chtělo spravit.

dave_23 :
Kód není špatný, generování řetězů je řešeno celkem pěkně, jen ozdoby se generují dost divně.

Ondřej Štorc :
Nastavení je pěkné, kód není špatný, vše dobře funguje :)

Nejvíce se mi líbil výtvor od Lukáš Hruda (Luckin) , svůj výtvor publikuj a napiš si, jakou placku a kam ti mám poslat.

Akceptované řešení
+20 Zkušeností
Řešení problému
Nahoru Odpovědět  +1 1.1.2015 14:54
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Odpovídá na Zdeněk Pavlátka
Michal Žůrek (misaz):

ten cyklus tam je protože ta barva tam 100% bude. Je to rychlejší řešení než vykreslit baňky a pak je metodou ořezávat podle te masky, efekt je stejný, ale je to rychlejší.

Nahoru Odpovědět 1.1.2015 15:34
Nesnáším {}, proto se jim vyhýbám.
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 44 zpráv z 44.