Permalänk
Glömsk

Fulkod

Ibland händer det att man löser ett svårt problem på ett knepigt vis, gör om problemet till ett enkelt problem men glömmer att fixa lösningen efteråt. Resultatet brukar bli ganska intressant fulkod.

Hittade detta i ett program jag skrev för ett år sedan. Jag vet inte riktigt vad jag gjorde tidigare men jag antar att x innehöll fler tecken.

char x[] = {'\t'}; memcpy((void*)&(*(t+3)), (const void*)x, sizeof(x)/sizeof(char));

Detta är ju givetvis precis samma sak som att skriva

t[3] = '\t';

Vad har ni att bjuda på?

Visa signatur

...man is not free unless government is limited. There's a clear cause and effect here that is as neat and predictable as a law of physics: As government expands, liberty contracts.

Permalänk
Medlem

En knepig sortering skriven med en promillehalt nära 2...

#include <cstdlib> #include <ctime> int *merge(int *arr1, int arr1len, int middle, int *arr2, int arr2len) { int *retval = new int[arr1len + arr2len + 1]; for(int i = 0; i < arr1len; i++) retval[i] = arr1[i]; retval[arr1len] = middle; arr1len++; for(int i = arr1len; i < arr1len+arr2len + 1; i++) retval[i] = arr2[i - arr1len]; return retval; } int *gannonsort(int *arr, int arrlen) { if(arrlen == 0) return arr; int *less = new int[arrlen]; int *bigger = new int[arrlen]; int lesscount = 0, biggercount = 0; int delim = arr[0]; for(int i = 1; i < arrlen; i++) { if(arr[i] <= delim) { less[lesscount] = arr[i]; lesscount++; } else { bigger[biggercount] = arr[i]; biggercount++; } } return (merge(gannonsort(less, lesscount), lesscount, delim, gannonsort(bigger, biggercount), biggercount)); } int main(int argc, char *argv[]) { srand(time(NULL)); int *hej = new int[10000]; for(int i = 0; i < 10000; i++) hej[i] = (rand() % 100); int *hej2 = gannonsort(hej, 10000); delete [] hej; delete [] hej2; return 0; }

Hur mycket minne den läker behöver ingen poängtera

Visa signatur

Scud: The other day, in the park, I was wondering why frisbees look bigger and bigger as they get closer to you
Scud: And then it hit me

Permalänk
Medlem

[Dos, borland c++ 5.02, c++ A gymnasiet, total nybörjare]

när jag gjorde mitt första c++spel (snake vs pacman 'Snake Arena') så kände jag inte till arrayer... Har visat den koden till folk förr och den har definitivt vart ett roande element.... Hittar den inte precis nu, drygt, men för att göra svansen till snake som kunde vara max 600px lång så var jag tvungen att deklarera 1200 variabler för att kunna skapa den.
int snakex_1, snakey_1, snakex_2, snakey_2;
int snakex_3, snakey_3, snakex_4, snakey_4;
osv, ända upp till 600....
Sedan kunde man ju inte loopa igenom dem heller då det inte var en array.... så blev massor av kod för att bl.a rita ut alla punkter....
Hur kunde jag orka skriva allt? - Jo, jag skrev ett program som genererade kod ut i en textfil, som jag sedan copy - pastade in i mitt cpp-dokument.

hade någon bara visat detta och hur det funkade för mig så hade jag kanske sparat ca 2000 rader typ...
int svans[600][2]; men men, så blev det inte

Nice ah? Hehe, ska försöka hitta koden igen...

Permalänk

Jo, man har ju gjort en del sånt, en krånglig lösning som man helt plötsligt inser att man kan ta bort helt.
Jag är dock lite pedantisk, jag brukar städa igenom koden rätt ofta så det blir inte mycket kvar av sånt.

totoo, hehe, den var härlig.

Visa signatur

Python-IRC på svenska: #python.se

Permalänk
Medlem

Intressant att se att det är andra som använder 'hej' som varriabelnamn i pressade situationer.

