Diskuze: Machr na efekty - ASCII Art text
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.

Tvůrce

Zobrazeno 50 zpráv z 75.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Pokud k tomu dáš zkompilovanou formu - čistý Javascript tak klidně.
Myslim ze jestli to v pythonu jde, tak by nejspis nemel byt problem. Ale zeptej se Zdeněk Pavlátka
to jde udělat úplně ve všem co zvládá základní operace se stringem.
Python jsem viděl snad jednou v životě. Tak proč ho rovnou nezkusit
opravovat Klidně to v něm
napiš, ale kód musí být úplně ukázkový, jinak se v něm nevyznám.
Pokusím se
Edit: Klidně ti to převedu do .exe
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ů?
Když to dělám v Pythonu, může to být v konzoli ?
Tak už se to tu chytlo, už to můžeš přejmenovat na machr na python
Já hodnotím hlavně celkový dojem - kód + funkčnost + uživatelská část. Ale trochu větší význam má kód.
Jo, kde to v konzoli jde je konzole povolená.
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 ?
"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?"
"Jo, kde to v konzoli jde je konzole povolená."
OK, volit Python nebylo zrovna nejlepší
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.
Asi protože vypisuješ jeden znak po druhém, ty musíš spojovat jednotlivé řádky těch písmen.
Ty děláš asi tohle:
" # "
"# #"
"###"
"# #"
"# #"
pak
"## "
"# #"
"## "
"# #"
"## "
Ale máš dělat
" # " + "## "
"# #" + "# #"
"###" + "## "
"# #" + "# #"
"# #" + "## "
Python je na tuto věc dost vhodný...
Možná ten vhodný nejsi ty?
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.
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
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.
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
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.
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"
Určitě nemusíš. Ale je daleko rychlejší si napsat jednoduchý FLF parser, než vytvářet vlastní fonty.
Včetně speciálních znaků a diaktriky?
Dikritiku nemusíš, specialní znaky mi stačí tyhle:
,.!?():;/*-+<>=|{}[ ]
Pokud tam bude něco víc, budu to připočítávat k hodnocení.
Tady je můj výtvor, je to nic moc ale podmínky to splňuje)
http://leteckaposta.cz/135928164
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í
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..
Promiňte, oprava linku na save. Nebyla tam moje přezdívka..
http://leteckaposta.cz/114251259 ;D
Tak asi jako obvykle:
Já právě nevěděl, jestli jde tolik o vzhled nebo o rychlost atd. Takže
díky
Tak logicky když budeš mít vzhled na jedničku, ale vygenerování ascii
textu bude trvat 5 min tak to asi nevyhraje..
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).
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
Tak taky posilam svoji verzi ale upozornuju, ze je hoodne alternativni (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.
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ě...
Zobrazeno 50 zpráv z 75.