Grand prize for most well-rounded in confusion
+ +Carl Shapiro
+ +Judges' comments:
+ +As submitted, this program was 3 lines (2 of defines and 1 of code). +To make news & mail happy we split the last line into 7. Join them +back without the newlines to get the original version.
+ +This program was selected for the 1987 t-shirt collection.
+ +We found this program is be simply amazeing! Run this program without +arguments and notice the output.
+ +Copyright © 1985, 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.
diff --git a/1985/shapiro/hint.text b/1985/shapiro/hint.text new file mode 100644 index 000000000..27e7fa750 --- /dev/null +++ b/1985/shapiro/hint.text @@ -0,0 +1,20 @@ +# Grand prize for most well-rounded in confusion + +Carl Shapiro + +## Judges' comments: + +As submitted, this program was 3 lines (2 of defines and 1 of code). +To make news & mail happy we split the last line into 7. Join them +back without the newlines to get the original version. + +This program was selected for the 1987 t-shirt collection. + +We found this program is be simply a**maze**ing! Run this program without +arguments and notice the output. + +Copyright (c) 1985, 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. diff --git a/1985/shapiro/shapiro.c b/1985/shapiro/shapiro.c new file mode 100644 index 000000000..9c8e4f35c --- /dev/null +++ b/1985/shapiro/shapiro.c @@ -0,0 +1,9 @@ +#define P(X)j=write(1,X,1) +#define C 39 +int M[5000]={2},*u=M,N[5000],R=22,a[4],l[]={0,-1,C-1,-1},m[]={1,-C,-1,C},*b=N, +*d=N,c,e,f,g,i,j,k,s;main(){for(M[i=C*R-1]=24;f|d>=b;){c=M[g=i];i=e;for(s=f=0; +s<4;s++)if((k=m[s]+g)>=0&&kThe worst abuse of the C preprocessor
+ +Col. G. L. Sicherman
+ +Judges' comments:
+ +This program abuses the C preprocessor so much that some /lib/cpp’s fail to +strip out all of the comments on the first pass! If you were able to +understand Decot’s entry in 1984, you will have a head start on this +one.
+ +Be sure to run this program through lint! If your lint works +correctly, it should warn you that the argument ‘Manual’ isn’t used. +Like the program says, what’s that mean?
+ +Run the program without arguments and enter the letters ‘a’ thru ’m' +on a line. Now enter the letters ‘n’ thru ‘z’. But to borrow a quote +from Richard Stallman: If you think you understand what this code +does, then you don’t, so read it again! Explain why:
+ +sicherman < sicherman.c | sicherman | diff - sicherman.c
+
+
+results in diff reporting a difference on some machines.
+ +Copyright © 1985, 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.
diff --git a/1985/sicherman/hint.text b/1985/sicherman/hint.text new file mode 100644 index 000000000..d468db5f1 --- /dev/null +++ b/1985/sicherman/hint.text @@ -0,0 +1,29 @@ +# The worst abuse of the C preprocessor + +Col. G. L. Sicherman + +## Judges' comments: + +This program abuses the C preprocessor so much that some /lib/cpp's fail to +strip out all of the comments on the first pass! If you were able to +understand Decot's entry in 1984, you will have a head start on this +one. + +Be sure to run this program through lint! If your lint works +correctly, it should warn you that the argument 'Manual' isn't used. +Like the program says, what's that mean? + +Run the program without arguments and enter the letters 'a' thru 'm' +on a line. Now enter the letters 'n' thru 'z'. But to borrow a quote +from Richard Stallman: If you think you understand what this code +does, then you don't, so read it again! Explain why: + + sicherman < sicherman.c | sicherman | diff - sicherman.c + +results in diff reporting a difference on some machines. + +Copyright (c) 1985, 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. diff --git a/1985/sicherman/sicherman.c b/1985/sicherman/sicherman.c new file mode 100644 index 000000000..5070cc8de --- /dev/null +++ b/1985/sicherman/sicherman.c @@ -0,0 +1,23 @@ +#define C_C_(_)~' '&_ +#define _C_C(_)('\b'b'\b'>=C_C>'\t'b'\n') +#define C_C _|_ +#define b * +#define C /b/ +#define V _C_C( +main(C,V) +char **V; +/* C program. (If you don't + * understand it look it + */ up.) (In the C Manual) +{ + char _,__; + while (read(0,&__,1) & write((_=(_=C_C_(__),C)), + _C_,1)) _=C-V+subr(&V); +} +subr(C) +char *C; +{ + C="Lint says "argument Manual isn't used." What's that + mean?"; while (write((read(C_C('"'-'/*"'/*"*/))?__:__-_+ + '\b'b'\b'|((_-52)%('\b'b'\b'+C_C_('\t'b'\n'))+1),1),&_,1)); +} diff --git a/1986/1986.tar.bz2 b/1986/1986.tar.bz2 new file mode 100644 index 000000000..26c84f25a Binary files /dev/null and b/1986/1986.tar.bz2 differ diff --git a/1986/Makefile b/1986/Makefile new file mode 100644 index 000000000..81055fe8b --- /dev/null +++ b/1986/Makefile @@ -0,0 +1,72 @@ +#!/usr/bin/env make +# +# 1986 makefile +# +# This work by Landon Curt Noll, Simon Cooper, and Leonid A. Broukhis +# is licensed under: +# +# Creative Commons Attribution-ShareAlike 3.0 Unported License. +# +# See: http://creativecommons.org/licenses/by-sa/3.0/ + + +################ +# tool locations +################ +# +SHELL= /bin/bash +CP= cp +CPP= cpp +GUNZIP= gunzip +LD= ld +MAKE= make +RM= rm +SED= sed +TAR= tar +TRUE= true + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +CC= cc + + +############### +# IOCCC winners +############### +# +WINNERS= marshall hague applin bright stein holloway august pawka wall + +################### +# build all entries +################### +# +all: + @for i in ${WINNERS} ; do \ + echo "(cd $$i && $(MAKE) $@)"; \ + (cd $$i && $(MAKE) $@); \ + done + + +############### +# utility rules +############### +# +clean: + @for i in ${WINNERS} ; do \ + echo "(cd $$i && $(MAKE) $@)"; \ + (cd $$i && $(MAKE) $@); \ + done + +clobber: + @for i in ${WINNERS} ; do \ + echo "(cd $$i && $(MAKE) $@)"; \ + (cd $$i && $(MAKE) $@); \ + done + +install: + @for i in ${WINNERS} ; do \ + echo "(cd $$i && $(MAKE) $@)"; \ + (cd $$i && $(MAKE) $@); \ + done diff --git a/1986/README b/1986/README new file mode 100644 index 000000000..25a232ac4 --- /dev/null +++ b/1986/README @@ -0,0 +1,20 @@ +The 1986 contest was named: "The Third International Obfuscated C Code Contest" + +Copyright (c) 1986, 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. + +The rules for 1986 suggested categories due to the success of the 1985 +judging method. The maximum size was increased from 512 to 1024 bytes. +Larry Bassel joined as the second official judge. + +A poll was taken for the worst code for BSD and System V program. +The Bourne Shell (/bin/sh) won for both systems. The BSD finger +program took third place. + +Rules and results were posted to net.lang.c and net.unix-wizards. +Micro/Systems Journal published started regular publishing of the winners. +The practice of making first announcement of the winners at the Summer +Usenix BOF started this year. A notice was posted to net.announce. diff --git a/1986/applin/Makefile b/1986/applin/Makefile new file mode 100644 index 000000000..00dd75078 --- /dev/null +++ b/1986/applin/Makefile @@ -0,0 +1,25 @@ +# %W% %G% %U% +# +# 1986 makefile +# +# Copyright (c) 1986, 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 +# from Landon Curt Noll and Larry Bassel. + + +SHELL= /bin/sh +WINNERS= applin + +all: ${WINNERS} + +applin: applin.c + cc $? -o $@ + +clean: + rm -f core +clobber: clean + rm -f ${WINNERS} a.out +install: all + @echo are you kidding'??' diff --git a/1986/applin/applin.c b/1986/applin/applin.c new file mode 100644 index 000000000..2211eedf2 --- /dev/null +++ b/1986/applin/applin.c @@ -0,0 +1,15 @@ +cat =13 /*/ >/dev/null 2>&1; echo "Hello, world!"; exit +* +* This program works under cc, f77, and /bin/sh. +* +*/; main() { + write( +cat-~-cat + /*,'( +*/ + ,"Hello, world!" + , +cat); putchar(~-~-~-cat); } /* + ,)') + end +*/ diff --git a/1986/applin/hint.html b/1986/applin/hint.html new file mode 100644 index 000000000..e7cd86fef --- /dev/null +++ b/1986/applin/hint.html @@ -0,0 +1,21 @@ +Most adaptable program
+ +Jack Applin
+Hewlett-Packard
+Ft. Collins
+Colorado
+USA
Judges' comments:
+ +Compile and/or execute as directed by the documentation.
+ +The judges were so amused by this little program that we created an +award just for it. This program is portable to the C and Fortran 77 +compilers as well as executable by the bourne shell!
+ +Copyright © 1986, 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.
diff --git a/1986/applin/hint.text b/1986/applin/hint.text new file mode 100644 index 000000000..ff9913ead --- /dev/null +++ b/1986/applin/hint.text @@ -0,0 +1,21 @@ +# Most adaptable program + +Jack Applin +Hewlett-Packard +Ft. Collins +Colorado +USA + +## Judges' comments: + +Compile and/or execute as directed by the documentation. + +The judges were so amused by this little program that we created an +award just for it. This program is portable to the C and Fortran 77 +compilers as well as executable by the bourne shell! + +Copyright (c) 1986, 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. diff --git a/1986/august/Makefile b/1986/august/Makefile new file mode 100644 index 000000000..31d45683b --- /dev/null +++ b/1986/august/Makefile @@ -0,0 +1,25 @@ +# %W% %G% %U% +# +# 1986 makefile +# +# Copyright (c) 1986, 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 +# from Landon Curt Noll and Larry Bassel. + + +SHELL= /bin/sh +WINNERS= august + +all: ${WINNERS} + +august: august.c + cc $? -o $@ + +clean: + rm -f core +clobber: clean + rm -f ${WINNERS} a.out +install: all + @echo are you kidding'??' diff --git a/1986/august/august.c b/1986/august/august.c new file mode 100644 index 000000000..1a21ff692 --- /dev/null +++ b/1986/august/august.c @@ -0,0 +1,26 @@ +typedef struct n{int a:3, +b:29;struct n*c;}t;t* +f();r(){}m(u)t*u;{t*w,*z; +z=u->c,q(z),u->b=z->b*10, +w=u->c=f(),w->a=1,w->c=z-> +c;}t*k;g(u)t*u;{t*z,*v,*p, +*x;z=u->c,q(z),u->b=z->b,v +=z->c,z->a=2,x=z->c=f(),x +->a=3,x->b=2,p=x->c=f(),p +->c=f(),p->c->a=1,p->c->c= +v;}int i;h(u)t*u;{t*z,*v,* +w;int c,e;z=u->c,v=z->c,q( +v),c=u->b,e=v->b,u->b=z->b +,z->a=3,z->b=c+1,e+9>=c&&( +q(z),e=z->b,u->b+=e/c,w=f( +),w->b=e%c,w->c=z->c,u->c= +w);}int(*y[4])()={r,m,g,h}; +char *sbrk();main(){t*e,*p,*o; +o=f(),o->c=o,o->b=1,e=f(), +e->a=2,p=e->c=f(),p->b=2, +p->c=o,q(e),e=e->c,(void)write +(1,"2.",2);for(;;e=e->c){q(e), +e->b=write(1,&e->b["0123456789"], +1);}}t*f(){return i||(i=1000, +k=(t*)sbrk(i*sizeof(t))),k+--i; +}q(p)t*p;{(*y[p->a])(p);} diff --git a/1986/august/hint.html b/1986/august/hint.html new file mode 100644 index 000000000..b87cbde13 --- /dev/null +++ b/1986/august/hint.html @@ -0,0 +1,23 @@ +Best complex task done in a complex way
+ +Lennart Augustsson
+Dept. of Comp. Sci.
+Chalmers University of Technology,
+412 96 Gothenburg
+Sweden
Judges' comments:
+ +This program computes a specific mathematical value. Simply compile +and give it an infinite amount of stack space and cpu time. Otherwise +just be satisfied with the approximation displayed just before the core +dump.
+ +This program will pass lint on your system assuming your lint is brave +enough to try and parse it correctly.
+ +Copyright © 1986, 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.
diff --git a/1986/august/hint.text b/1986/august/hint.text new file mode 100644 index 000000000..d74780046 --- /dev/null +++ b/1986/august/hint.text @@ -0,0 +1,23 @@ +# Best complex task done in a complex way + +Lennart Augustsson +Dept. of Comp. Sci. +Chalmers University of Technology, +412 96 Gothenburg +Sweden + +## Judges' comments: + +This program computes a specific mathematical value. Simply compile +and give it an infinite amount of stack space and cpu time. Otherwise +just be satisfied with the approximation displayed just before the core +dump. + +This program will pass lint on your system assuming your lint is brave +enough to try and parse it correctly. + +Copyright (c) 1986, 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. diff --git a/1986/bright/Makefile b/1986/bright/Makefile new file mode 100644 index 000000000..702b66c73 --- /dev/null +++ b/1986/bright/Makefile @@ -0,0 +1,25 @@ +# %W% %G% %U% +# +# 1986 makefile +# +# Copyright (c) 1986, 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 +# from Landon Curt Noll and Larry Bassel. + + +SHELL= /bin/sh +WINNERS= bright + +all: ${WINNERS} + +bright: bright.c + cc $? -o $@ + +clean: + rm -f core +clobber: clean + rm -f ${WINNERS} a.out +install: all + @echo are you kidding'??' diff --git a/1986/bright/bright.c b/1986/bright/bright.c new file mode 100644 index 000000000..8c0481856 --- /dev/null +++ b/1986/bright/bright.c @@ -0,0 +1,47 @@ +#includeMost useful obfuscation
+ +Walter Bright
+ +Judges' comments:
+ +Compile this program and give filenames as arguments. For example try:
+ +bright bright.c
+bright bright
+
+
+Mr. Bright exploits the c pre-processor, similar variables and +excessive shifting to obfuscate an otherwise useful binary display +program. This gives you a small example of what it is like to +maintain the Bourne shell! :-}
+ +Copyright © 1986, 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.
diff --git a/1986/bright/hint.text b/1986/bright/hint.text new file mode 100644 index 000000000..b387080de --- /dev/null +++ b/1986/bright/hint.text @@ -0,0 +1,21 @@ +# Most useful obfuscation + +Walter Bright + +## Judges' comments: + +Compile this program and give filenames as arguments. For example try: + + bright bright.c + bright bright + +Mr. Bright exploits the c pre-processor, similar variables and +excessive shifting to obfuscate an otherwise useful binary display +program. This gives you a small example of what it is like to +maintain the Bourne shell! :-} + +Copyright (c) 1986, 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. diff --git a/1986/hague/Makefile b/1986/hague/Makefile new file mode 100644 index 000000000..b4ff6518f --- /dev/null +++ b/1986/hague/Makefile @@ -0,0 +1,25 @@ +# %W% %G% %U% +# +# 1986 makefile +# +# Copyright (c) 1986, 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 +# from Landon Curt Noll and Larry Bassel. + + +SHELL= /bin/sh +WINNERS= hague + +all: ${WINNERS} + +hague: hague.c + cc $? -o $@ + +clean: + rm -f core +clobber: clean + rm -f ${WINNERS} a.out +install: all + @echo are you kidding'??' diff --git a/1986/hague/hague.c b/1986/hague/hague.c new file mode 100644 index 000000000..bf43532b3 --- /dev/null +++ b/1986/hague/hague.c @@ -0,0 +1,28 @@ +#define DIT ( +#define DAH ) +#define __DAH ++ +#define DITDAH * +#define DAHDIT for +#define DIT_DAH malloc +#define DAH_DIT gets +#define _DAHDIT char +_DAHDIT _DAH_[]="ETIANMSURWDKGOHVFaLaPJBXCYZQb54a3d2f16g7c8a90l?e'b.s;i,d:" +;main DIT DAH{_DAHDIT +DITDAH _DIT,DITDAH DAH_,DITDAH DIT_, +DITDAH _DIT_,DITDAH DIT_DAH DIT +DAH,DITDAH DAH_DIT DIT DAH;DAHDIT +DIT _DIT=DIT_DAH DIT 81 DAH,DIT_=_DIT +__DAH;_DIT==DAH_DIT DIT _DIT DAH;__DIT +DIT'\n'DAH DAH DAHDIT DIT DAH_=_DIT;DITDAH +DAH_;__DIT DIT DITDAH +_DIT_?_DAH DIT DITDAH DIT_ DAH:'?'DAH,__DIT +DIT' 'DAH,DAH_ __DAH DAH DAHDIT DIT +DITDAH DIT_=2,_DIT_=_DAH_; DITDAH _DIT_&&DIT +DITDAH _DIT_!=DIT DITDAH DAH_>='a'? DITDAH +DAH_&223:DITDAH DAH_ DAH DAH; DIT +DITDAH DIT_ DAH __DAH,_DIT_ __DAH DAH +DITDAH DIT_+= DIT DITDAH _DIT_>='a'? DITDAH _DIT_-'a':0 +DAH;}_DAH DIT DIT_ DAH{ __DIT DIT +DIT_>3?_DAH DIT DIT_>>1 DAH:'\0'DAH;return +DIT_&1?'-':'.';}__DIT DIT DIT_ DAH _DAHDIT +DIT_;{DIT void DAH write DIT 1,&DIT_,1 DAH;} diff --git a/1986/hague/hint.html b/1986/hague/hint.html new file mode 100644 index 000000000..4a023947d --- /dev/null +++ b/1986/hague/hint.html @@ -0,0 +1,25 @@ +Worst abuse of the C preprocessor
+ +Jim Hague
+University of Kent at Canterbury
+Canterbury, Kent
+UK
Judges' comments:
+ +Compile this program and feed ascii text into standard input. This +program is known to pass lint on some systems and abort lint on +others.
+ +This program was selected for the 1987 t-shirt collection.
+ +Think morse code when you ponder this program. Note how use of +similar variables can be obfuscating! The author notes that this +program implements the international morse standard. Now for extra +credit, what morse message does the program spell out?
+ +Copyright © 1986, 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.
diff --git a/1986/hague/hint.text b/1986/hague/hint.text new file mode 100644 index 000000000..050805d2a --- /dev/null +++ b/1986/hague/hint.text @@ -0,0 +1,25 @@ +# Worst abuse of the C preprocessor + +Jim Hague +University of Kent at Canterbury +Canterbury, Kent +UK + +## Judges' comments: + +Compile this program and feed ascii text into standard input. This +program is known to pass lint on some systems and abort lint on +others. + +This program was selected for the 1987 t-shirt collection. + +Think morse code when you ponder this program. Note how use of +similar variables can be obfuscating! The author notes that this +program implements the international morse standard. Now for extra +credit, what morse message does the program spell out? + +Copyright (c) 1986, 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. diff --git a/1986/holloway/Makefile b/1986/holloway/Makefile new file mode 100644 index 000000000..ab6ecf887 --- /dev/null +++ b/1986/holloway/Makefile @@ -0,0 +1,25 @@ +# %W% %G% %U% +# +# 1986 makefile +# +# Copyright (c) 1986, 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 +# from Landon Curt Noll and Larry Bassel. + + +SHELL= /bin/sh +WINNERS= holloway + +all: ${WINNERS} + +holloway: holloway.c + cc $? -o $@ + +clean: + rm -f core +clobber: clean + rm -f ${WINNERS} a.out +install: all + @echo are you kidding'??' diff --git a/1986/holloway/hint.html b/1986/holloway/hint.html new file mode 100644 index 000000000..1291ac5af --- /dev/null +++ b/1986/holloway/hint.html @@ -0,0 +1,19 @@ +Best simple task performed in a complex way
+ +Bruce Holloway
+Digital Research, Inc.
+Monterey, CA
+USA
Judges' comments:
+ +Believe it or not, this is the old standard “Hello, world” program +performed in a very complex way. The judges and the author defy you +do determine how it does it. It is a good thing that K&R didn’t use +this version as the first C program!
+ +Copyright © 1986, 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.
diff --git a/1986/holloway/hint.text b/1986/holloway/hint.text new file mode 100644 index 000000000..72b5ba013 --- /dev/null +++ b/1986/holloway/hint.text @@ -0,0 +1,19 @@ +# Best simple task performed in a complex way + +Bruce Holloway +Digital Research, Inc. +Monterey, CA +USA + +## Judges' comments: + +Believe it or not, this is the old standard "Hello, world" program +performed in a very complex way. The judges and the author defy you +do determine how it does it. It is a good thing that K&R didn't use +this version as the first C program! + +Copyright (c) 1986, 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. diff --git a/1986/holloway/holloway.c b/1986/holloway/holloway.c new file mode 100644 index 000000000..e894200f0 --- /dev/null +++ b/1986/holloway/holloway.c @@ -0,0 +1,33 @@ +#include "stdio.h" +#define e 3 +#define g (e/e) +#define h ((g+e)/2) +#define f (e-g-h) +#define j (e*e-g) +#define k (j-h) +#define l(x) tab2[x]/h +#define m(n,a) ((n&(a))==(a)) + +long tab1[]={ 989L,5L,26L,0L,88319L,123L,0L,9367L }; +int tab2[]={ 4,6,10,14,22,26,34,38,46,58,62,74,82,86 }; + +main(m1,s) char *s; { + int a,b,c,d,o[k],n=(int)s; + if(m1==1){ char b[2*j+f-g]; main(l(h+e)+h+e,b); printf(b); } + else switch(m1-=h){ + case f: + a=(b=(c=(d=g)<Eric Marshall
+System Development Corporation, a Burroughs Company
+P.O. Box 517
+Paoli, PA.
+19301
Judges' comments:
+ +This program prints the name of the picture. The layout is somewhat +pretty through it is not the usual sort of output one would expect +from printing a program!
+ +This program was selected for the 1987 t-shirt collection.
+ +This program is known to give some C compilers a problems.
+ +Copyright © 1986, 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.
diff --git a/1986/marshall/hint.text b/1986/marshall/hint.text new file mode 100644 index 000000000..ac079f839 --- /dev/null +++ b/1986/marshall/hint.text @@ -0,0 +1,23 @@ +# Best layout + +Eric Marshall +System Development Corporation, a Burroughs Company +P.O. Box 517 +Paoli, PA. +19301 + +# Judges' comments: + +This program prints the name of the picture. The layout is somewhat +pretty through it is not the usual sort of output one would expect +from printing a program! + +This program was selected for the 1987 t-shirt collection. + +This program is known to give some C compilers a problems. + +Copyright (c) 1986, 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. diff --git a/1986/marshall/marshall.c b/1986/marshall/marshall.c new file mode 100644 index 000000000..b4484035a --- /dev/null +++ b/1986/marshall/marshall.c @@ -0,0 +1,14 @@ + extern int + errno + ;char + grrr + ;main( r, + argv, argc ) int argc , + r ; char *argv[];{int P( ); +#define x int i, j,cc[4];printf(" choo choo\n" ) ; +x ;if (P( ! i ) | cc[ ! j ] +& P(j )>2 ? j : i ){* argv[i++ +!-i] +; for (i= 0;; i++ ); +_exit(argv[argc- 2 / cc[1*argc]|-1<<4 ] ) ;printf("%d",P(""));}} + P ( a ) char a ; { a ; while( a > " B " + /* - by E ricM arsh all- */); } diff --git a/1986/pawka/Makefile b/1986/pawka/Makefile new file mode 100644 index 000000000..166227697 --- /dev/null +++ b/1986/pawka/Makefile @@ -0,0 +1,25 @@ +# %W% %G% %U% +# +# 1986 makefile +# +# Copyright (c) 1986, 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 +# from Landon Curt Noll and Larry Bassel. + + +SHELL= /bin/sh +WINNERS= pawka + +all: ${WINNERS} + +pawka: pawka.c + cc $? -o $@ + +clean: + rm -f core +clobber: clean + rm -f ${WINNERS} a.out +install: all + @echo are you kidding'??' diff --git a/1986/pawka/hint.html b/1986/pawka/hint.html new file mode 100644 index 000000000..5b728de6d --- /dev/null +++ b/1986/pawka/hint.html @@ -0,0 +1,18 @@ +Most illegible code
+ +Michael H. Pawka
+Naval Ocean Systems Center
+San Diego, Ca
+92152
Judges' comments:
+ +The judges found this entry to be one of hardest to read without the
+aid of /lib/cpp and a good editor. When run, the program asks if it
+is obfuscated, of all things!
Copyright © 1986, 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.
diff --git a/1986/pawka/hint.text b/1986/pawka/hint.text new file mode 100644 index 000000000..aac527ffa --- /dev/null +++ b/1986/pawka/hint.text @@ -0,0 +1,18 @@ +# Most illegible code + +Michael H. Pawka +Naval Ocean Systems Center +San Diego, Ca +92152 + +## Judges' comments: + +The judges found this entry to be one of hardest to read without the +aid of `/lib/cpp` and a good editor. When run, the program asks if it +is obfuscated, of all things! + +Copyright (c) 1986, 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. diff --git a/1986/pawka/pawka.c b/1986/pawka/pawka.c new file mode 100644 index 000000000..8ba9e9d95 --- /dev/null +++ b/1986/pawka/pawka.c @@ -0,0 +1,18 @@ +#include "stdio.h" +#define xyxx char +#define xyyxx putchar +#define xyyyxx while +#define xxyyyx int +#define xxxyyx main +#define xyxyxy if +#define xyyxyy '\n' +xyxx *xyx [] = { +"]I^x[I]k\\I^o[IZ~\\IZ~[I^|[I^l[I^j[I^}[I^n[I]m\\I]h", +"]IZx\\IZx[IZk\\IZk[IZo_IZ~\\IZ~[IZ|_IZl_IZj\\IZj]IZ}]IZn_IZm\\IZm_IZh", +"]IZx\\IZx[I^k[I\\o]IZ~\\IZ~\\I]|[IZl_I^j]IZ}]I^n[IZm\\IZm_IZh", +"]IZx\\IZx[IZk\\IZk[IZo_IZ~\\IZ~_IZ|[IZl_IZj\\IZj]IZ}]IZn_IZm\\IZm]IZh", +"]I^x[I]k\\IZo_I^~[I^|[I^l[IZj\\IZj]IZ}]I^n[I]m^IZh",'\0'};/*xyyxyxyxxxyxxxyy*/ +xyxx *xyyx; xxyyyx xyyyx,xyyyyx,xyyyyyx=0x59,xyyyyyyx=0x29,/*yxxyxyyyxxyyyxyy*/ +xxyx=0x68;xxxyyx(){xyyyyx=0;xyyyxx(xyx[xyyyyx]){xyyx=xyx[xyyyyx++];/*xyyyxxyx*/ +xyyyxx(*xyyx){xyyyx= *xyyx++-xyyyyyx;xyyyxx(xyyyx--)xyyxx(*xyyx-xyyyyyyx);/*x*/ +xyxyxy(*xyyx==xxyx)xyyxx(xyyxyy);*xyyx++;}}}/*xyxyxyyyyxxyxxxyyyxyyyxyxxyyy*/ diff --git a/1986/rules b/1986/rules new file mode 100644 index 000000000..d22441650 --- /dev/null +++ b/1986/rules @@ -0,0 +1,109 @@ +Copyright (c) 1986, 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. + +WARNING: The rules and mailing address for the contest change from year + to year. Be sure that you consult the current set of rules + before submitting entries. +------------------------------------------------------------------------------- + +Subject: Third International Obfuscated C Code Contest Rules +Newsgroups: net.lang.c +Keywords: rules,1986,obfuscate,contest + +GOAL: To write the most Obscure working C program following the rules below: + +RULES: 1) The source must be 1024 bytes or less. NO exceptions! + + 2) Include in your letter: + a) Name (or anonymous), Company/School, City, State and Country. + b) Your path from a major network site, if applicable. + c) A brief statement of what the program should do. + d) The Machine(s)/Operating system(s) on which it runs. + e) Enclose your source between the following lines: + ---start of program--- +Best one liner
+ +Jan Stein
+ +Judges' comments:
+ ++ +NOTE: to avoid problems with news and mail, the single line was split +into 3 lines. Join all lines into a single line to recreate +the original file.
Compile and link to a filename called ‘a.out’. Try the program with the +following argument:
+ +a.out ^N^N
+
+
+(^N is ASCII control-N). One some machines, ^ML is needed to get it to +output cleanly. Your system may require another set of characters. +In time, you will figure out what it does. :-)
+ +Copyright © 1986, 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.
diff --git a/1986/stein/hint.text b/1986/stein/hint.text new file mode 100644 index 000000000..367b9f068 --- /dev/null +++ b/1986/stein/hint.text @@ -0,0 +1,24 @@ +# Best one liner + +Jan Stein + +Judges' comments: + +> NOTE: to avoid problems with news and mail, the single line was split +> into 3 lines. Join all lines into a single line to recreate +> the original file. + +Compile and link to a filename called 'a.out'. Try the program with the +following argument: + + a.out ^N^N + +(^N is ASCII control-N). One some machines, ^M^L is needed to get it to +output cleanly. Your system may require another set of characters. +In time, you will figure out what it does. :-) + +Copyright (c) 1986, 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. diff --git a/1986/stein/stein.c b/1986/stein/stein.c new file mode 100644 index 000000000..cf731c84a --- /dev/null +++ b/1986/stein/stein.c @@ -0,0 +1,3 @@ +typedef char*z;O;o;_=33303285;main(b,Z)z Z;{b=(b>=0||(main(b+1,Z+1),*Z=O%(o=(_% +25))+'0',O/=o,_/=25))&&(b<1||(O=time(&b)%0250600,main(~5,*(z*)Z),write(1,*(z*)Z +,9)));} diff --git a/1986/wall/Makefile b/1986/wall/Makefile new file mode 100644 index 000000000..77b894c02 --- /dev/null +++ b/1986/wall/Makefile @@ -0,0 +1,25 @@ +# %W% %G% %U% +# +# 1986 makefile +# +# Copyright (c) 1986, 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 +# from Landon Curt Noll and Larry Bassel. + + +SHELL= /bin/sh +WINNERS= wall + +all: ${WINNERS} + +wall: wall.c + cc $? -o $@ + +clean: + rm -f core +clobber: clean + rm -f ${WINNERS} a.out +install: all + @echo are you kidding'??' diff --git a/1986/wall/hint.html b/1986/wall/hint.html new file mode 100644 index 000000000..d80b57e07 --- /dev/null +++ b/1986/wall/hint.html @@ -0,0 +1,25 @@ +The grand prize in most well-rounded in confusion
+ +Larry Wall
+System Development Corporation
+Santa Monica
+California
+US of A
Judges' comments:
+ +The original version did not have a ‘;’ character in the first line. +This caused a number of System V C pre-preprocessors to gripe about a +syntax error.
+ +This program is a masterpiece of obfuscation and humor. Larry Wall +(the hacker who gave us rn and patch) asks you to compile and consider +the warning message generated by the C compiler. Then execute the +program and type charters into its standard input. You will see why +the compiler documents the program.
+ +Copyright © 1986, 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.
diff --git a/1986/wall/hint.text b/1986/wall/hint.text new file mode 100644 index 000000000..ed0eb46f6 --- /dev/null +++ b/1986/wall/hint.text @@ -0,0 +1,25 @@ +# The grand prize in most well-rounded in confusion + +Larry Wall +System Development Corporation +Santa Monica +California +US of A + +## Judges' comments: + +The original version did not have a ';' character in the first line. +This caused a number of System V C pre-preprocessors to gripe about a +syntax error. + +This program is a masterpiece of obfuscation and humor. Larry Wall +(the hacker who gave us rn and patch) asks you to compile and consider +the warning message generated by the C compiler. Then execute the +program and type charters into its standard input. You will see why +the compiler documents the program. + +Copyright (c) 1986, 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. diff --git a/1986/wall/wall.c b/1986/wall/wall.c new file mode 100644 index 000000000..836cb51d5 --- /dev/null +++ b/1986/wall/wall.c @@ -0,0 +1,78 @@ +#define _c(C)_ (C)&('|'+3):c_()(C)>>('\n'-3) __; /**/ +#define C char* +#define keyboard ",,B3-u;.(&*5., /(b*(1\036!a%\031m,,,,,\r\n" +#define main(o,oo)oo(o){ +#define _ ;case +C +#define c_(cc)c cc= +#define C_(sand)_O(sand)witch +o=keyboard; +#define __ ;break; +C +ccc( +cc) +C +cc; +{ +C +cccc= +cc;int +#ifndef lint +#define keyboard "dijs QH.soav Vdtnsaoh DmfpaksoQz;kkt oa, -dijs" +#endif +c; +main(;c_(=(*cc);*cc++)c,for); +#define _O(s)s +main(0xb+(c>>5),C_(s)) +_'\v' +:__ _'\f': +main(c,C_(s)); +_c(8098)_c(6055)_c(14779)_c(10682) +#define O_(O)_O(O)stem(ccc( +_c(15276)_c(11196)_c(15150) +#define _C ;return +_c(11070)_c(15663)_c(11583) +} +__ +default +:c_(+)o[c&__LINE__-007]; +main(c_(-)'-'-1,C_(s))_ +0214 +:_ +0216 +:c_(+)025 _ +0207 +:c_(-)4 _ +0233 +:c_(+)' '-1; +}}c_(&)'z'+5; +}_C cccc; +}main(,cc) +C +#define O write(1, +c="O"; +O_(sy) keyboard)); +main(;;,for); +read(0, +c,1);* +c_(&)'~'+1 +;O ccc( +c), +'\0'); +main(*c, +C_(s));_ +4 +:O_(sy)";kkt -oa, dijszdijs QQ"))_C +_ +13 +:O o+' ', +3 +) +#undef main +__ _ 127:O"\b \b",3)__ +default +:O +c,1) +__}}}main(){ +cc(); +} diff --git a/1987/1987.tar.bz2 b/1987/1987.tar.bz2 new file mode 100644 index 000000000..37cd2ae20 Binary files /dev/null and b/1987/1987.tar.bz2 differ diff --git a/1987/Makefile b/1987/Makefile new file mode 100644 index 000000000..5948a73e0 --- /dev/null +++ b/1987/Makefile @@ -0,0 +1,77 @@ +#!/usr/bin/env make +# +# 1987 makefile +# +# This work by Landon Curt Noll, Simon Cooper, and Leonid A. Broukhis +# is licensed under: +# +# Creative Commons Attribution-ShareAlike 3.0 Unported License. +# +# See: http://creativecommons.org/licenses/by-sa/3.0/ + + +################ +# tool locations +################ +# +SHELL= /bin/bash +CP= cp +CPP= cpp +GUNZIP= gunzip +LD= ld +MAKE= make +RM= rm +SED= sed +TAR= tar +TRUE= true + +# for System V style systems +OPSYS= -Dindex=strchr +# for BSD style systems +#OPSYS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +CC= cc + + +############### +# IOCCC winners +############### +# +WINNERS= heckbert wall westley hines korn biggar lievaart + +################### +# build all entries +################### +# +all: + @for i in ${WINNERS} ; do \ + echo "(cd $$i && $(MAKE) OPSYS=${OPSYS} $@)"; \ + (cd $$i && $(MAKE) "OPSYS=${OPSYS}" $@); \ + done + + +############### +# utility rules +############### +# +clean: + @for i in ${WINNERS} ; do \ + echo "(cd $$i && $(MAKE) $@)"; \ + (cd $$i && $(MAKE) $@); \ + done + +clobber: + @for i in ${WINNERS} ; do \ + echo "(cd $$i && $(MAKE) $@)"; \ + (cd $$i && $(MAKE) $@); \ + done + +install: + @for i in ${WINNERS} ; do \ + echo "(cd $$i && $(MAKE) $@)"; \ + (cd $$i && $(MAKE) $@); \ + done diff --git a/1987/README b/1987/README new file mode 100644 index 000000000..672af5387 --- /dev/null +++ b/1987/README @@ -0,0 +1,21 @@ +1987 marked the "The Fourth International Obfuscated C Code Contest" + +Copyright (c) 1987, 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. + +The rules for 1987 suggested even more categories than in 1986. Hints +for what to do and not to do were also given in the rules. For +example, a simple excessive abuse of /lib/cpp was discouraged unless +the abuse was unusual. The mailboxes for the contest were moved from +nsc to amdahl. The practice of posting a preliminary set of rules for +the next year was started this year. + +Rules and results were posted to comp.lang.c, comp.unix.wizards with +an announcement in news.announce.important. Micro/Systems Journal +published the 1987 winners. Mark Horton included a version of the 1987 +winners in an appendix of his C book. The first announcement of +winners at the Summer 87 Usenix was helped by a small fly that +danced all over the foils. diff --git a/1987/biggar/Makefile b/1987/biggar/Makefile new file mode 100644 index 000000000..ada5c3cd3 --- /dev/null +++ b/1987/biggar/Makefile @@ -0,0 +1,32 @@ +# %W% %G% %U% +# +# 1987 makefile +# +# Copyright (c) 1987, 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 +# from Landon Curt Noll and Larry Bassel. + + +SHELL= /bin/sh +WINNERS= biggar + +# for System V style systems +OPSYS= -Dindex=strchr +# for BSD style systems +#OPSYS= + +all: ${WINNERS} + +biggar: biggar.c + cc -DC="R>0" -DI="if(T)O" -DO="c=write(1,&c,1);" \ + -DP="main(){X}" -DR="read(0,&c,1)" -DT="c!=015" \ + -DW="while(C)I" -DX="char c;W" $? -o $@ + +clean: + rm -f core +clobber: clean + rm -f ${WINNERS} +install: all + @echo are you kidding'??' diff --git a/1987/biggar/biggar.c b/1987/biggar/biggar.c new file mode 100644 index 000000000..650e9c7b2 --- /dev/null +++ b/1987/biggar/biggar.c @@ -0,0 +1 @@ +P; diff --git a/1987/biggar/hint.html b/1987/biggar/hint.html new file mode 100644 index 000000000..cdcb5e963 --- /dev/null +++ b/1987/biggar/hint.html @@ -0,0 +1,44 @@ +Best Abuse of the Rules
+ +Mark Biggar
+UNiSYS - System Development Group, Santa Monica
+2525 Colorado AV MD 91-01
+Santa Monica, CA
+90406
Judges' comments:
+ +To build:
+ +cc -DC="R>0" -DI="if(T)O" -DO="c=write(1,&c,1);" -DP="main(){X}"\
+-DR="read(0,&c,1)" -DT="c!=015" -DW="while(C)I" -DX="char c;W" markb.c
+
+
+Passes BSD and UTS lint. At least one version of lint is thrown into +an infinite loop by this entry.
+ +Try:
+ +... | markb | od -c (remember to compile as indicated above)
+
+
+By changing the compile line you can make this program do anything you +want. This is a very efficient way to transfer source, though it +increases the size of Makefiles.
+ +With only slight variations, this program can be set to many uses. +Consider how easy it would be to release Un*x source in this form; +so what if the make files grow a little! :-)
+ +One vendor’s lint got hung in an infinite loop over this entry!
+ ++ +FYI: We will let Mark get away with this truly sick entry this time, but +for the future on we have placed a limit on the size of a compile line.
Also see our comment in Larry Wall’s entry regarding Mark’s contribution.
+ +Copyright © 1987, 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.
diff --git a/1987/biggar/hint.text b/1987/biggar/hint.text new file mode 100644 index 000000000..91cf8b559 --- /dev/null +++ b/1987/biggar/hint.text @@ -0,0 +1,43 @@ +# Best Abuse of the Rules + +Mark Biggar +UNiSYS - System Development Group, Santa Monica +2525 Colorado AV MD 91-01 +Santa Monica, CA +90406 + +## Judges' comments: + +### To build: + + cc -DC="R>0" -DI="if(T)O" -DO="c=write(1,&c,1);" -DP="main(){X}"\ + -DR="read(0,&c,1)" -DT="c!=015" -DW="while(C)I" -DX="char c;W" markb.c + +Passes BSD and UTS lint. At least one version of lint is thrown into +an infinite loop by this entry. + +### Try: + + ... | markb | od -c (remember to compile as indicated above) + + +By changing the compile line you can make this program do anything you +want. This is a very efficient way to transfer source, though it +increases the size of Makefiles. + +With only slight variations, this program can be set to many uses. +Consider how easy it would be to release Un*x source in this form; +so what if the make files grow a little! :-) + +One vendor's lint got hung in an infinite loop over this entry! + +> FYI: We will let Mark get away with this truly sick entry this time, but +> for the future on we have placed a limit on the size of a compile line. + +Also see our comment in Larry Wall's entry regarding Mark's contribution. + +Copyright (c) 1987, 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. diff --git a/1987/heckbert/Makefile b/1987/heckbert/Makefile new file mode 100644 index 000000000..286328f3b --- /dev/null +++ b/1987/heckbert/Makefile @@ -0,0 +1,30 @@ +# %W% %G% %U% +# +# 1987 makefile +# +# Copyright (c) 1987, 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 +# from Landon Curt Noll and Larry Bassel. + + +SHELL= /bin/sh +WINNERS= heckbert + +# for System V style systems +OPSYS= -Dindex=strchr +# for BSD style systems +#OPSYS= + +all: ${WINNERS} + +heckbert: heckbert.c + cc ${OPSYS} $? -o $@ + +clean: + rm -f core +clobber: clean + rm -f ${WINNERS} +install: all + @echo are you kidding'??' diff --git a/1987/heckbert/heckbert.c b/1987/heckbert/heckbert.c new file mode 100644 index 000000000..ccdb7e0b7 --- /dev/null +++ b/1987/heckbert/heckbert.c @@ -0,0 +1,18 @@ +#includePaul Heckbert
+Pixar
Judges' comments:
+ +Try:
+ +ph 40 < ph.c > foo.c; cc foo.c -o ph
+ph 20 < a_C_prog.c > bar.c; cc bar.c
+
+
+The judges used this program to fold up very long lines which the +BSD fold(1) was unable to process. This program has been added +to the contest tool chest.
+ +On System V systems, compile with: -Dindex=strchr
+To compile on a 16 bit machine, change 300000’s to 30000.
Copyright © 1987, 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.
diff --git a/1987/heckbert/hint.text b/1987/heckbert/hint.text new file mode 100644 index 000000000..445b201e4 --- /dev/null +++ b/1987/heckbert/hint.text @@ -0,0 +1,24 @@ +# Best Obfuscator of Programs + +Paul Heckbert +Pixar + +## Judges' comments: + + +### Try: + ph 40 < ph.c > foo.c; cc foo.c -o ph + ph 20 < a_C_prog.c > bar.c; cc bar.c + +The judges used this program to fold up very long lines which the +BSD fold(1) was unable to process. This program has been added +to the contest tool chest. + +On System V systems, compile with: `-Dindex=strchr` +To compile on a 16 bit machine, change 300000's to 30000. + +Copyright (c) 1987, 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. diff --git a/1987/hines/Makefile b/1987/hines/Makefile new file mode 100644 index 000000000..11abeda39 --- /dev/null +++ b/1987/hines/Makefile @@ -0,0 +1,30 @@ +# %W% %G% %U% +# +# 1987 makefile +# +# Copyright (c) 1987, 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 +# from Landon Curt Noll and Larry Bassel. + + +SHELL= /bin/sh +WINNERS= hines + +# for System V style systems +OPSYS= -Dindex=strchr +# for BSD style systems +#OPSYS= + +all: ${WINNERS} + +hines: hines.c + cc $? -o $@ + +clean: + rm -f core +clobber: clean + rm -f ${WINNERS} +install: all + @echo are you kidding'??' diff --git a/1987/hines/hines.c b/1987/hines/hines.c new file mode 100644 index 000000000..9b6beea39 --- /dev/null +++ b/1987/hines/hines.c @@ -0,0 +1,19 @@ +#includeWorst Style
+ +Spencer Hines
+OnLine Computer Systems
+4200 Farragut Street
+Hyattsville, MD
+20781
+USA
Judges' comments:
+ +Try:
+ +hines hines.c
+
+
+This program was designed to maximize the bother function for +structured programmers. This program takes goto statements to their +logical conclusion. The layout and choice of names are classic.
+ +We consider this to be a beautiful counter-example for Frank Rubin’s +letter to ACM form titled: “GOTO Considered Harmful” Considered Harmful. +See the Communications of the ACM, March 1987, Page 195-196.
+ +Copyright © 1987, 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.
diff --git a/1987/hines/hint.text b/1987/hines/hint.text new file mode 100644 index 000000000..640c73a24 --- /dev/null +++ b/1987/hines/hint.text @@ -0,0 +1,28 @@ +# Worst Style + +Spencer Hines +OnLine Computer Systems +4200 Farragut Street +Hyattsville, MD +20781 +USA + +## Judges' comments: + +### Try: + + hines hines.c + +This program was designed to maximize the bother function for +structured programmers. This program takes goto statements to their +logical conclusion. The layout and choice of names are classic. + +We consider this to be a beautiful counter-example for Frank Rubin's +letter to ACM form titled: *"GOTO Considered Harmful" Considered Harmful*. +See the Communications of the ACM, March 1987, Page 195-196. + +Copyright (c) 1987, 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. diff --git a/1987/korn/Makefile b/1987/korn/Makefile new file mode 100644 index 000000000..30c4e2b00 --- /dev/null +++ b/1987/korn/Makefile @@ -0,0 +1,30 @@ +# %W% %G% %U% +# +# 1987 makefile +# +# Copyright (c) 1987, 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 +# from Landon Curt Noll and Larry Bassel. + + +SHELL= /bin/sh +WINNERS= korn + +# for System V style systems +OPSYS= -Dindex=strchr +# for BSD style systems +#OPSYS= + +all: ${WINNERS} + +korn: korn.c + cc $? -o $@ + +clean: + rm -f core +clobber: clean + rm -f ${WINNERS} +install: all + @echo are you kidding'??' diff --git a/1987/korn/hint.html b/1987/korn/hint.html new file mode 100644 index 000000000..8d87b6b6b --- /dev/null +++ b/1987/korn/hint.html @@ -0,0 +1,56 @@ +Best One Liner
+ +David Korn
+AT&T Bell Labs
+MH 3C-526B, AT&T Bell Labs
+Murray Hill, NJ
+07974
+USA
Judges' comments:
+ +The Judges believe that this is the best one line entry ever received. +Compile on a UN*X system, or at least using a C implementation that +fakes it. Very few people are able to determine what this program +does by visual inspection. I suggest that you stop reading this +section right now and see if you are one of the few people who can.
+ +Several points are important to understand in this program:
+ +1) What is the symbol ‘unix’ and what is its value in the program? + Clearly ‘unix’ is not a function, and since ‘unix’ is not declared + to be a data type (such as int, char, struct foo, enum, …) + what must ‘unix’ be?
+ +2) What is the value of the symbol “have”? (hint: the value is + NOT 4 characters, or ‘h’, or a string) Consider the fact that:
+ + char *x;
+
+
+defines a pointer to a character (i.e. an address), and that + the ‘=’ assigns things is compatible types. Since:
+ + x = "have";
+
+
+is legal C, what type of value is “have”?
+ +3) Note that the following expressions yield the same value:
+ + x[3] *(x+3) *(3+x)
+
+
+since addition is communitive. What can be said about the value:
+ + 3[x]
+
+
+David Korn’s /bin/ksh provides us with a greatly improved version of +the /bin/sh. The source for v7’s /bin/sh greatly inspired this contest.
+ +Copyright © 1987, 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.
diff --git a/1987/korn/hint.text b/1987/korn/hint.text new file mode 100644 index 000000000..1f748e0e5 --- /dev/null +++ b/1987/korn/hint.text @@ -0,0 +1,52 @@ +# Best One Liner + +David Korn +AT&T Bell Labs +MH 3C-526B, AT&T Bell Labs +Murray Hill, NJ +07974 +USA + +## Judges' comments: + +The Judges believe that this is the best one line entry ever received. +Compile on a UN*X system, or at least using a C implementation that +fakes it. Very few people are able to determine what this program +does by visual inspection. I suggest that you stop reading this +section right now and see if you are one of the few people who can. + +Several points are important to understand in this program: + +1) What is the symbol 'unix' and what is its value in the program? + Clearly 'unix' is not a function, and since 'unix' is not declared + to be a data type (such as int, char, struct foo, enum, ...) + what must 'unix' be? + +2) What is the value of the symbol "have"? (hint: the value is + NOT 4 characters, or 'h', or a string) Consider the fact that: + + char *x; + + defines a pointer to a character (i.e. an address), and that + the '=' assigns things is compatible types. Since: + + x = "have"; + + is legal C, what type of value is "have"? + +3) Note that the following expressions yield the same value: + + x[3] *(x+3) *(3+x) + + since addition is communitive. What can be said about the value: + + 3[x] + +David Korn's /bin/ksh provides us with a greatly improved version of +the /bin/sh. The source for v7's /bin/sh greatly inspired this contest. + +Copyright (c) 1987, 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. diff --git a/1987/korn/korn.c b/1987/korn/korn.c new file mode 100644 index 000000000..c21ebc49b --- /dev/null +++ b/1987/korn/korn.c @@ -0,0 +1 @@ + main() { printf(&unix["\021%six\012\0"],(unix)["have"]+"fun"-0x60);} diff --git a/1987/lievaart/Makefile b/1987/lievaart/Makefile new file mode 100644 index 000000000..06208e66b --- /dev/null +++ b/1987/lievaart/Makefile @@ -0,0 +1,33 @@ +# %W% %G% %U% +# +# 1987 makefile +# +# Copyright (c) 1987, 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 +# from Landon Curt Noll and Larry Bassel. + + +SHELL= /bin/sh +WINNERS= lievaart lievaart2 + +# for System V style systems +OPSYS= -Dindex=strchr +# for BSD style systems +#OPSYS= + +all: ${WINNERS} + +lievaart: lievaart.c + cc $? -o $@ +# not an official entry +lievaart2: lievaart2.c + cc $? -o $@ + +clean: + rm -f core +clobber: clean + rm -f ${WINNERS} +install: all + @echo are you kidding'??' diff --git a/1987/lievaart/hint.html b/1987/lievaart/hint.html new file mode 100644 index 000000000..855a0f5de --- /dev/null +++ b/1987/lievaart/hint.html @@ -0,0 +1,36 @@ +Grand Prize
+ +Roemer B. Lievaart
+VU Informatica
+Churchilllaan 173-IV
+Amsterdam, The Netherlands
Judges' remarks:
+ +We believe that you too will be amazed at just how much power Mr. Lievaart +packed into 1024 bytes!
+ +This Plays the game of reversi (Othello)! Compile and run. It then +asks for a playing level. Enter 0-10 (easy-hard). It then asks for +your move. A move is a number within 11-88, or a 99 to pass. Illegal +moves (except for an illegal pass) are rejected. Then the computer +does its move (or a 0 to pass), until the board is full.
+ +It plays rather well, for such a small program! Lievaart had to leave out the +board printing routine, so you’ll have to take a real game board to +play it. … Also due to space-limitations (the rules for 1987 had a +limit of 1024 byes), Lievaart took out the passing-handler, which +makes its ending-game rather poor. But further it knows all the +rules, uses alpha-beta pruning, and it plays f.i. on mobility(!). +Most important: it can play a pretty good game of Reversi!
+ +The Author was kind enough to supply the fully functional version of the +program. The file lievaart2.c contains what the program would have +been without the size restriction. This version has the full end game +logic and displays the board after each move!
+ +Copyright © 1987, 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.
diff --git a/1987/lievaart/hint.text b/1987/lievaart/hint.text new file mode 100644 index 000000000..753f85a42 --- /dev/null +++ b/1987/lievaart/hint.text @@ -0,0 +1,37 @@ +# Grand Prize + +Roemer B. Lievaart +VU Informatica +Churchilllaan 173-IV +Amsterdam, The Netherlands + + +## Judges' remarks: + +We believe that you too will be amazed at just how much power Mr. Lievaart +packed into 1024 bytes! + +This Plays the game of reversi (Othello)! Compile and run. It then +asks for a playing level. Enter 0-10 (easy-hard). It then asks for +your move. A move is a number within 11-88, or a 99 to pass. Illegal +moves (except for an illegal pass) are rejected. Then the computer +does its move (or a 0 to pass), until the board is full. + +It plays rather well, for such a small program! Lievaart had to leave out the +board printing routine, so you'll have to take a real game board to +play it. ... Also due to space-limitations (the rules for 1987 had a +limit of 1024 byes), Lievaart took out the passing-handler, which +makes its ending-game rather poor. But further it knows all the +rules, uses alpha-beta pruning, and it plays f.i. on mobility(!). +Most important: it can play a pretty good game of Reversi! + +The Author was kind enough to supply the fully functional version of the +program. The file lievaart2.c contains what the program would have +been without the size restriction. This version has the full end game +logic and displays the board after each move! + +Copyright (c) 1987, 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. diff --git a/1987/lievaart/lievaart.c b/1987/lievaart/lievaart.c new file mode 100644 index 000000000..0a2473823 --- /dev/null +++ b/1987/lievaart/lievaart.c @@ -0,0 +1,20 @@ +#define D define +#D Y return +#D R for +#D e while +#D I printf +#D l int +#D C y=v+111;H(x,v)*y++= *x +#D H(a,b)R(a=b+11;au){R(w=i=0;i<4;i++)w+=(m=v[h[i]])==f?300:m==q?-300:(t=v[ih[i]])==f?-50 +:t==q?50:0;return w;}H(z,0){if(GZ(v,z,f,100)){c++;w= -S(d+1,n,q,-b,-bw);if(w>bw +){zb=z;bw=w;if(w>=b||w>=8003)Y w;}}}if(!c){bz=0;C;Y-S(d+1,n,q,-b,-bw);}bz=zb;Y +d>=u-1?bw+(c<<3):bw;}main(){R(;t<1100;t+=100)R(m=0;m<100;m++)V[t+m]=m<11||m>88 +||(m+1)%10<2?3:0;V[44]=V[55]=1;V[45]=V[54]=2;I("Level:");s(u);e(lv>0){do{I("Yo\ +u:");s(m);}e(!GZ(V,m,2,0)&&m!=99);if(m!=99)lv--;if(lv<15&&u<10)u+=2;I("Wait\n") +;I("Value:%d\n",S(0,V,1,-9000,9000));I("move: %d\n",(lv-=GZ(V,bz,1,0),bz));}}GZ +(v,z,f,o)l*v;{l*j,q=3-f,g=0,i,h,*k=v+z;if(*k==0)R(i=7;i>=0;i--){j=k+(h=r[i]);e( +*j==q)j+=h;if(*j==f&&j-h!=k){if(!g){g=1;C;}e(j!=k)*((j-=h)+o)=f;}}Y g;} diff --git a/1987/lievaart/lievaart2.c b/1987/lievaart/lievaart2.c new file mode 100644 index 000000000..086799bca --- /dev/null +++ b/1987/lievaart/lievaart2.c @@ -0,0 +1,25 @@ +#define D define +#D Y return +#D R for +#D e while +#D I printf +#D l int +#D W if +#D C y=v+111;H(x,v)*y++= *x +#D H(a,b)R(a=b+11;au){R(w=i=0;i<4;i++)w+=(m=v[h[i]])==f?300:m==q?-300:(t=v[ih[i]])==f?-50: +t==q?50:0;Y w;}H(z,0){W(E(v,z,f,100)){c++;w= -S(d+1,n,q,0,-b,-j);W(w>j){g=bz=z; +j=w;W(w>=b||w>=8003)Y w;}}}W(!c){g=0;W(_){H(x,v)c+= *x==f?1:*x==3-f?-1:0;Y c>0? +8000+c:c-8000;}C;j= -S(d+1,n,q,1,-b,-j);}bz=g;Y d>=u-1?j+(c<<3):j;}main(){R(;t< +1600;t+=100)R(m=0;m<100;m++)V[t+m]=m<11||m>88||(m+1)%10<2?3:0;I("Level:");V[44] +=V[55]=1;V[45]=V[54]=2;s(u);e(lv>0){Z do{I("You:");s(m);}e(!E(V,m,2,0)&&m!=99); +W(m!=99)lv--;W(lv<15&&u<10)u+=2;U("Wait\n");I("Value:%d\n",S(0,V,1,0,-9000,9000 +));I("move: %d\n",(lv-=E(V,bz,1,0),bz));}}E(v,z,f,o)l*v;{l*j,q=3-f,g=0,i,w,*k=v ++z;W(*k==0)R(i=7;i>=0;i--){j=k+(w=r[i]);e(*j==q)j+=w;W(*j==f&&j-w!=k){W(!g){g=1 +;C;}e(j!=k)*((j-=w)+o)=f;}}Y g;} diff --git a/1987/rules b/1987/rules new file mode 100644 index 000000000..be61d175a --- /dev/null +++ b/1987/rules @@ -0,0 +1,167 @@ +Copyright (c) 1987, 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. + +WARNING: The rules and mailing address for the contest change from year + to year. Be sure that you consult the current set of rules + before submitting entries. +------------------------------------------------------------------------------ + +Subject: 4th International Obfuscated C Code Contest Rules +Newsgroups: comp.lang.c,comp.unix.wizards +Keywords: rules,1987,obfuscate,contest + +GOALS OF THE CONTEST: + + * To write the most Obscure/Obfuscated C program under the rules below. + * To show what should NOT be done in C programs. + * To provide a safe forum for poor C code. :-) + +RULES: + 1) The source must be 1024 characters long or less. NO EXCEPTIONS! + + 2) To help us process your entries, we ask that you submit entries + in the following format: (please include the --- lines) + +---start of header items--- +name: +org: +email address: +postal address: +environment: +remarks: +---start of entry--- +XMost Useful Obfuscation
+ +Larry Wall
+Unisys - System Development Group Santa Monica
+9132 Kester Ave
+Panorama City, CA 91402 USA
Judges' comments:
+ +Try:
+ +lwall | bc | lwall
+input: x*x
+input: c^2
+
+
+Also try:
+ +lwall | bc and lwall | cat
+
+
+What we found amazing was how the flow of control was transferred +between subroutines. Careful inspection will show that the array of +pointers to functions named ‘vi’ refers to functions which seem to not +be directly called. Even so, these pointers to functions are being +used as an argument to signal. Can you determine why this is being +done and how it is being exploited?
+ +Some compilers complained about this file, so we changed: ‘=++I’ to ‘= ++I’.
+ +Copyright © 1987, 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.
diff --git a/1987/wall/hint.text b/1987/wall/hint.text new file mode 100644 index 000000000..63903a1c1 --- /dev/null +++ b/1987/wall/hint.text @@ -0,0 +1,31 @@ +# Most Useful Obfuscation + +Larry Wall +Unisys - System Development Group Santa Monica +9132 Kester Ave +Panorama City, CA 91402 USA + +## Judges' comments: + +### Try: + lwall | bc | lwall + input: x*x + input: c^2 + +### Also try: + lwall | bc and lwall | cat + +What we found amazing was how the flow of control was transferred +between subroutines. Careful inspection will show that the array of +pointers to functions named 'vi' refers to functions which seem to not +be directly called. Even so, these pointers to functions are being +used as an argument to signal. Can you determine why this is being +done and how it is being exploited? + +Some compilers complained about this file, so we changed: '=++I' to '= ++I'. + +Copyright (c) 1987, 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. diff --git a/1987/wall/wall.c b/1987/wall/wall.c new file mode 100644 index 000000000..8ba1c5458 --- /dev/null +++ b/1987/wall/wall.c @@ -0,0 +1,18 @@ +#define iv 4 +#define v ;(void +#define XI(xi)int xi[iv*'V']; +#define L(c,l,i)c(){d(l);m(i);} +#includeBest Layout
+ +Brian Westley (aka Merlyn Leroy on usenet)
+Starfire Consulting
+1121 Hamline Ave. N. #17
+St. Paul, MN
+55108
+USA
Judges' comments:
+ +Putchar must exist in the C library and not just as a macro.
+If it fails to compile, add the line: #include <stdio.h> at the
+top of the program.
Line by line symmetry performed better than any C beautifier. Think +of if it as a C ink blot. :-)
+ +Copyright © 1987, 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.
diff --git a/1987/westley/hint.text b/1987/westley/hint.text new file mode 100644 index 000000000..501780b4e --- /dev/null +++ b/1987/westley/hint.text @@ -0,0 +1,23 @@ +# Best Layout + +Brian Westley (aka Merlyn Leroy on usenet) +Starfire Consulting +1121 Hamline Ave. N. #17 +St. Paul, MN +55108 +USA + +## Judges' comments: + +Putchar must exist in the C library and not just as a macro. +If it fails to compile, add the line: `#include> 3 ) {putchar('\t' +); h = ( h +8 +)&~7 ;}W(h < p ){putchar(' ');++h; }(void)printf( +"%s" , s ) ;h+=strlen(s);}main(x,a)char **a; { +# define P(x) (x?(5-(x))*(6-(x ))/2:11) +int b; { char b[256],i, j=0; FILE*F;F=fopen(x-1?a[1]:"buzzard.c","r");W( +fgets( b ,256 ,F)){for(i=0;b[ i];++ i) +Z[j][i ] =( b [ i ] ==' '?1:2*(b[i]==(x>2?*a[2]:'\\')));++j;}fclose +(F);}A =4 ; B = 3 ; f = 1;x >3? A=z(a[3]),B=z(a[4]):0;b='\n';do{if(b=='\n' +){int y , s , d , p , q ,i;for +(y=-11; y<= 11;++ y){ for(s = 1 ,d=0;s+3;s-=2){for +(;d!=2 + 3 * s ; d+=s){ +if(m(d,0) !=1 ){p=P (d) ;if (abs( y ) +
p)break;for +(i =-p;i
q)continue;if +(abs(y)
0)?"\\":"/");}d-=s;}puts(
+"");h=0;}}f+=(b=='r')-(b=='l');f&=3;if(b=='f'){if(!m(1,0))continue;
+A+=X(f);B+=X(f-1);}}W((b=getchar())!=-1&&m(0,0)==1);return 0;}
diff --git a/1991/buzzard.hint b/1991/buzzard.hint
new file mode 100644
index 000000000..fbeb55ac7
--- /dev/null
+++ b/1991/buzzard.hint
@@ -0,0 +1,92 @@
+Best Output:
+
+ Sean Barrett
+ University of Maryland
+ 5407 20th Place
+ Hyattsville MD 20782
+ USA
+
+
+Judges' comments:
+
+ Make and run as follows:
+
+ make buzzard
+ buzzard
+
+ You will be A-mazed.
+
+ You are invited to try to cheat, ... if you can figure out how! :-)
+
+
+Selected notes from the author:
+
+ HOW TO PLAY:
+
+ When the game starts, you are at the far end of the maze from the
+ exit, looking down a corridor. To move forward, type 'f' and press
+ return. To turn 90 degrees right, type 'r'; left, 'l'. You can
+ put multiple commands on one line, and the new view will be drawn
+ after all the moves.
+
+ The game ends if you get out the exit (you'll know it when you see
+ it) or when you type ^D.
+
+ HINTS ON HOW TO CHEAT: (rot13 to read)
+
+ Lbh pna, bs pbhefr, purng ol ybbxvat ng gur znmr znc. Gur dhrfgvba
+ lbh arrq gb nfx lbhefrys, gubhtu, vf jung frdhrapr bs punenpgref
+ znexf gur cynpr jurer lbh pna rfpncr gur znmr?
+
+ Gur nytbevguz vf dhvgr ovmneer--gur cevznel arfgrq ybbc gung
+ trarengrf vg tbrf gbc gb obggbz ba gur qvfcynl, ybbcvat sbejneq
+ gura onpxjneq sebz gur pheerag cbfvgvba gb qenj gur yrsg fvqr naq
+ gura gur evtug fvqr.
+
+ ADVANCED USAGE NOTES: (rot13 to read)
+
+ Gur cebtenz pna nyfb or eha sebz bgure svyrf pbagnvavat znmrf. Gur
+ znmr fubhyq or ynvq bhg tencuvpnyyl va gur boivbhf sbezng; arjyvarf
+ frcnengr culfvpny ebjf va gur znmr; n fcnpr vaqvpngrf n pbeevqbe,
+ naq nal bgure punenpgre vf n jnyy. Gnof ner nyfb pbafvqrerq jnyyf,
+ fb znxr fher gb pbaireg gnof gb fcnprf orsber hfvat vg.
+
+ Hfntr: ohmmneq [svyranzr [rfpncr-pune [fgneg-k fgneg-l]]]
+
+ Svyranzr vf gur anzr bs gur svyr pbagnvavat gur znmr. Guvf
+ qrsnhygf gb 'ohmmneq.p'.
+
+ Rfpncr-pune vf gur punenpgre va gur znmr gung ercerfragf gur rkvg.
+ Lbh pna chg zber guna bar rkvg va gur znmr (sbe rknzcyr, lbh pbhyq
+ znxr nyy '!'f va gur znmr or rkvgf).
+
+ Fgneg-k naq fgneg-l znex gur pbbeqvangrf jurer lbh ortva cynlvat.
+ L pbbeqvangr vf qbja gur ebjf va gur svyrf, K vf gb gur evtug
+ guebhtu gur punenpgref bs rnpu yvar. Obgu K naq L ortva pbhagvat
+ sebz 0. Gur qrsnhyg vf fgneg-k = 4, fgneg-l = 5, juvpu vf arrqrq
+ sbe gur ohmmneq.p, ohg jbhyq cebonoyl or vanccebcevngr sbe bgure
+ znmrf.
+
+ OHTF:
+
+ Lbh pna'g punatr gung ng fgneg lbh'er snpvat qbja ("fbhgu").
+
+ Gur qenjvat nytbevguz pnaabg unaqyr bcra fcnprf (gjb fhpprfvir
+ fvqr-pbeevqbef jvgu ab jnyy orgjrra gurz). Va snpg, vg pnaabg unaqyr
+ fznyy qbt-yrtf cebcreyl, nygubhtu gur reebe vf fhogyr.
+
+ Gur rkvg vf qenja yvxr n abezny pbeevqbe sebz gur fvqr ivrj;
+ vg'f bayl qvfcynlrq nf gur rkvg jura lbh ner snpvat vg.
+
+ Vzcebcre pbzznaqyvar nethzragf ner abg unaqyrq avpryl.
+
+ Znmrf jvgu bcravatf ng gur rqtrf jvyy pnhfr gur qenjvat cebtenz
+ gb ernpu vagb neovgenel cnepryf bs zrzbel.
+
+ Gur cebtenz nffhzrf gung gnof ner frg gb 8 punenpgref.
+
+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.
diff --git a/1991/cdupont.c b/1991/cdupont.c
new file mode 100644
index 000000000..3a63eabfe
--- /dev/null
+++ b/1991/cdupont.c
@@ -0,0 +1,26 @@
+ /* common sense to nohonest programmer */
+#include