Visa signatur

Min svävare är full av ålar.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Miptex
Intressant att se att det är andra som använder 'hej' som varriabelnamn i pressade situationer.

Hej/hejsan/hej2/hejsan2 osv. är väl ändå standardnamn för variabler?

Permalänk
Medlem

haha
kodade i ett projekt i skolan då vi var fem programmerare.... en av oss döpte alltid sina variabler till a, b, c ,d, a1, a2 osv....
skoj att rota i hans kod då... =/

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Miptex
Intressant att se att det är andra som använder 'hej' som varriabelnamn i pressade situationer.

Gjorde ett grafiskt Javascript RPG för ett väldans massa år sedan. Och som de flesta kanske vet så är det kanske inte riktigt meningen att man ska göra ett RPG i JS.
Fick ganska snabbt slut på vettiga Variabelnamn så variablarna fick namn i stil med sork123, sork1234, kladd2, gegga, limpistol, fisk, fiskpinne, vattenskidor, hamsterpudding, flaskpost, brysselkol m.m.

Bestämde mej för att fortsätta på spelet för något år sedan... Jag öppnade en .js-fil, tittade runt i koden, såg variabelnamnen, stängde .js-filen, gick och tittade på TV.
Förstår mej fan inte på koden själv för dessa förbannade variabelnamn!

Visa signatur

När jag går Off-Topic så står getterna stilla!

Permalänk

hehe, fulkod har man gjort sig skyldig till en hel del
Den hemskaste måste vara på min commodore 128 för härrans massa år sedan. Jag skrev då långa program som hoppade hejvilt i koden med GOTO vilket resulterade i total förvirering när man skulle lägga till saker och inte kunde se hur programmet kördes

Ett annat roligt exempel på fulkod som faktiskt är ganska roligt fick jag för något år sedan då jag skrev php till skolans webbsida, html-koden skulle en grafiker göra och jag skulle bara implementera det i ett template-system.
När jag kollade på koden så började jag garva, på de sista raderna såg jag följande:

</div></div></div></div></div></div></div></div></div></div> </div></div></div></div></div> <!-- för att vara säker på att alla divar är avslutade --> </body> </html>

Permalänk
Medlem

Hittade detta i ett gammalt phpskript

