Diskuze: Minisoutěž o nejhorší kód
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 50 zpráv z 81.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Zatím necháme C#, když se nám tato zvrácenost bude líbit
, můžeme expandovat na další
jazyky 
já jich spoustu viděl v PHP, v prostředí C# se nepohybuji... ale dobrý nápad!:)
Já C# moc neumím, ale možná se o to snáze bude psát škaredý kód.
Obávám se, že psát špatný kód stojí stejné úsilí, jako psát
dobrý kód.
Jinak je to nápad dobrý, kdyby jako téma nebyly zrovna lodě, které mám
aktuálně rozepsané v gml. 
Když bych nevěděl o nějakém hotovém řešení, třeba funkci na seřazení prvků v poli, tak bych si třeba napsal vlastní "prasokód".
No právě
Říkám že
mi to bude i proti srsti
.
Můžeme dát něco jiného, zase ne nic extra složitýho, kde bude potřeab
využívat objekty
.
Já jsem se trochu neobratně vyjádřil. 
Podstatou myšlenky mělo být, že celkově se ta dovednost jmenuje:
"Tvorba kódu s kvalitou přesně podle záměru"
a pokud člověk má potřebné znalosti, udělá kód jaký má v úmyslu.
Bez potřebných znalostí nemá člověk na výběr a udělá kód jakého je
schopen.
Kromě lodí existuje hodně témat. 
Piškvorky, něco s kartama, pexeso, kostky...
Já měl zase na mysli něco takového jako ten poslední řádek. 
Můžu použít ty fontány?
Bral bych to na PHP nebo HTML

Ne zadáme si jednotné téma a každý to vypracuje
Dáme ty lodě v consoli !
Vygeneruje se náhodně místa s lodmi a poté hráč bude zadávat souřadnice,
když se trefí, přičte se skóre. Je to malá aplikace, snažte se to napsat
co nejvíc hnusně 
Deadline dáme v pátek 20.4 v 18:00. Odměna nebude žádná leda by měl
David Hartinger placky "Nejhorší kód"
. Bude to taková minisoutěž pro zábavu. Takže šup pište
ošklivé kódy
.
Takovou placku opravdu nemám
Ale budu implementovat ocenění do portfolií, tak by ho tam potom
vítěz mohl mít.
By se to nazvalo nějak vznešeně, třeba "Machr na neukradnutelný kód"

Jaj pravda
26.4 v 18:00

David Hartinger jo to by šlo 
Tím, že je to malá aplikace, tak je to o to těžší napsat to hnusně.
Během deseti minut jsem tu aplikaci napsal. Teď ještě vymyslet jak to co
nejvíce znetvořit 
Jen tak mimochodem, nabízí se někdo kdo bude se mnou hodnotit ? 
Pro srandu přidám také svůj velevýtvor
Má to být i tak, že bude tipovat pc? jakože se vygenerují dvě pole a bude se střídat AI s hráčem?
Dobře, hodnotit budu já a David Hartinger. Deadline je tedy v sobotu 27.4 v
19:00. Cílem je vytvořit tedy lodě, kde se nám náhodně vygenerují lodě a
hráč je musí trefit. Poté střílí PC na nás. Prostě lodě
. Aplikace bude v consoli !. Snažte
se tedy o co nejhorší, neojošklivější, co nejvíce nepřehledný kód.
Aplikace je zdánlivě jednoduchá, takže vymyslet co nejošklivější kód
bude možná větší oříšek než klasičtí machři 
co napsat vše na jeden řádek ?

