Cignatures
Tombé par hasard sur cette page qui liste de minuscules programmes en C utilisés comme signatures d’e-mails par des programmeurs fous, ou de génie c’est la même chose. C est un langage de programmation tellement dense qu’il peut en devenir cryptique, ce qui fait qu’il est impossible de deviner ce que font ces programmes sans les lancer. Exemples:
\[code lang="C"\]main(){char*i=“L0
\[B0BCA7G0BFACIW0BfRAAB0BCACAFR0\[BCAFE0LCCAFR0",j,k=0;for(;\*i; \*++i==48&&puts(""))do for(j=\*i-48>>k&7;j--;)putchar(k+32);while(k^=3);}\[/code\]fait :
###
##### ##
## ## ## ##
## ## ## ## ### ####
## ###### #### ## ## ##
## ## ## ## ## ## ####
##### ## ## ## ## ##
### ## ## ## ## ####
Celui-ci fait un jeu de pendu dont la solution est le nom de l’auteur !
\[code lang="C"\]main(){char s[]=".bg`z`lE)gc`}{hD-|\/OI:retteL>nn”,k;long w=32,r,_,y ,i,b,g,p[]={63l«16,37968,15,32,896,2048,24576,37449,2,12546,3074,19138 ,3586,585,0},t;b=g=r=0;while((b<7)&&(g<65278)){for(_=16;_+10;)putchar(_ –>0?_&7?g»_&1?s
\[\_\]^9:46:w:s
\[\_+w\]);while((k=getchar())<65);for(_=15,t= g;_;)if((s
\[\_--\]^9|w)(k|w))g|=2«_;if(tg)r|=p
\[b++\];for(y=9,t=0;y–;) for(_=9;_;)putchar(–_?(i=p
\[y+6\]»24-3*_&7)?r»t++&1?s
\[i+15\]:w:w:10);}}
\[/code\]>Letter:g—- | : | O/ | I | | ——
Martijn .ei.in.
celui-ci
\[code lang="C"\]int a
\[1817\];main(){int z=5,p=5,q=5,r=5; for(p=80;q+p-80;p-=2*a
\[p\])for(z=9;z–;)q=3&(r=time(0) +r*57)/7,q=q?q-1?q-2?1-p%79?-1:0:p%79-77?1:0:p<1659?79:0:p>158?-79:0,q?!a
\[p+q\*2 \]?a
\[p+=a\[p+=q\]=q]=q:0:0;for(;q++-1817;)printf(q%79?"%c":"%cn","#"
\[!a\[q-1\]]);}
\[/code\]fait un labyrinthe dans ce genre :
######### ### ### ####### # # ### ### # # # ####### # # ######### ####### ###
# # # # # # # # # # # # # # # # # # # # # # #
# ##### ####### ##### # ############# ####### # ####### ########### ####### #
# # # # # # # # # # # # # # # #
# # # ### # # # ####### # ##### ### ### # ### ### ### ### ### # ### # # #####
# # # # # # # # # # # # # # # # # # # # # #
####### ##### ### # # ##### # # # ####### ### ##### # # ### ######### ### # #
# # # # # # # # # # # # # # # #
####### # # # ############### ####### # ##### # # # ####### ##### # # # ### #
# # # # # # # # # # # # # # # # # # #
##### ### ##### # ######### ##### # # ####### ### ##### ### # # ### ### ### #
# # # # # # # # # # # # # # # # # #
##### # ####### # ##### # # ##### # ### # # ########### ### ### # ### #######
# # # # # # # # # # # # # # # # # # # # #
# # # ####### ### # ### ##### # ##### ### ### ### # ### ### # # ##### # # ###
# # # # # # # # # # # # # # # # # # # # #
# ### ### # ##### # # # ### ### ### ### ####### # ####### ### # # ####### # #
# # # # # # # # # # # # # # # # # #
############# ####### # ##### ### ### ######### ##### # # # ##### # ### #####
# # # # # # # # # # # # # # # # # # # # # # # # # #
# ##### ##### ### ####### # ##### ##### # # # ##### ### ##### ######### # # #
Une discipline particulière concerne l’ensemble de Mandelbrot :
\[code lang="C"\]main(){char*c=" _.+=#n)rezneuM drahnreB(xx.xxx@xxx";int x,t,y;float a, b,d;for(y=0;y<25;y++){for(x=0;x<80;x++){t=b=d=0;do{a=b*b-d*d-2.1+.035*x ;d=2*b*d+.088*y-1.1;b=a;t++;}while(t<32&&b*b+d*d<4);putchar(c
\[x>79?6:y> 23&&x<28?34-x:t>31?0:t>>4?5:t>>3?4:t>>2?3:t>>;1?2:1\]);}}} /*xxx@xxx.xx*/
\[/code\]donne :
_____________.................................++++++++==+++++++++...............
___________...............................+++++++++++++=#====+++++++............
__________............................++++++++++++++++=== ==+++++++++++.........
_________..........................++++++++++++++++=### #=#=++++++++++........
________........................+++++++++++++++++++== ==+++++++++++......
_______......................+++++++++++++=###=== =### ##=== ==++=#=+++.....
______....................++++++++++++++++==# # = ##+++++...
_____................+++++++++++++++++++===# #==++++++..
____...........+++++++++==+++++=++++++====# #===++++..
____.....++++++++++++++===##===##=======# #=+++++.
____..+++++++++++++++++===# #== #=+++++.
___.+++++++++++++++======# # #=+++++++
___+++++++=+++======= =+++++++++
___+++++++=+++======= =+++++++++
___.+++++++++++++++======# # #=+++++++
____..+++++++++++++++++===# #== #=+++++.
____.....++++++++++++++===##===##=======# #=+++++.
____...........+++++++++==+++++=++++++====# #===++++..
_____................+++++++++++++++++++===# #==++++++..
______....................++++++++++++++++==# # = ##+++++...
_______......................+++++++++++++=###=== =### ##=== ==++=#=+++.....
________........................+++++++++++++++++++== ==+++++++++++......
_________..........................++++++++++++++++=### #=#=++++++++++........
__________............................++++++++++++++++=== ==+++++++++++.........
xxx@xxx.xx(Bernhard Muenzer)..............+++++++++++++=#====+++++++............
on peut même faire plus court :
\[code lang="C"\]main(){int c;float t,x,y,b=-2,a=b;for(;b-=a>2?.1/(a=-2):0,b<2;putchar(30+ c),a+=.0503)for(x=y=c=0;++c<90&x*x+y*y<4;y=2*x*y+b,x=t)t=x*x-y*y+a;}
\[/code\]Il y en a encore plein d’autres, mais mon préféré reste cet extraordinaire programme :
\[code lang="C"\]int a
\[52514\],b,c=52514,d,e,f=1e4,g,h;main() {for(;b=c-=14;h=printf("%04d",e+d/f)) for(e=d%=f;g=–b*2;d/=g)d=d*b+f*(h?a
\[b\]:f/5),a
\[b\]=d%–g;}
\[/code\]Que fait-il ? Je vous défie de le deviner. La langue au chat est ici !
Une description de l’algorithme utilisé est ici .
