Zdravím, s malým zpožděním vyhlašuji další minisoutěž o placku a
nálepky, již ani nevím, kolikáté kolo to je Soutěž je hlavně pro PHP,
jelikož má krásné dynamické pole, které se na generování náhodných
vět hodí, nicméně můžete použít i jiný jazyk, např.
C#. Zadání je podobné, jako bylo u náhodného
generátoru vět, ale dejme si to zajímavější, generujme básně.
Skladba básně je na vás, můžete použít rytmus AAAA AABB ABAB nebo je
střídat, je na vás i počet veršů. Hodnotí se opět jak inteligentní
generátor je a jestli jsou básně opravdu náhodné a věty dávají trochu
smysl.
Příklad duchaplné náhodné básně by mohl vypadat třeba takto:
Venku svítí slunce,
mám rád sumce.
V lese běhá vodník,
mám rád rohlík.
(Rytmus je AABB, liché věty se generují jako příslovečné určení
místa, přísudek a podmět, sudé pak jako Mám rád a podmět. je
důležité, aby se poslední slova v A a B rýmovala.) Je to samozřejmě jen
ukázka, takových koster se dá vymyslet plno a program jich může obsahovat
více a přepínat je.
Deadline si dejme tentokrát v neděli v 15:00, ať je na to více času Opět se těším na výstupy
programů, minule jsem se u náhodných vět dobře pobavil
Hmm, jelikož mám prázdiny, mohl bych se konečně pokusit jednou to
dodělat ačkoliv jsem
začal dělat i na hře, ale tak torchu se odsune . Je tedy možné použít C# ? S
PHP zatím nejsem takový kamrád
je tam jen šest typů vět, a málo slov pro výběr, od každého typu
kolem osmy (slovesa, podstatná jména, přídavná a pod.)... dělal jsem to
včera večer asi hodinku a tak zázrak nečekejte. Chtěl jsem si jen zkusit,
jestli bude fungovat algoritmus. Do konce týdne to zkusím vylepšit...
...neee má to malou slovní zásobu... nepáral jsem se s kontrolou, zda je
již slovo použité. Ještě to musím hodně upravit. Zatím jsem to dělal
jen pro ověření, zda podstata programu bude fungovat. Náhodné číslo v
rozmezí 1 až 8 (což je teď počet slov, slovní zásoby pro každý druh) je
dost často stejné.
Tak som môj generátor dal dokopy. Z času na čas má problém so zhodou v
rode poprípade vynechá rým, ale to hádam ešte upravím. Nemal by byť
problém ani pridať slovník tak, aby generoval básne len z nejakej témy. Ja
som len lenivý to vymýšľať Nájdete ho tu http://poetry.greenmanov.net/ Zdrojáky sú na GitHube, link
je dole v patiičke.
Tak opět se hlásím s nesúpěchem a tentokrát už za to nemůžu já.
Jindy to byla trochu lenost a škola, nyní to byl jenom "pitomý" malware
který mi zdecimoval kompletně systém a aby to nebylo málo, systém jsem
instaloval na 2x. Při první reinstalaci se tvářilo vše ok, až na to že
nefungovalo metro ..
takže dnes opět od rna reinstaluju... včera jsem nad tím strávil celý den,
dneska nemůžu, vyrážím pryč až do neděle mimo Internet a pozor, dokonce
i elektřinu ... Mějte
se tu zatím krásně a říště už snad pošlu i já nějaký výsledek.
Přeju hodně úspěchu ostatním soutěžícím
taky jsem se nedostal k nějakému většímu vylepšení. Doplnil jsem jen
pár slov. Tak to už není tak zcepenělé, ale potřebovalo by to hlubší
logiku tvorby rýmu.
Ne, myslel jsem používání klíčového slova global. To
by se tam vyskytovat nemělo, vyřešíš to tak, že zabalíš všechny metody
do třídy a proměnné co máš nahoře dáš třídě jako atributy. Je to
stejné jako v kterémkoli jiném jazyce, jen se musí psát při volání
metody nebo při přístupu k proměnné $this->promenna, případně
$this->metoda.
Všechno Proměnná
patří objektu, ve kterém je zapouzdřena. Tím slovem global ji uměle
zviditelňuješ ve scope, do kterého nepatří. Ve větších programech to
neuhlídáš a začneš si přepisovat data. Glob. proměnné jsou obecně
považovány za špatné (viz třeba wikipedia) a jazyky je obsahují jen z
historických důvodů nebo pro lidi, co se nedokáží přizpůsobit modernímu
přístupu. Oproti tvým minulým zdrojákům chválím dekompozici programu na
metody, zbývá ještě se naučit balit metody do tříd.
Teď je to mnohem lepší
Třídy ideálně pojmenováváme podle toho, co dělají. Tahle by se jmenovala
Generator (místo HlavniTrida), metoda pro generování by se jmenovala generuj.
Když potom chceš vygenerovat větu, vytvoříš si nový generátor a
zavoláš na něm generuj
Generátor je zde objektem. Složitější aplikace se skládají z mnoha
objektů, kdy každý má v kompetenci určitou část funkčnosti aplikace. Je
to tedy přehledně rozdělené a objekty spolu navzájem spolupracují.
Milovnik poezie teda rozhodne nejsem, ale kdyz jsme delali dekadenci a
proklety basniky, tak jsem se konecne nenudil. Charles je muj nejoblibenejsi
basnik od te doby.
Ve složení David Čápka a x jsme došli k tomuto pořadí:
Samik11 (100 bodů) - Oceňuji několik typů vět, občas se vygeneruje
něco, co by se opravdu dalo publikovat a nikdo by možná ani nepoznal, že to
dělal počítač. Tady jasně vítězíš!
David Hynek (90 bodů) - Velmi oceňuji skloňování Škoda, že jsou všechny věty
tak podobné.
Greenman (85 bodů) - Greenmanovská milostná lyrika by se měla učit ve
školách Ta vyznání
mě vážně pobavila.
Misaz (80 bodů) - Poměrně jednoduché věty, nicméně funguje to hezky a
cením si toho, že jsi to napsal v jazyce, ve kterém neprogramuješ. Dobrá
práce
Placku si tedy odnáší Samik11, všem děkuji za účast a hezké
výsledky.
Gratulujem víťazovi a aj ostatným ktorý dokázali projekt dať úspešne
dokopy aby mohol súťažiť. Škoda, že som nevyhral ale nevadí, hlavne že
básne pobavili a generovanie básní ma nadchlo, som si istý, že generátorov
urobím ešte veľa
Nabudúce toho slona dostanem!
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.