NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
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í.
Avatar
Zdeněk Pavlátka:20.8.2014 10:47

Tento týden budete mít za úkol vytvořit aplikaci, která dostane text a nějak pěkně ho zobrazí jako ASCII Art. Aplikace můe mít i výběr z několika druhů výsledného textu - různá písma. Jako inspiraci můžete vzít např tuto stránku: http://patorjk.com/software/taag/#… .

Povolené jazyky jsou: C, C++, C#, VB.NET, Java, PHP, JavaScript
Pokud by někdo chtěl nějaký jiný jazyk, může se na něj zeptat v komentářích, případně mohu povolit i nějaký navíc.

U C, C++, C#, VB.NET a Java stačí klidně konzolová aplikace.

Pro jakékoli dotazy je dost místa v komentářích.

Čas si dáme do pondělí 25.8.2014 do 12:00. Vyhodnocení by mělo být téhož dne odpoledne/večer.

Kompletní pravidla soutěží: http://www.itnetwork.cz/…outezi-machr
Pozn.: Prosím odevzdávejte to v zazipované složce, ať to nemusím rozbalovat nějakou webovou službou

Editováno 20.8.2014 10:48
Odpovědět
20.8.2014 10:47
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Odpovídá na Zdeněk Pavlátka
Michal Žůrek - misaz:20.8.2014 11:07

JavaScriptové nadstavby?

 
Nahoru Odpovědět
20.8.2014 11:07
Avatar
Odpovídá na Michal Žůrek - misaz
Zdeněk Pavlátka:20.8.2014 11:09

Pokud k tomu dáš zkompilovanou formu - čistý Javascript tak klidně.

Nahoru Odpovědět
20.8.2014 11:09
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Nahoru Odpovědět
20.8.2014 11:40
2x piš, jednou debuguj
Avatar
Odpovídá na Josef Kuchař - Pepa489
PiskotPiskotovic:20.8.2014 18:43

Myslim ze jestli to v pythonu jde, tak by nejspis nemel byt problem. Ale zeptej se Zdeněk Pavlátka

Nahoru Odpovědět
20.8.2014 18:43
Error 404 - stránka motto.php nenalezena.
Avatar
Odpovídá na PiskotPiskotovic
Michal Žůrek - misaz:20.8.2014 18:45

to jde udělat úplně ve všem co zvládá základní operace se stringem.

 
Nahoru Odpovědět
20.8.2014 18:45
Avatar
Odpovídá na Josef Kuchař - Pepa489
Zdeněk Pavlátka:20.8.2014 19:26

Python jsem viděl snad jednou v životě. Tak proč ho rovnou nezkusit opravovat :P Klidně to v něm napiš, ale kód musí být úplně ukázkový, jinak se v něm nevyznám. ;)

Nahoru Odpovědět
20.8.2014 19:26
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Odpovídá na Zdeněk Pavlátka
Josef Kuchař - Pepa489:20.8.2014 19:42

Pokusím se :D
Edit: Klidně ti to převedu do .exe

Editováno 20.8.2014 19:44
Nahoru Odpovědět
20.8.2014 19:42
2x piš, jednou debuguj
Avatar
Odpovídá na Josef Kuchař - Pepa489
Zdeněk Pavlátka:20.8.2014 19:45

To bys mohl, ať to můžu spustit.

Nahoru Odpovědět
20.8.2014 19:45
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Ondrca
Tvůrce
Avatar
Odpovídá na Zdeněk Pavlátka
Ondrca:20.8.2014 19:47

Takže, když někdo udělá celkem pěkný kód, ale bude mít třeba jen dva fonty, tak nemá takovou šanci, jako ne nejhorší kód ale třeba 10 fontů?

Nahoru Odpovědět
20.8.2014 19:47
Zase jsem o něco chytřejší
Avatar
MadaraCZech
Tvůrce
Avatar
MadaraCZech:20.8.2014 19:58

Když to dělám v Pythonu, může to být v konzoli ?

 
Nahoru Odpovědět
20.8.2014 19:58
Avatar
Ondrca
Tvůrce
Avatar
Odpovídá na Zdeněk Pavlátka
Ondrca:20.8.2014 19:59

Tak už se to tu chytlo, už to můžeš přejmenovat na machr na python :-D

Nahoru Odpovědět
20.8.2014 19:59
Zase jsem o něco chytřejší
Avatar
Odpovídá na Ondrca
Zdeněk Pavlátka:20.8.2014 19:59

Já hodnotím hlavně celkový dojem - kód + funkčnost + uživatelská část. Ale trochu větší význam má kód.