$msg = $_POST['msg']; $msg = str_replace('"', """, $msg); $msg = nl2br($msg); $wrappedmsg = wordwrap($msg, 30, "\n", 1); $strippedmsg = strip_tags($wrappedmsg);

Visa signatur

Jag vill inte diskriminera någon så jag har bestämt mig för att hata er allihopa lika mycket.

Permalänk
Medlem

ping pong, LOL!!
"för att vara säker..." shit alltså

Permalänk
Medlem

Fulaste och rörigaste koden jag gjort var nog från tiden när jag satt och progammerade i AmigaBasic på min Amiga 500.

Första programmet jag gjorde som jag var riktigt nöjd med var en cirkel som studsade runt på skärmen. Det var bara det att jag hade suttit och skrivit in alla koordinater för hand(!) för varje position. Jag visste inte hur variabler fungerade då...

Ett annat jag gjorde var ett slags textbaserad rollspel, där varje rum var en egen kodsats med massa GOTO-satser till och från alla andra rum.

Jag skulle lägga till ett låst rum och det skulle finnas en nyckel. Så då var det bara att kopiera all kod och göra om alla rum där man hade hittat nyckeln. Tog man nyckeln så blev det som man teleporterades till en ny värld där alla dörrar var upplåsta. Innebar också att jag fick ändra massvis med GOTOs. Hade inte riktigt koll på hur variabler fungerade då heller

Permalänk
Citat:

Ursprungligen inskrivet av RokkeR
Gjorde ett grafiskt Javascript RPG för ett väldans massa år sedan. Och som de flesta kanske vet så är det kanske inte riktigt meningen att man ska göra ett RPG i JS.
Fick ganska snabbt slut på vettiga Variabelnamn så variablarna fick namn i stil med sork123, sork1234, kladd2, gegga, limpistol, fisk, fiskpinne, vattenskidor, hamsterpudding, flaskpost, brysselkol m.m.

Bestämde mej för att fortsätta på spelet för något år sedan... Jag öppnade en .js-fil, tittade runt i koden, såg variabelnamnen, stängde .js-filen, gick och tittade på TV.
Förstår mej fan inte på koden själv för dessa förbannade variabelnamn!

Kul att se att någon annan använder fiskpinne! Jag använder fiskpinne i princip alltid istället för foo Har allt möjligt som fiskpinnar, kan ersätta ord med "fiskpinne" mitt i en mening, jag bindar fiskpinne till bra kommandon i bash, jag använder fiskpinne till allt! Fiskpinne är verkligen det överlägsna misc-ordet

Lite on-topic också kanske:
När jag för första gången gjorde ett spel med grafik (DirectX) så byggde jag vidare på mitt testprogram så att det vart ett spel av det, sedan lade jag till flera levlar i programmet, allt på den extermt oexisterande strukturen. Var väl så att jag ville göra färdigt ett spelbart spel mer än att skriva vettig kod antar jag. Slutade iaf med ett spel med 4 levlar, meny, musik, ljudeffekter, animeringar osv, allt i en enda stor while loop. Jag hade en if-sats som kollade vilken bana man var på först i while-loopen typ.. Ja, ni förstår. Dessutom låg det ett par hundra rader Win32API i samma fil, TOTALT oläsligt. Hade nog en funktion för fienderobotar när jag täner efter också.

Permalänk
Inaktiv

Tja, enda koden som jag kommer på nu (dvs, jag har inte förträngt den än) är väl denna rad. Den är väl egentligen inte ful utan snarare onödigt grötig

return ((file=fopen(absolutePath?identifier.c_str():GetFilename(identifier).c_str(), "rb"))!=0);

Permalänk
Medlem

Skrev den här för länge sedan(många år sedan), till vb.
Snacka om fulkod och långsam.

Public Function ConvertBase36(Value As String, BaseOfValue As Single, TargBase As Single) As String Str3 = "123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" Str2 = Value Y = BaseOfValue Z = TargBase W = Len(Str2) a = 0 For X = 1 To W a = a + Y ^ (W - X) * InStr(Str3, Mid(Str2, X, 1)) Next X S = 0 Str2 = "" For X = 46 To 0 Step -1 T = Int(a / Z ^ X) If T Then a = a - T * Z ^ X Str2 = Str2 & Mid(Str3, T, 1) S = 1 Else If S Then Str2 = Str2 & 0 End If End If Next X ConvertBase36 = Str2 End Function

Visa signatur

tack o bock

Permalänk
Medlem

vad jag än skriver är väl i stort sett fulkod men ändå, för att se resultat i program (så windows inte stänger ner t.ex. hello world direkt) satte jag nästan all kod inom en while loop satt till true, sen upptäckte jag getche() (utan att fråga här på swec)

Visa signatur

In murphy we trust, his law never fails.

Permalänk
Medlem

Det här är kod för att samla argument under uppbyggande av ett syntaxträd i en kompilator jag skrev för 3-4 år sen nån gång.

// Note that the function parameter list is parsed backwards. // It is backwards since argument lists are reduced through // left-recursions by the parser, hence collecting in reverse order. for (dword i = 0; i < GS_MAX_FUNCTION_ARGUMENTS && iter; i++) if (iter->m_child[1]->m_returnType != GSTypeToDT((gs_type_t)func->args[argc - i - 1])) { Error("Function %s, Parameter %d: Expected %s. (DT%d/%d)", m_symbol->m_name, i + 1, NameForType((gs_type_t)func->args[argc - i - 1]), iter->m_child[1]->m_returnType, GSTypeToDT((gs_type_t)func->args[argc - i - 1])); return; } else iter = iter->m_child[0]; break;

Visa signatur

(http://rivfader.blogspot.com)
Blank face in the windowpane
Made clear in seconds of light