|
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*/
Arjan Kenter has archived one that already has m,u,e, and ,g,s,f
as variable names:
int m,u,e;float g,s,f;char*c=" _.+=#\n)rezneuM drahnreB(xxxxxx@xxx";ma\
in(){for(e=0;e<25;e++){for(m=0;m<81;m++){u=s=f=0;do{g=s*s-f*f-2.1+.035*
m;f=2*s*f+.088*e-1.1;s=g;u++;}while(u<32&&s*s+f*f<4);putchar(c[m>79?6:e
>23&&m<28?34-m:u>31?0:u>>4?5:u>>3?4:u>>2?3:u>>1?2:1]);}}}/*xxx@xxx.xx*/
In this archive there is also a newer 3-line version that has an
uglier Mandelbrot:
int m,u,e;float g,s,f;char*_=")xx.xxx@xxx(rezneuM drahnreB\n";main(){for(
;e<1944;){u=s=f=0;do{g=s*s-f*f-2.1+.035*(m=e%81);f=2*s*f+e/81*.088-1.1;s
=g;}while(++u<19&&g*s+f*f<4);putchar(_[++e>1863&&m<28?27-m:m>79?28:u]);}}
Somewhere here Jay R. Hill's version banches off
(it contains the `char*_' part); which he soon dismissed again
for his current version to preserve a few more bytes.
int V,i,c=0;float k,y,R;main(){for(;c<1863;putchar((++c>918&&952>c
?60-V:i)["\nRV- .gis s'ydobyna ni ton m'I tuB"]))for(i=y=k=0;(V=c%81
)<80&&R*k+y*y<6&&22>++i;y=2*k*y+c/81*.09-1,k=R)R=k*k-y*y-2+V/27.;}
(on alt.folklore.urban,
Vicky Robinson's words `But I'm not in anybody's sig'
caused an epidemy of the VI signature virus).
/* xxxxxx@xxx.xxxxxxx.xxx (Wei-Hwa Huang) */
int m,u,e=0;float l,_,I;main() {for(;e<1863; putchar((++e>924&&952>
e?60-m:u) ["\n ude.hcetlac.occ@gnauhw ]"])) for(u=_=l=0;(m=e%81)
<80&&I*l+_*_ <6&&25>++u;_=2*l*_+e/81*.09-1,l=I)I=l*l-_*_-2+.035*m;}
This on is based on the one of Bernhard Muenzer above.
It contains the m,u,e variable names.
/* xxxxx.xxxxx@xxxxxxxx.xx | http://www.helsinki.fi/~maaalto/ */
main(){char h[2001]=" Ma+\x1b[H",*k,c;float z=20,D,a,i,s,y;for(;k=h+7,z*=
8,z>8e-4;puts(h))for(s=.119+z;(k-h-7)%80<1?y=1.4+z,s-=z/15:k-h-1768;y-=z
/40,*k++=h[c/4&3])for(c=a=D=0;--c&&a*a+D*D<4;a=a*a-D*D-y,D=2*i*D+s)i=a;}
float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<L?--_
%6:6:7)+"World! \n",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}
[ Carson Cheung, Computer Science, University Of Manchester, UK ]
/* Try me and stagger. With x size as parameter! y size=auto scaling!*/float R,
y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;{s=(c>1?(h=atoi(v[1]
)):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+(r=A*A)|++u==n&&putchar(*(((
--s%h)?(u<n?--u%6:6):7)+"World!\n"))&&(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
float l,I,Q,_,o;int E;main(){I=1.125;while(I>=-1.225){for(l=
-2;l<=1;l+=3/79.0){Q=_=0;for(E=127;Q*Q+_*_<4.0&&--E>32;){o=Q
;Q=Q*Q-_*_+l;_=2*o*_+I;}putchar(E);}putchar(10);I-=9/88.0;}}
main(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;}
He wrote more C signature.
main(){char x,y=-1,t,n,*c="-=+X# \nrf.mpsbo.toylph@ld";while(++y<25)
{for(x=0;x<80;){float a,b,d,i=2.2/25*y-1.1,r=2.8/80*x++-2.1;t=b=d=0;do{
a=b*b-d*d+r;d=2*b*d+i;b=a;}while(++t<32&&b*b+d*d<4);for(n=0;t&~1;t/=2,
n++);putchar(c[x>79?6:y>23&&x<19?25-x:n]);}}}
He also wrote a PostScript signature.
int main(){float g,s,f,r,i;char*_="/,;<mhl/brnoAmmhik<mmhI!/S!x`K\n";int m,u,e
=0;_[30]++;for(;e<3919;){u=(256*(s=(r=.0325*(m=e%80)-2)*r+(i=.047*(e/80)-1.128
)*i)-96)*s+32*r<3?22:16+32*r+16*s<1?29:0;if(u==(s=f=0))do g=s*s-f*f+r;while((f
=2*s*f+i)*f+(s=g)*g<4&&++u<25);putchar(_[++e>3840&&m<30?29-m:m>78?30:u]^1);}}
Note the exact tests for a point in the period one cardioid (marked H) and
the period two circle (at -1, marked J). These tests also save a
lot of time. This one is based on one of Bernhard Muenzer's
versions of the program. It contains the g,s,f variables.
Here is an even shorter version by him:
main(){int f,g,h=0;float a,b,c,d,e;for(;h<3920;putchar("!/-,;<:lnb/bh`r\
/ylqbAmmhI/S/x`K\013"[++h>3840&&g<25?31-g:g>79?31:f]^1))if((f=(256*(c=(d
=(g=1+h%80)/31.-2)*d+(e=.047*(h/80-24))*e)-96)*c+32*d<3?24:16+32*d+16*c<
1?30:0)==0)for(a=d,b=c=0;(b=2*b*c+e)*b+(c=a)*a<=4&&++f<26;a=d-b*b+c*c);}
/* o._.o (C) 1996 Andrew Garrard, xxxxxxxxxx@xxxxxxx.xxxxx.xx.xx o~\_/~o */
/* ((^)) */main(c){float x,y=2,X,Y,Z;for(;(x=-2)<(y-=.1);puts(""/* (/\ /\) */
/* O)_(O */ ))for(;(X=x+=.05)<2;c=printf("%c"," .-:|O8M#"[c])) /* (\@o@/) */
/* O/ \O */for(Y=y;X*X+Y*Y<4&&c++<8;Z=x+X*X-Y*Y,Y=y+2*X*Y,X=Z);}/* ~~~ ~~~ */
Cute but long:
/* /)_(\ */int main(void) {float x,y=2,X, /* Yet m f */
/* (/. .\) */Y,_,i;int c;for(;(y-=.1)>-2;){ /* o a */
/* \(T)/ */for(x=-2;(x+=.1)<2;){X=x;Y=y;c /* r . c */
/* () () */=0;while((X*X+Y*Y)<=4&&c++<7){ /* f e g t */
/* ()-() */_=x+X*X-Y*Y;i=2*X*Y+y;X=_;Y=i; /* r i o */
/* Andrew */}printf("%c",*(" .-:|O8M#"+c)) /* o s r */
/* Garrard */;}printf("\n");}} /* fluppeteer m the y */
He has some more C signature programs
float x,y=1,s=1./128,X,Y,V;main(i){for(puts("P5 257 127 63");X=Y=0,x?/*Rob H.*/
x+=s,1:(x=-2,y-=s);putchar(i))for(i=64;--i&&X*X+(V=Y*Y)<4;X=X*X-V+x)Y=2*X*Y+y;}
He has some more C signature programs
float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<L?--_
%6:6:7)+"Mandel \n",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}
/* xxxxxxx@xxxx.xxx - UNIX specialist, Paranet, Inc, Denver,CO */
/* __ __ __ ____ __*/ float e,a,b,c,d;main(i){for(;b<4;b+=.1){for(a=0;
/*| \/ |\ \ / /\ \ / /*/ a<4;a+=.06){c=d=0;for(i=99;--i&&c*c+d*d<4;)e=c*c
/*| |\/| | \ V / \ \/\/ / */ -d*d+a-2,d=2*c*d+b-2,c=e;putchar("X =."[i&3]);}
/*|_| |_ark\_/ande\_/\_/ettering <xxxxx@xxxxxxxxxxxxxxx.xxx> */ puts("");}}
He also as Brainf**k to C compiler signature program.