[ ® marsal ® @ 15.04.2006. 09:36 ] @
Kada se pokrene, program iscrtava kartu Indije.....

#include<stdio.h>
main()
{
int a,b,c;
int count = 1;
for (b=c=10;a=
"- LLLLLL?, LMKC,XYZHELLO FOLKS,\
TFy!QJu ROo TNn(ROo)SLq SLq ULo+\
UHs UJq TNn*RPn/QPbEWS_JSWQAIJO^\
NBELPeHBFHT}TnALVlBLOFAkHFOuFETp\
HCStHAUFAgcEAelclcn^r^r\\tZvYxXy\
T|S~Pn SPm SOn TNn ULo0ULo#ULo-W\
Hq!WFs XDt!" [b+++21];)

for(; a-- > 64 ; )
putchar ( ++c=='Z' ? c = c/ 9:33^b&1);

}

[ NrmMyth @ 15.04.2006. 10:06 ] @
istina iscrtaje...
ali se ne mogu pohvaliti da ga razumijem bas
[ Nibble @ 15.04.2006. 10:38 ] @
l0l
[ X Files @ 15.04.2006. 12:06 ] @
To se generalno zove "Code Obfuscation":
http://en.wikipedia.org/wiki/Obfuscated_code

Postoje cela takmicenaj na tu temu. Vrlo je zanimljivo pogledati nagradjene radove.
[ rumpl @ 16.04.2006. 13:30 ] @
Ja razumeh, a evo i objasnjenja.

U prvom for-u imamo ovo:

Code:

for (b = c = 10; a = 
"Ovo nije code obfuscation...   \     /* Prvu liniju sam ja promenio, objasnjenje sledi kasnije */
TFy!QJu ROo TNn(ROo)SLq SLq ULo+\ 
UHs UJq TNn*RPn/QPbEWS_JSWQAIJO^\ 
NBELPeHBFHT}TnALVlBLOFAkHFOuFETp\ 
HCStHAUFAgcEAelclcn^r^r\\tZvYxXy\ 
T|S~Pn SPm SOn TNn ULo0ULo#ULo-W\ 
Hq!WFs XDt!" [b++ + 21];)


Znaci da u pocetku imamo b = 10 i c = 10, zasto 10?
Imamo
Code:

putchar ( ++c=='Z' ? c = c / 9 : 33 ^ (b&1));

koji ispisuje c/9 ako je c == 'Z' ( 90 u ascii kodu ), znaci kada je c == "Z", ispisujemo c/9 = 10, a 10 u ascii kodu je niko drugi no "\n", to omogucava prelazak na liniju svakih 80 karaktera.

Objasnjenje za 33 ^ (b&1).
Code:

b = 10 ->  001010                                                               
b&1    ->  000000 = 0                                                           
                                                                                
b = 11 ->  001011                                                               
b&1    ->  000001 = 1                                                           
                                                                                
b = 12 ->  001100                                                               
b&1    ->  000000 = 0                                                           
.                                                                               
.                                                                               
.                                                                               
                                                                                
Znaci da b&1 menja stalno vrednost, 01010101...                                 
                                                                                
33     ->  100001                                                               
                                                                                
0      ->  000000                                                               
1      ->  000001                                                               
                                                                                
33^0   ->  100001 = 33 = "!"                                                    
33^1   ->  100000 = 32 = " "

Sta sve ovo znaci?
To znaci da svaki put kada ulazimo u drugu for petlju, ako c != "Z", ispisujemo " " ili "!". U zavisnosti od variable b.

I poslednje:
Code:

for(; a-- > 64 ; )

Cemu ovo?

Pogledajmo sta se desava kad udjemo prvi put u for petlju ( u prvu for petlju )
b = 10
c = 10
a = "Ovo nije code obfuscation... \
TFy!QJu ROo TNn(ROo)SLq SLq ULo+\
UHs UJq TNn*RPn/QPbEWS_JSWQAIJO^\
NBELPeHBFHT}TnALVlBLOFAkHFOuFETp\
HCStHAUFAgcEAelclcn^r^r\\tZvYxXy\
T|S~Pn SPm SOn TNn ULo0ULo#ULo-W\
Hq!WFs XDt!" [b++ + 21];