A ještě to zaobfuskovat jako a.b(c, 5, b.c.f()) atd 
Pár takových programů už mám, ale obávám se, že v C# to nepůjde.
Právě o to tu jde, přemýšlím že je tohle těžší než to udělat
normálně a pěkně 
BTW jsem si vzpomněl, jednou jsem stáhl v Pascalu zdroják a bylo v něm napsáno na začátku:
string s:= 'GET OFF MY CODE MOTHERFUCKER';
Když se ten text změnil nebo smazal, tak to přestalo fungovat
A bylo to kontrolované a nějak
zamotané v celém programu, takže jsem to tam nakonec nechal 
Napíšeš to normálně a nakonec to přepíšeš to jednoho velkého switche. Podmínky a cykly zaměníš za goto na návěští. Místy vypustíš break, abys mohl přecházet přímo mezi větvemi bez skoků a případně ty bloky přeskládáš podle potřeby.
Že bych to přece jen zkusil podle tohoto mého návodu? 
Stačí v každé funkci detekovat jiné písmenko. Pokud je to písmenko jiné, funkce udělá něco odlišně.
To by asi šlo
. Na goto
jsme zapomněl, díky za připomenutí 
nebránil bych se ani použít všude globální proměnné
a všechny samozřejmě public
a krásně využít XOR
sice bude potřeba přidat další proměnné, které budou úplně k ničemu
ale XOR taky pobaví.
tím neříkám že je na něm
něco špatného
ale
použil jsem ho jendou je docela těžké najít pro něj uplatnění
ale tady to půjde krásně
Ještě mě napadlo skládat řetězce a čísla tak, že si udělám spoustu proměnných pojmenovaných slovy. A potom z toho dělat věty:
mam = "l";
rad = "o";
chleba = "d";
propeceny = "e";
Console.WriteLine("{0} {1} {2} {3}"), mam, rad, chleba, propeceny);
A takhle románovitě založit slovní zásobu nejlépe staticky
a používat to všude. To samé
pro čísla. hodne = 10, středně = 5. A když chci 12, dám int i = hodne +
stredne / 2. 
private void btodpoved12_Click(object sender, EventArgs e)
{
this.btodpoved9.BackColor = System.Drawing.Color.Transparent;
this.btodpoved10.BackColor = System.Drawing.Color.Transparent;
this.btodpoved11.BackColor = System.Drawing.Color.Transparent;
this.btodpoved12.BackColor = System.Drawing.Color.MediumTurquoise;
if (otazecka == 0)
{
slovesoodpoved3 = 0;
}
else if (otazecka == 1)
{
slovesoodpoved3 = 1;
}
else if (otazecka == 2)
{
slovesoodpoved3 = 0;
}
else if (otazecka == 3)
{
slovesoodpoved3 = 0;
}
else if (otazecka == 4)
{
slovesoodpoved3 = 1;
}
else if (otazecka == 5)
{
slovesoodpoved3 = 1;
}
else if (otazecka == 6)
{
slovesoodpoved3 = 0;
}
else if (otazecka == 7)
{
slovesoodpoved3 = 0;
}
else if (otazecka == 8)
{
slovesoodpoved3 = 0;
}
else if (otazecka == 9)
{
slovesoodpoved3 = 0;
}
else if (otazecka == 10)
{
slovesoodpoved3 = 1;
}
else if (otazecka == 11)
{
slovesoodpoved3 = 1;
}
else if (otazecka == 12)
{
slovesoodpoved3 = 0;
}
else if (otazecka == 13)
{
slovesoodpoved3 = 0;
}
else if (otazecka == 14)
{
slovesoodpoved3 = 1;
}
else if (otazecka == 15)
{
slovesoodpoved3 = 1;
}
}
Tohle je taky dobrý
sem
vyštrachal když jsem začínal se C#
achjo to byl dobrej den.
Mám takovej dojem že to snad ani nedám, mám první verzi , ale ta je fur
až moc pěkná 
Tady se jukněte na mé začátky. Jednalo se o programek, kde chodi kralici.
Když se potká samec a samec, zabijí se, když se potkají opačný pohlaví,
narodí se nový králik a když samička a samička tak spolu pokecají a jdou
dál
. Hrozná zrůdnost ale
fungovalo to, mám dojem 
tohle mi přijde jako takový příliš vykonstruovaný .. mnohem
zajímavější by bylo vytáhnout nějakej svůj prastarej kód, kterej je tak
nějak .. zprzněnej od přírody. 
Shodou okolností jsem byl minulej týden na srazu osmibitů a zkoušeli jsme hledat nějaký svoje starý výtvory. Našel jsem tam soft (v basicu), psanej někdy v mých devíti letech. Šlo o tréninkový počítání velké násobilky. Po spuštění mě zarazilo, že bliká obraz a nic se neděje. Kód obsahoval něco jako
10 A = INT(RND(0)*100)+1
20 B = INT(RND(0)*10)+1
30 C = INT(RND(0)*10)+1
40 IF A/B <> C THEN CLS: PRINT "PROSIM CEKEJ": GOTO 10
50 PRINT "KOLIK JE "; A; ":"; B; "?"
60 INPUT D
70 IF C=D THEN PRINT "DOBRE"
80 IF C<>D THEN PRINT "SPATNE"
všimněte si zákeřně "počítaného" výsledku dělení ;D
Ještě něco málo pro pobavení.. to byla doba když jsem nevěděl že
existuje něco jako radio button...
ale bacha je tu možnost
infarktu 
private void checkBox3_CheckedChanged(object sender, EventArgs e)
{
if (checkBox3.Checked)
{
checkBox2.Checked = false;
checkBox1.Checked = false;
checkBox4.Checked = false;
checkBox5.Checked = false;
checkBox6.Checked = false;
checkBox7.Checked = false;
checkBox8.Checked = false;
}
}
private void checkBox2_CheckedChanged(object sender, EventArgs e)
{
if (checkBox2.Checked)
{
checkBox1.Checked = false;
checkBox3.Checked = false;
checkBox4.Checked = false;
checkBox5.Checked = false;
checkBox6.Checked = false;
checkBox7.Checked = false;
checkBox8.Checked = false;
}
}
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
if (checkBox1.Checked)
{
checkBox2.Checked = false;
checkBox3.Checked = false;
checkBox4.Checked = false;
checkBox5.Checked = false;
checkBox6.Checked = false;
checkBox7.Checked = false;
checkBox8.Checked = false;
}
}
private void checkBox5_CheckedChanged(object sender, EventArgs e)
{
if (checkBox5.Checked)
{
hledat.Enabled = true;
checkBox2.Checked = false;
checkBox3.Checked = false;
checkBox4.Checked = false;
checkBox1.Checked = false;
checkBox6.Checked = false;
checkBox7.Checked = false;
checkBox8.Checked = false;
}
else
{
hledat.Enabled = false;
}
}
private void checkBox6_CheckedChanged(object sender, EventArgs e)
{
if (checkBox6.Checked)
{
checkBox2.Checked = false;
checkBox3.Checked = false;
checkBox4.Checked = false;
checkBox5.Checked = false;
checkBox1.Checked = false;
checkBox7.Checked = false;
checkBox8.Checked = false;
textBox1.Enabled = true;
}
else
{
textBox1.Enabled = false;
}
}
private void checkBox4_CheckedChanged(object sender, EventArgs e)
{
if (checkBox4.Checked)
{
checkBox2.Checked = false;
checkBox3.Checked = false;
checkBox1.Checked = false;
checkBox5.Checked = false;
checkBox6.Checked = false;
checkBox7.Checked = false;
checkBox8.Checked = false;
}
}
private void checkBox7_CheckedChanged(object sender, EventArgs e)
{
if (checkBox7.Checked)
{
checkBox2.Checked = false;
checkBox3.Checked = false;
checkBox1.Checked = false;
checkBox5.Checked = false;
checkBox6.Checked = false;
checkBox4.Checked = false;
checkBox8.Checked = false;
}
}
// usporny rezim
private void checkBox8_CheckedChanged(object sender, EventArgs e)
{
if (checkBox8.Checked)
{
checkBox2.Checked = false;
checkBox3.Checked = false;
checkBox1.Checked = false;
checkBox5.Checked = false;
checkBox6.Checked = false;
checkBox4.Checked = false;
checkBox7.Checked = false;
}
}
David Hartinger: Nápad na dalšího machra ?? 
To vypadá skoro jako program, který jsem si napsal včera jako plugin do editoru. Škoda jen, že jsem to psal v Javě. Být to v C#, tak to sem hodím.
Tady je můj uplně první větší program, který jsem kdy dělal, zároveň moje první hra. Je to v C++ a začal jsem to psát asi tak měsíc po tom, co jsem se začal učit programovat. Dělal jsem to cca 3 měsíce.
http://leteckaposta.cz/233747194
EDIT: Všiměte si, že ten kód má přes 8000 řádek a je tam jenom funkce
main 
Zobrazeno 50 zpráv z 81.
