Move 1988-2004 entries into subdirs
We we move 1988-2004 entries from all of a year's winning entries in a single directory to each winner being in their own sub-directory under the given year directory.
This commit is contained in:
1 parent
1e82e8aa3e
commit
d2a42f42e8
478 files changed
No files matched your search
@@ -0,0 +1,33 @@
|
||||
#define u unsigned
|
||||
#define w char*
|
||||
#define j(x)(*(*(x*)&T)++)
|
||||
#define H j(short*)
|
||||
#define K j(w)
|
||||
#define e j(u*)
|
||||
#define r register u
|
||||
#define R(b)write(A,T=h,4*b);
|
||||
#define S (u*)sbrk(Q*4+U*8)+U
|
||||
#define E(a,b,c)a=c&1<<31|b/2;c=c*2|b&1;
|
||||
#define V q=h^*L;L+=F;E(d,q,x)E(f,d,s)g=f&q;f^=q
|
||||
#define W while(
|
||||
#define Z q=I&f;M|=q&c;c^=q;I^=f;M|=g&c;c^=g
|
||||
#define Y W(F= *s++-'0')<=9)*T=10**T+F;K
|
||||
#define D(q,s)c);W q>s)G= *--q,*q= *s,*s++=G;
|
||||
#define P if(i^z){x=Q+(n=D(x,n)
|
||||
#define C if(i){q=Q*4+(s=(w)D(q,s)
|
||||
u A,U,Q,J,X[9999],B;main(a,b)w*b;{r*c,*d,y=0,f,g,F,I,M,N,z,*x,*n,i,G;w q,*h=(w
|
||||
)X,*T,*s=".slo.-W00,tmhw.W/";T=h;if(a>1){e;s=b[1];Y;Y;Y;Y;T=h;H;K=23;Y+=112;T=
|
||||
h;Y;y= *--T;H=2;}else{H=1;W*s)K=1+*s++;}connect(A=socket(a,1,0),T=h,24-a*4);H=
|
||||
17004;H=11;e=0;e=0;i=66==*h;R(3)read(A,h,8);e;H;read(A,h,4*H);T=h;e;F=e;e;e;I=
|
||||
11+H;f=H-6;K;U=K;i^=K;z=!K;T+=I/4*4+8*U;W y--){T+=39;I=K;W I--)H,T+=4+24*H;}I=
|
||||
e;e;B=(!e^**b&1)-1;e;e;U=H/32;J=H/30*30;T+=14;M=K;f/=U;T=h;K=55;K;H=4;e=F;e=I;
|
||||
e=0;R(4)N=F+8192;K=53;K=M;H=4;e=N;e=I;H=U*32;H=J;R(4)K=2;K;H=4;e=I;e=1;e=N;R(4
|
||||
)Q=J*U;c=S;d=S;L(c);W 1){P}C}y=0;W y<J){K=72;K=0;g=J-y;H=6+U*(g>f?g=f:g);e=N;e
|
||||
=F;H=U*32;H=g;H=0;H=y;K=0;K=1;R(6)write(A,c+y*U,g*U*4);y+=g;}K=61;K=0;H=4;e=I;
|
||||
e=0;e=0;R(4)C}P}v(c,d);}}L(A)r*A;{r*T=A+Q,X=getpid();W A<T)*A++=X=3*X^X/2;}v(n
|
||||
,O)u*n,*O;{r*A,F=U,*L=n-F,*G=L+Q,I,c,d,M,f,g,N,q,i=0,X,T,v,s,x,*y,*z,h=B;W L<n
|
||||
){*L= *G;G++[F]=L++[F];}W i<J){z=O+i*F;y=n+i*F-F;i+=30;L=y-1;A=L+U*32;W L<A){L
|
||||
+=F;E(X,(*L^h),x)E(q,X,s)}X=0;W X++<F){L=y++;G=z++;V;c=g|f&d;I=f^d;V;W L<=A){M
|
||||
=0;Z;N=d;T=f;v=g;V;Z;c^=I&d;*G=h^c&~M&(I^d|N);G+=F;c=v|T&N;I=T^N;}}}z=O;y=n;I=
|
||||
J;W--I!=-1){f= *z>>31;G=z+F;L=y+F;W G>z){M= *--G;*--L=(M*2)+f;f=M>>31;}z+=F;y+
|
||||
=F;}}
|
||||
@@ -0,0 +1,34 @@
|
||||
#define u unsigned
|
||||
#define w char*
|
||||
#define j(x)(*(*(x*)&T)++)
|
||||
#define H j(short*)
|
||||
#define K j(w)
|
||||
#define e j(u*)
|
||||
#define r register u
|
||||
#define R(b)write(A,T=h,4*b);
|
||||
#define S (u*)sbrk(Q*4+U*8)+U
|
||||
#define E(a,b,c)a=c&1<<31|b/2;c=c*2|b&1;
|
||||
#define V q= *L;L+=F;E(d,q,x)E(f,d,s)g=f&q;f^=q
|
||||
#define W while(
|
||||
#define Z q=I&f;M|=q&c;c^=q;I^=f;M|=g&c;c^=g
|
||||
#define Y W(F= *s++)&16)*T=10**T+F-'0';T++
|
||||
#define D(q,s)c);W q>s)G= *--q,*q= *s,*s++=G;
|
||||
#define P if(i^z){x=Q+(n=D(x,n)
|
||||
#define C if(i){q=Q*4+(s=(w)D(q,s)
|
||||
u A,U,Q,J,X[9999];main(a,b)w*b;{r*c,*d,y,f,g,F,G,I,M,N,z,*x,*n,i,B,O;w q,*h=(w
|
||||
)X,*T,*s;T=h;if(a>1){H=2;K=23;K=112;s=b[1];Y;Y;Y;Y;}else{s=".slo.-W00,tmhw.W/"
|
||||
;H=1;W*s)K=1+*s++;K=0;}s=T;H=17004;H=11;e=0;e=0;i=66==*s;W connect(A=socket(a,
|
||||
3-Q++,0),h,24-a*4)||write(A,s,12)!=12||read(A,T,8)!=8);e;H;read(A,h,4*H);T=h;e
|
||||
;F=e;e;e;I=11+H;f=H-6;K;U=K;i^=K;z=!K;T+=I/4*4+8*U;I=e;e;O=e;B=e;e;U=H/32;J=H/
|
||||
30*30;T+=14;M=K;f/=U;T=h;K=55;K;H=6;e=F;e=I;e=12;e=B;e=O;R(6)B=F+8192;K=53;K=1
|
||||
;H=4;e=B;e=I;H=U*32;H=J;R(4)O=B+8192;K=55;K;H=4;e=O;e=B;e=0;R(4)N=O+8192;K=53;
|
||||
K=M;H=4;e=N;e=I;H=U*32;H=J;R(4)K=2;K;H=4;e=I;e=1;e=N;R(4)Q=J*U;c=S;d=S;L(c);W
|
||||
1){P}C}y=0;W y<J){K=72;K=0;g=J-y;H=6+U*(g>f?g=f:g);e=B;e=O;H=U*32;H=g;H=0;H=y;
|
||||
K=0;K=1;R(6)write(A,c+y*U,g*U*4);y+=g;}K=63;K;H=8;e=B;e=N;e=F;e=0;e=0;H=U*32;H
|
||||
=J;e=1;R(8)K=61;K=0;H=4;e=I;e=0;e=0;R(4)C}P}v(c,d);}}L(A)r*A;{r*T=A+Q,X=getpid
|
||||
();W A<T)*A++=X=3*X^X/2;}v(n,O)u*n,*O;{r*A,F=U,*L=n-F,*G=L+Q,I,c,d,M,f,g,N,q,i
|
||||
=0,X,T,v,s,x,*y,*z;W L<n){*L= *G;G++[F]=L++[F];}W i<J){z=O+i*F;y=n+i*F-F;i+=30
|
||||
;L=y-1;A=L+U*32;W L<A){L+=F;E(X,*L,x)E(q,X,s)}X=0;W X++<F){L=y++;G=z++;V;c=g|f
|
||||
&d;I=f^d;V;W L<=A){M=0;Z;N=d;T=f;v=g;V;Z;c^=I&d;*G=c&~M&(I^d|N);G+=F;c=v|T&N;I
|
||||
=T^N;}}}z=O;y=n;I=J;W--I!=-1){f= *z>>31;G=z+F;L=y+F;W G>z){M= *--G;*--L=(M*2)+
|
||||
f;f=M>>31;}z+=F;y+=F;}}
|
||||
@@ -0,0 +1,122 @@
|
||||
Best X11 Graphics:
|
||||
|
||||
David Applegate Guy Jacobson
|
||||
School of Computer Science AT&T Bell Laboratories
|
||||
Carnegie Mellon University 600 Mountain Avenue
|
||||
Pittsburgh PA 15213 Murray Hill NJ 07974
|
||||
USA USA
|
||||
|
||||
|
||||
Judges' comments:
|
||||
|
||||
Make and run as follows:
|
||||
|
||||
make davidguy
|
||||
davidguy ip_address:server.screen
|
||||
|
||||
where 'ip_address' in an IP address of an X server. For example, try:
|
||||
|
||||
davidguy 127.0.0.1:0.0
|
||||
|
||||
Of course, may need to supply a more reasonable address. :-)
|
||||
|
||||
Also try:
|
||||
|
||||
cp davidguy guydavid
|
||||
guydavid 127.0.0.1:0.0
|
||||
|
||||
Can you determine why this makes a difference.
|
||||
|
||||
We permitted this type of entry to win because:
|
||||
|
||||
- it did not require X to be on the host system
|
||||
- both BSD and SVR4 have sockets
|
||||
|
||||
Now that X11 and sockets have become 'standard', we plan to open
|
||||
up the contest to programs that use them. Future rules will
|
||||
explain this further.
|
||||
|
||||
We are pleased that this entry has helped bring new 'life' into
|
||||
the contest.
|
||||
|
||||
NOTE: The orignal program that won may be found in davidguy.orig.c.
|
||||
The author supplied a second version of the program, which
|
||||
we have placed in the default location davidguy.c.
|
||||
|
||||
|
||||
Selected notes from the authors:
|
||||
|
||||
The program is a fully-functional X client. It talks directly to
|
||||
the X server through a socket without using Xlib, Xt or any other
|
||||
wussie toolkit junk. With no arguments, it will try to run
|
||||
locally using the unix-domain socket (only on BSD :-( ) or you can
|
||||
give it a command line argument identifying a display host address
|
||||
(in dotted octet notation, like 127.0.0.1:0.0) where the X server
|
||||
is running. It handles color and monochrome displays, and
|
||||
performs whatever byte-swapping and bit-reversal is needed (so
|
||||
that the program works even when the server and the client have
|
||||
different architectures). It buffers communication to the X
|
||||
server for efficiency.
|
||||
|
||||
[[ NOTE: The original source in davidguy.c used only an IP address
|
||||
argument (assumed :0.0) and assumed the color of black
|
||||
and white. ]]
|
||||
|
||||
The program doesn't require any user interaction; you can just sit
|
||||
back and watch it run. All the action takes place in the root
|
||||
window of the display.
|
||||
|
||||
We think the program is interesting for these reasons:
|
||||
|
||||
1) It belongs to a class of programs that programmers make
|
||||
the following complaints about: they require a mountain
|
||||
of code to implement even the simplest program; and they
|
||||
must be linked with giant libraries of hard-to-understand
|
||||
functions. In contrast to these complaints (made by wimps,
|
||||
in our humble opinion), our program fits in under 1536
|
||||
bytes, doesn't need any external functions except for a few
|
||||
system calls, and doesn't need to include any header files.
|
||||
|
||||
2) It implements an extremely efficient algorithm for the
|
||||
computation it performs. One cool feature of the algorithm
|
||||
(at least as far as this contest is concerned) is that its
|
||||
obscurity is fundamentally necessary for its efficiency.
|
||||
In other words, even if we took steps to present the algorithm
|
||||
clearly, (we haven't) the relation of the computation performed
|
||||
to the specification of what the program was supposed to do
|
||||
would still be hard to understand.
|
||||
|
||||
Quasi-spoiler on internals:
|
||||
|
||||
The program plays Conway's game of Life in the root window's
|
||||
background pixmap. It starts by setting the background to random
|
||||
bits, and then plays Life, with one Life cell for each pixel of the
|
||||
screen. In the game of Life, a cell survives to the next round if
|
||||
2 or 3 of its 8 neighbors are also alive, and a cell is born if
|
||||
exactly 3 of its neighbors are alive. Otherwise, a cell dies of
|
||||
exposure if it has only 0 or 1 neighbors, and dies of overcrowding
|
||||
if it has 4 or more neighbors.
|
||||
|
||||
The algorithm used to compute the next generation is based on the
|
||||
observation that a cell's state in the next generation is a boolean
|
||||
function of its current state, and the states of its 8 neighbors
|
||||
(ie, a boolean function from 9 bits to 1 bit). This function can
|
||||
be computed by a boolean circuit. In addition, intermediate values
|
||||
computed by the circuit can be shared between neighboring cells,
|
||||
reducing the number of gates per cell required. These ideas
|
||||
have been used before, to compute the next generation through a
|
||||
series of bit blits. Instead of doing this, we map values in the
|
||||
circuit to bits in registers, so that the next generation can be
|
||||
computed efficiently within registers, minimizing memory accesses.
|
||||
As a result, the computation of the next generation is performed
|
||||
with about 1.6 instructions per life cell, consisting of .125
|
||||
memory accesses, .17 shifts, and 1.3 logic operations. The net
|
||||
result is that the time to transfer the bits to the X server, and
|
||||
for the X server to draw them on the screen, dominates the time to
|
||||
compute the next generation.
|
||||
|
||||
Copyright (c) 1991, Landon Curt Noll & Larry Bassel.
|
||||
All Rights Reserved. Permission for personal, educational or non-profit use is
|
||||
granted provided this this copyright and notice are included in its entirety
|
||||
and remains unaltered. All other uses must receive prior permission in writing
|
||||
from both Landon Curt Noll and Larry Bassel.
|
||||
@@ -0,0 +1,32 @@
|
||||
#define _ define
|
||||
#_ u unsigned
|
||||
#_ w char*
|
||||
#_ j(x)(*(*(x*)&T)++)
|
||||
#_ H j(short*)
|
||||
#_ K j(w)
|
||||
#_ e j(u*)
|
||||
#_ r register u
|
||||
#_ R(b)write(A,T=h,4*b);
|
||||
#_ S (u*)sbrk(Q*4+U*8)+U
|
||||
#_ E(a,b,c)a=c&1<<31|b/2;c=c*2|b&1;
|
||||
#_ V q= *L;L+=F;E(d,q,x)E(f,d,s)g=f&q;f^=q
|
||||
#_ W while(
|
||||
#_ Z q=I&f;M|=q&c;c^=q;I^=f;M|=g&c;c^=g
|
||||
#_ Y W(F= *s++)&16)*T=10**T+F-'0';T++
|
||||
#_ D(q,s)c);W q>s)G= *--q,*q= *s,*s++=G;
|
||||
#_ P if(i^z){x=Q+(n=D(x,n)
|
||||
#_ C if(i){q=Q*4+(s=(w)D(q,s)
|
||||
u A,U,Q,J,X[9999];main(a,b)w*b;{r*c,*d,y,f,g,F,G,I,M,N,z,*x,*n,i;w q,*h=(w)X,*
|
||||
T,*s=".slo.-W00,tmhw.W/";T=h;if(a>1){H=2;K=23;K=112;s=b[1];Y;Y;Y;Y;}else{H=1;W
|
||||
*s)K=1+*s++;}connect(A=socket(a,1,0),T=h,24-a*4);H=17004;H=11;e=0;e=0;i=66==*h
|
||||
;R(3)read(A,h,8);e;H;read(A,h,4*H);T=h;e;F=e;e;e;I=11+H;f=H-6;K;U=K;i^=K;z=!K;
|
||||
T+=I/4*4+8*U;I=e;T+=16;U=H/32;J=H/30*30;T+=14;M=K;f/=U;T=h;K=55;K;H=4;e=F;e=I;
|
||||
e=0;R(4)N=F+8192;K=53;K=M;H=4;e=N;e=I;H=U*32;H=J;R(4)K=2;K;H=4;e=I;e=1;e=N;R(4
|
||||
)Q=J*U;c=S;d=S;L(c);W 1){P}C}y=0;W y<J){K=72;K=0;g=J-y;H=6+U*(g>f?g=f:g);e=N;e
|
||||
=F;H=U*32;H=g;H=0;H=y;K=0;K=1;R(6)write(A,c+y*U,g*U*4);y+=g;}K=61;K=0;H=4;e=I;
|
||||
e=0;e=0;R(4)C}P}v(c,d);}}L(A)r*A;{r*T=A+Q,X=getpid();W A<T)*A++=X=3*X^X/2;}v(n
|
||||
,O)u*n,*O;{r*A,F=U,*L=n-F,*G=L+Q,I,c,d,M,f,g,N,q,i=0,X,T,v,s,x,*y,*z;W L<n){*L
|
||||
= *G;G++[F]=L++[F];}W i<J){z=O+i*F;y=n+i*F-F;i+=30;L=y-1;A=L+U*32;W L<A){L+=F;
|
||||
E(X,*L,x)E(q,X,s)}X=0;W X++<F){L=y++;G=z++;V;c=g|f&d;I=f^d;V;W L<=A){M=0;Z;N=d
|
||||
;T=f;v=g;V;Z;c^=I&d;*G=c&~M&(I^d|N);G+=F;c=v|T&N;I=T^N;}}}z=O;y=n;I=J;W--I!=-1
|
||||
){f= *z>>31;G=z+F;L=y+F;W G>z){M= *--G;*--L=(M*2)+f;f=M>>31;}z+=F;y+=F;}}
|
||||
Reference in new issue
Block a user