最高の出力
xxxxxxxxxx
float s=1944,x[5],y[5],z[5],r[5],j,h,a,b,d,e;int i=33,c,l,f=1;int g(){return f=
(f*6478+1)%65346;}m(){x[i]=g()-l;y[i]=(g()-l)/4;r[i]=g()>>4;}main(){char t[1948
]=" `MYmtw%FFlj%Jqig~%`jqig~Etsqnsj3stb",*p=t+3,*k="3tjlq9TX";l=s*20;while(i<s)
p[i++]='\n'+5;for(i=0;i<5;i++)z[i]=(i?z[i-1]:0)+l/3+!m();while(1){for(c=33;c<s;
c++){c+=!((c+1)%81);j=c/s-.5;h=c%81/40.0-1;p[c]=37;for(i=4;i+1;i--)if((b=(a=h*x
[i]+j*y[i]+z[i])*a-(d=1+j*j+h*h)*(-r[i]*r[i]+x[i]*x[i]+y[i]*y[i]+z[i]*z[i]))>0)
{for(e=b;e*e>b*1.01||e*e<b*.99;e-=.5*(e*e-b)/e);p[c]=k[(int)(8*e/d/r[i])];}}for
(i=4;i+1;z[i]-=s/2,i--)z[i]=z[i]<0?l*2+!m():z[i];while(i<s)putchar(t[i++]-5);}}
引用元:https://www.ioccc.org/1996/eldby.c
審査員・作者による説明:https://github.com/ioccc-src/winner/blob/main/1996/eldby.hint
球が浮かぶ空間を飛行するようなアニメーション。
$ gcc -o eldby eldby.c
$ ./eldby
Thor AAge Eldby [eldby@online.no] .oeeeeeeo
eggllllllggeo
ogll4444444llgge
ooo egl44OOOOOO44llgeo
.eggllllgge .gl4OOOOOOOOO44lggo
.egll444444lg. el44OOOSSOOOO44lgeo
oggl444OO444lg og44OOOOOOOO444lge
egl4444OO44lg gl44OOOOOO44llge
egll44444lge gll444444llgeo
.oo eeggggge oegglllggeo
lllllg
44444lg
4444lle .Ol
gggge gO4
B
端末でなめらかなアニメーションを行う初の作品。8行でシンプルにまとめられていて美しい。
現代の環境では速すぎるのでusleep
でウェイトを置いた。
xxxxxxxxxx
--- eldby.c
+++ eldby.c
float s=1944,x[5],y[5],z[5],r[5],j,h,a,b,d,e;int i=33,c,l,f=1;int g(){return f=
(f*6478+1)%65346;}m(){x[i]=g()-l;y[i]=(g()-l)/4;r[i]=g()>>4;}main(){char t[1948
]=" `MYmtw%FFlj%Jqig~%`jqig~Etsqnsj3stb",*p=t+3,*k="3tjlq9TX";l=s*20;while(i<s)
-p[i++]='\n'+5;for(i=0;i<5;i++)z[i]=(i?z[i-1]:0)+l/3+!m();while(1){for(c=33;c<s;
+p[i++]='\n'+5;for(i=0;i<5;i++)z[i]=(i?z[i-1]:0)+l/3+!m();while(1){usleep(30000);for(c=33;c<s;
c++){c+=!((c+1)%81);j=c/s-.5;h=c%81/40.0-1;p[c]=37;for(i=4;i+1;i--)if((b=(a=h*x
[i]+j*y[i]+z[i])*a-(d=1+j*j+h*h)*(-r[i]*r[i]+x[i]*x[i]+y[i]*y[i]+z[i]*z[i]))>0)
{for(e=b;e*e>b*1.01||e*e<b*.99;e-=.5*(e*e-b)/e);p[c]=k[(int)(8*e/d/r[i])];}}for