Nahoru Odpovědět
20.8.2014 19:59
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Ondrca
Tvůrce
Avatar
Nahoru Odpovědět
20.8.2014 19:59
Zase jsem o něco chytřejší
Avatar
Odpovídá na MadaraCZech
Zdeněk Pavlátka:20.8.2014 20:02

Jo, kde to v konzoli jde je konzole povolená.

Nahoru Odpovědět
20.8.2014 20:02
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
PiskotPiskotovic:20.8.2014 20:09

Už to dělám v JS. Pokud chápu zadání, tak už mám skoro hotovo, zbytek dodělám zítra. Jinak otázka: jsou body dolů když js není ve zvláštním souboru ale HTML ?

Nahoru Odpovědět
20.8.2014 20:09
Error 404 - stránka motto.php nenalezena.
Avatar
Odpovídá na PiskotPiskotovic
Zdeněk Pavlátka:20.8.2014 20:11

Jsou, to je úplně základní věc.

Nahoru Odpovědět
20.8.2014 20:11
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
MadaraCZech
Tvůrce
Avatar
Odpovídá na Zdeněk Pavlátka
MadaraCZech:20.8.2014 20:12

Python tam zrovna nevidím.

 
Nahoru Odpovědět
20.8.2014 20:12
Avatar
Nahoru Odpovědět
20.8.2014 20:13
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
MadaraCZech
Tvůrce
Avatar
Odpovídá na Zdeněk Pavlátka
MadaraCZech:20.8.2014 20:22

"U C, C++, C#, VB.NET a Java stačí klidně konzolová aplikace."
"Když to dělám v Pythonu, může to být v konzoli ?"
"Jo, kde to v konzoli jde je konzole povolená."
"Python tam zrovna nevidím."
"kde?"

 
Nahoru Odpovědět
20.8.2014 20:22
Avatar
Odpovídá na MadaraCZech
Zdeněk Pavlátka:20.8.2014 20:26

"Jo, kde to v konzoli jde je konzole povolená."

  1. tímhle komentářem jsem to povolil
  2. "U C, C++, C#, VB.NET a Java stačí klidně konzolová aplikace."
    • v JS a PHP budeš dělat konzoli dost těžko, vypsané jsou všechny ostatní, které byly původně povolené
Nahoru Odpovědět
20.8.2014 20:26
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
MadaraCZech
Tvůrce
Avatar
 
Nahoru Odpovědět
20.8.2014 20:41
Avatar
MadaraCZech
Tvůrce
Avatar
MadaraCZech:20.8.2014 22:40

OK, volit Python nebylo zrovna nejlepší :D

 
Nahoru Odpovědět
20.8.2014 22:40
Avatar
PiskotPiskotovic:21.8.2014 8:48

Nevíte někdo, proč se mi převedené znaky ukazují pod sebou a ne vedle sebe ?
Viz. obrázek, snad to někdo pochopíte. :D

Nahoru Odpovědět
21.8.2014 8:48
Error 404 - stránka motto.php nenalezena.
Avatar
Odpovídá na PiskotPiskotovic
Zdeněk Pavlátka:21.8.2014 11:35

Asi protože vypisuješ jeden znak po druhém, ty musíš spojovat jednotlivé řádky těch písmen.

Nahoru Odpovědět
21.8.2014 11:35
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Odpovídá na PiskotPiskotovic
Zdeněk Pavlátka:21.8.2014 11:37

Ty děláš asi tohle:

" # "
"# #"
"###"
"# #"
"# #"

pak

"## "
"# #"
"## "
"# #"
"## "

Ale máš dělat

" # " + "## "
"# #" + "# #"
"###" + "## "
"# #" + "# #"
"# #" + "## "
Editováno 21.8.2014 11:38
Nahoru Odpovědět
21.8.2014 11:37
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Honza Bittner
Tvůrce
Avatar
Odpovídá na MadaraCZech
Honza Bittner:21.8.2014 11:43

Python je na tuto věc dost vhodný...

Možná ten vhodný nejsi ty?

Nahoru Odpovědět
21.8.2014 11:43
FIT ČVUT alumnus :-) Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://github.com/tenhobi/ama.
Avatar
MadaraCZech
Tvůrce
Avatar
Odpovídá na Honza Bittner
MadaraCZech:21.8.2014 13:21

Myslím tím, že Python pro toto není výhodný, jelikož v sekci Python není dostatek článků, které by kód zkrátily.

 
Nahoru Odpovědět
21.8.2014 13:21
Avatar
Odpovídá na Zdeněk Pavlátka
PiskotPiskotovic:21.8.2014 13:26

Ne, já to dělám tak že do textboxu okopíruju text z inputu, a přes .replace tam napíšu ("co_zmenit" "ke_zmeneni"); a v tom "ke_zmeneni" to mám nějak takto: "něco něc\n$###&\n****" ... \n pro neznalé je nový řádek, takže to asi dělá můj problém ... Avšak moje "práce" je strašný prasekód, takže se bojím to sem vůbec dát ... Ale díky :) zkusím to

