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.

Tvůrce

Zobrazeno 50 zpráv z 81.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
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.