Koliko vredi a?
b++ + 21 = 31.
Trideset i prvi karakter je "T", prvo slovo na drugoj liniji, i posto svaki put povecavamo b, prva linija nikad nije upotrebljena, znaci da mozemo da ispisemo sta god hocemo :)
T = 84 u ascii kodu, znaci, druga petlja ce se vrteti 84 - 64 puta = 20,
b = 11, znaci 20 puta cemo ispistati " ",
sledeci put,
b = 11,
b++ + 21 = 32,
znaci da je a = F = 70 po ascii-u, znaci da cemo 6 puta ispistati "!", jer je b povecan za 1, znaci b = 12, ( b = 12 zato sto imamo b++ + 21, postincrementacija, ko ne zna sta je to i cemu sluzi neka se ne javlja ), znaci posto je b = 12, ipisujemo 33^b&1 = 33.

Eto, nadam se da sam bio jasan, ako nekome nesto nije jasno, neka se slobodno javi.
Cao
[ rumpl @ 16.04.2006. 17:54 ] @
A da, zaboravih, int count = 1; ne sluzi nicemu

[Ovu poruku je menjao rumpl dana 16.04.2006. u 19:07 GMT+1]
[ ® marsal ® @ 16.04.2006. 18:47 ] @
Svaka cast......
Interesuje me zasto
for(; a-- > 64 ; )

zasto bas do 64
[ rumpl @ 16.04.2006. 19:08 ] @
Ako pogledas najduzu liniju na karti, ima 62 "!",
62 + 64 = 126.
A sa jednim (signed) karakterom ne mozes da ides vise od 127, a 127 je DEL.
A i od 65 do 126 su uglavnom slova, a manje od 64, imas gluposti kao !#$%^&*()_+ tako da bi mu string bio mnogo ruzniji.
[ ® marsal ® @ 17.04.2006. 02:55 ] @
OK...Shavatio sam..Ali imam jos jedno pitanje...Koliko sam razumeo,mi ovde radimmo sa ASCII-ima u intervalu od 64-127.E ako je to tacno mene interesuje sta traze ovde ovi znakovi uzvika "!" kad je njihov ASCII {33}...Kada sam pokusao da obrisem pretposlednji, on je odmah poceo da brljavi ...Zasto te sve ovo pitam...Ja sam uradio isto ovo za Srbiju, ali me muce ovi znaci uzvika...Nisam dobio ceo izgled, tj. ne mogu da sve lepo spojim a imam utisak da "!" nesto utice...Pozdrav...
[ ® marsal ® @ 17.04.2006. 03:45 ] @
Nasao sam funkciju ! .Hvala u svakom slucaju
[ rumpl @ 17.04.2006. 12:06 ] @
A koju si to funkciju nasao ?

Ajde pa posalji kad imas srbiju ispisanu molim te

[Ovu poruku je menjao rumpl dana 17.04.2006. u 13:10 GMT+1]
[ ® marsal ® @ 17.04.2006. 14:46 ] @
Ne znam da li si me dobro shvatio, nisam mislio funkciju kao funkciju nego kao "koju f-ju ! obavlja tj.sta radi.Evo ti kod Srbije.....doduse nije ceo....ima otprilike malo do ispod Beograda...

/*serbia by marshall*/
#include <stdio.h>
main()
{
int a,b,c;
for (b=c=10;a=
"- LLLLLL?, LMKC,XYZHELLO FOLKS,\
fBh!dFf!bJd!`Mc!_Ob!]S`!]S`!]S`!]S`!]S`!^Qa!^R`!^T^!_T]!]W[!^X[!`U[![Y]![X^![Z[!]X[!^W[!^TECV!]XBDT!]YAET!YCB[W!YDBZW!Z`V![[Y!Z]X![^Y![^z!"[b+++21];)
for (;a-->64;)
putchar (++c=='Z' ? c=c/9:33^b&1);
}

[ rumpl @ 17.04.2006. 14:50 ] @
nije lose, nijse lose
[ ® marsal ® @ 17.04.2006. 16:19 ] @
Nisam ga jos zavrsio, ali bice gotov za koji dan.....