Editováno 21.8.2014 13:26
Nahoru Odpovědět
21.8.2014 13:26
Error 404 - stránka motto.php nenalezena.
Avatar
Odpovídá na MadaraCZech
PiskotPiskotovic:21.8.2014 16:28

Tak se python naučíš jinde, ne ? :) Není tu tolik článků protože místní Pythonová komunita je celkem malá ... po pravdě, já když ho zkoušel tak mě moc nevím proč nechytl.

Nahoru Odpovědět
21.8.2014 16:28
Error 404 - stránka motto.php nenalezena.
Avatar
coells
Tvůrce
Avatar
Odpovídá na PiskotPiskotovic
coells:21.8.2014 18:15

Nejspíš proto, že Python se výrazně liší od ostatních jazyků a pokud se v něm pokusíš psát ve stylu C# nebo PHP, je kód ošklivý a nic nezískáš. Pokud bych tuhle úlohu psal v Pythonu, pak samotné jádro, které převede text na ASCII art, bude mít nejvýše 3 řádky.

Pokud to bude někdo řešit v Pythonu, bude mít tak velkou výhodu proti ostatním, že bych ho snad ani nepovolil :-P

 
Nahoru Odpovědět
21.8.2014 18:15
Avatar
Odpovídá na coells
Zdeněk Pavlátka:21.8.2014 20:19

Vím, že to je v Pythonu jednodužší, ale pochybuji, že ho někdo z těch, kdo se budou machra účastnit, umí na takové úrovni.

Nahoru Odpovědět
21.8.2014 20:19
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
coells
Tvůrce
Avatar
Odpovídá na Zdeněk Pavlátka
coells:21.8.2014 23:21

Nejspíš proto, že neustále hodnotíte nějaké úrovně. Samotný přepis znaků na ASCII art máš hotový za dvě minuty, protože na tři řádky nepotřebuješ více času. To přece nevyžaduje žádnou zvláštní úroveň?

ascii = [''] * header(HEIGHT)
for code in text:
    ascii = [l + r for l, r in zip(ascii, font(ord(code)))]

Můžeš se mrknout na celé řešení http://leteckaposta.cz/125781096
Podporuje základní fonty .flf bez komprese a jednoduchý horizontální smushing (úrovně 0, 1, 2).
Některé fonty nejdou nahrát kvůli rozšířením, celá FIG specifikace je dost složitá.
Vyžaduje Python3 kvůli unicode.

První řádka je pro help, druhá je příklad, který vygeneruje text do souboru.

python3 fig.py -h
python3 fig.py -smush 2 fonts/big.flf test.txt "ASCII art je celkem zábava"
 
Nahoru Odpovědět
21.8.2014 23:21
Avatar
wolf661
Člen
Avatar
wolf661:21.8.2014 23:29

Zdravim, to musime pouzit tie .flf fonty? Som doteraz nevedel ze nieco take existuje. :D

Nahoru Odpovědět
21.8.2014 23:29
Situácia normálna, všetko v hajzli.
Avatar
coells
Tvůrce
Avatar
Odpovídá na wolf661
coells:21.8.2014 23:33

Určitě nemusíš. Ale je daleko rychlejší si napsat jednoduchý FLF parser, než vytvářet vlastní fonty.

 
Nahoru Odpovědět
21.8.2014 23:33
Avatar
Lukáš Křehula:22.8.2014 16:49

Včetně speciálních znaků a diaktriky?

 
Nahoru Odpovědět
22.8.2014 16:49
Avatar
Odpovídá na Lukáš Křehula
Zdeněk Pavlátka:22.8.2014 18:09

Dikritiku nemusíš, specialní znaky mi stačí tyhle:

,.!?():;/*-+<>=|{}[ ]

Pokud tam bude něco víc, budu to připočítávat k hodnocení.

Nahoru Odpovědět
22.8.2014 18:09
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Lukáš Křehula:23.8.2014 19:17

Tady je můj výtvor, je to nic moc ale podmínky to splňuje)
http://leteckaposta.cz/135928164

 
Nahoru Odpovědět
23.8.2014 19:17
Avatar
Nahoru Odpovědět
23.8.2014 20:22
Miluji {}, proto dělám v C#.
Avatar
Matěj Kripner
Tvůrce
Avatar
Odpovídá na Zdeněk Pavlátka
Matěj Kripner:24.8.2014 13:44

Můžu vědět, jak se bude hodnotit? Resp. co bude považováno za důležité a co za nepodstatné? Nebo je to tajemství ;)

 
Nahoru Odpovědět
24.8.2014 13:44
Avatar
Uživatel sítě :24.8.2014 15:34

Tady je můj výtvor:

Save: http://leteckaposta.cz/449515605
Online: http://sifler.php5.cz/art/

Na diakritiku mi nezbyl bohužel čas, ale není prý nutná takže je to v pohodě.
Dost času mi zabral asi samotný font, také jsem se pozastavil nad řádkováním.
Také mohu nabídnou jenom jeden font, další bych také nestihl.
Aspoň jsem i stihl některé ty 'speciální' znaky.. :)

Nahoru Odpovědět
24.8.2014 15:34
Chybami se člověk učí, běžte se učit jinam!
Avatar
Uživatel sítě :24.8.2014 15:39

Promiňte, oprava linku na save. Nebyla tam moje přezdívka..
http://leteckaposta.cz/114251259 ;D

Nahoru Odpovědět
24.8.2014 15:39
Chybami se člověk učí, běžte se učit jinam!
Avatar
Ondřej Štorc
Tvůrce
Avatar
Odpovídá na Matěj Kripner
Ondřej Štorc:24.8.2014 15:54

Tak asi jako obvykle:

  1. Kód
  2. OOP
  3. Funkčnost
  4. Vzhled a případné vychytávky
Nahoru Odpovědět
24.8.2014 15:54
Život je příliš krátký na to, abychom bezpečně odebírali USB z počítače..
Avatar
Matěj Kripner
Tvůrce
Avatar
Odpovídá na Ondřej Štorc
Matěj Kripner:24.8.2014 16:10

Já právě nevěděl, jestli jde tolik o vzhled nebo o rychlost atd. Takže díky :)

 
Nahoru Odpovědět
24.8.2014 16:10
Avatar
Ondřej Štorc
Tvůrce
Avatar
Odpovídá na Matěj Kripner
Ondřej Štorc:24.8.2014 16:18

Tak logicky když budeš mít vzhled na jedničku, ale vygenerování ascii textu bude trvat 5 min tak to asi nevyhraje.. :D

Nahoru Odpovědět
24.8.2014 16:18
Život je příliš krátký na to, abychom bezpečně odebírali USB z počítače..
Avatar
Matěj Kripner
Tvůrce
Avatar
Odpovídá na Ondřej Štorc
Matěj Kripner:24.8.2014 16:34

Takže jde o celkový vzhled aplikace. Také to totiž mohlo být tak, že jde jen o to co nejlépe a s co nejčistším kódem vygenerovat ASCII art text(A bylo by jedno, jestli je to v konzoli, nebo v perfektním GUI).

 
Nahoru Odpovědět
24.8.2014 16:34
Avatar
wolf661
Člen
Avatar
wolf661:24.8.2014 21:32

Zdravim, pridavam svoj pokus :D
http://leteckaposta.cz/549658912

Nahoru Odpovědět
24.8.2014 21:32
Situácia normálna, všetko v hajzli.
Avatar
Lukáš Křehula:25.8.2014 0:57

Zrovna jsem si uvědomil, že jsem tu složku nepojmenoval po mém nicku, tak tady to je již v pořádku:
http://leteckaposta.cz/226468104

 
Nahoru Odpovědět
25.8.2014 0:57
Avatar
sadlomaslox25:25.8.2014 11:42

Tak taky posilam svoji verzi ale upozornuju, ze je hoodne alternativni :D (v C# "bohuzel" uz existuje cela knihovna na figlety takze by to bylo trapne). Ale myslim ze je na druhou stranu je zase hezka :). Bohuzel nebyl cas dodelat vsechny detaily ale funguji mezery a radkovani a wraping (v ramci moznosti). Pise se primo na klavesnici.

http://leteckaposta.cz/893032539

 
Nahoru Odpovědět
25.8.2014 11:42
Avatar
tomisoka
Tvůrce
Avatar
tomisoka:25.8.2014 11:56

Tak tady je můj pokus : https://www.dropbox.com/…tomisoka.zip?dl=0
Původně mě nenapadlo, že by "ASCII art generator" mohl "podvádět" už předpřipravenými znaky, tak jsem to udělat trošku jinak...

Je to psáno v C takže jenom terminál.

Jinak umí unicode znaky do 0x180, ale znaky které mají diakritiku tak jsou někdy zdeformované (hlavně velká písmena - velikost je stejná jako malé znaky).
Také pak nastává problém se znaky, které nejsou v základním ASCII na windows consoli - takže na windows se dají vypsat tyto speciální znaky jenom inputem ze souboru

Tak a teď doufat, že jsem ten kód napsal aspoň trochu čitelně...

 
Nahoru Odpovědět
25.8.2014 11:56
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 50 zpráv z 75.