Skip to content

Commit 9d61fc0

Browse files
author
Landon Curt Noll
committed
Add 2020 source files for real
1 parent a3c1748 commit 9d61fc0

File tree

147 files changed

+32101
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

147 files changed

+32101
-0
lines changed

2020/2020.tar.bz2

865 KB
Binary file not shown.

2020/MANIFEST

Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
2020/MANIFEST
2+
2020/Makefile
3+
2020/README.text
4+
2020/burton/Makefile
5+
2020/burton/check.sh
6+
2020/burton/check_be.sh
7+
2020/burton/correct
8+
2020/burton/hint.text
9+
2020/burton/prog.c
10+
2020/carlini/Makefile
11+
2020/carlini/hint.text
12+
2020/carlini/prog.c
13+
2020/endoh1/Makefile
14+
2020/endoh1/hilbert16x8.txt
15+
2020/endoh1/hilbert2x2.txt
16+
2020/endoh1/hilbert4x4.txt
17+
2020/endoh1/hilbert8x8.txt
18+
2020/endoh1/hint.text
19+
2020/endoh1/ioccc.txt
20+
2020/endoh1/megumin.txt
21+
2020/endoh1/prog.c
22+
2020/endoh1/prog.orig.c
23+
2020/endoh1/unwinnable.txt
24+
2020/endoh2/Makefile
25+
2020/endoh2/bear.txt
26+
2020/endoh2/hello.txt
27+
2020/endoh2/hint.text
28+
2020/endoh2/prog.c
29+
2020/endoh2/spoiler.zip
30+
2020/endoh2/yoda.txt
31+
2020/endoh3/Makefile
32+
2020/endoh3/hint.text
33+
2020/endoh3/prog.alt.c
34+
2020/endoh3/prog.c
35+
2020/endoh3/run_clock.sh
36+
2020/ferguson1/COMPILING
37+
2020/ferguson1/HACKING
38+
2020/ferguson1/Makefile
39+
2020/ferguson1/bugs.text
40+
2020/ferguson1/cake.jpg
41+
2020/ferguson1/cannibalism.log
42+
2020/ferguson1/chocolate-cake.text
43+
2020/ferguson1/crazy.log
44+
2020/ferguson1/gameplay.text
45+
2020/ferguson1/halfwidth_vs_fullwidth.png
46+
2020/ferguson1/hint.text
47+
2020/ferguson1/ioccc-cake.jpg
48+
2020/ferguson1/play.sh
49+
2020/ferguson1/prog.2.c
50+
2020/ferguson1/prog.3-j.c
51+
2020/ferguson1/prog.3.c
52+
2020/ferguson1/prog.alt.c
53+
2020/ferguson1/prog.c
54+
2020/ferguson1/snake-colours.sh
55+
2020/ferguson1/snake.1
56+
2020/ferguson1/spoilers.text
57+
2020/ferguson1/termcaps.c
58+
2020/ferguson1/terminals.text
59+
2020/ferguson1/troubleshooting.text
60+
2020/ferguson2/Makefile
61+
2020/ferguson2/cake.jpg
62+
2020/ferguson2/chocolate-cake.text
63+
2020/ferguson2/enigma.1
64+
2020/ferguson2/hint.text
65+
2020/ferguson2/input.txt
66+
2020/ferguson2/ioccc-cake.jpg
67+
2020/ferguson2/obfuscation.key
68+
2020/ferguson2/obfuscation.text
69+
2020/ferguson2/obfuscation.txt
70+
2020/ferguson2/prog.c
71+
2020/ferguson2/recode.1
72+
2020/ferguson2/recode.c
73+
2020/ferguson2/recode.text
74+
2020/ferguson2/try.this.txt
75+
2020/giles/Makefile
76+
2020/giles/dtmf.bin
77+
2020/giles/hint.text
78+
2020/giles/pi.wav
79+
2020/giles/prog.c
80+
2020/guidelines.txt
81+
2020/iocccsize-test.sh
82+
2020/iocccsize.c
83+
2020/iocccsize.mk
84+
2020/kurdyukov1/Makefile
85+
2020/kurdyukov1/hint.text
86+
2020/kurdyukov1/prog.c
87+
2020/kurdyukov1/prog.extra.c
88+
2020/kurdyukov1/prog.orig.c
89+
2020/kurdyukov1/prog.x86.asm
90+
2020/kurdyukov1/prog.x86_64.asm
91+
2020/kurdyukov2/Makefile
92+
2020/kurdyukov2/hint.text
93+
2020/kurdyukov2/makegif.sh
94+
2020/kurdyukov2/prog.c
95+
2020/kurdyukov2/prog.png
96+
2020/kurdyukov2/prog.png.c
97+
2020/kurdyukov2/prog.ppm
98+
2020/kurdyukov2/prog.ppm.c
99+
2020/kurdyukov2/sample.jpg
100+
2020/kurdyukov3/Makefile
101+
2020/kurdyukov3/hint.text
102+
2020/kurdyukov3/input.txt
103+
2020/kurdyukov3/prog.c
104+
2020/kurdyukov3/prog.extra.c
105+
2020/kurdyukov3/prog.orig.c
106+
2020/kurdyukov4/Makefile
107+
2020/kurdyukov4/hint.text
108+
2020/kurdyukov4/prog.c
109+
2020/kurdyukov4/rand.c
110+
2020/otterness/Makefile
111+
2020/otterness/hint.text
112+
2020/otterness/prog.c
113+
2020/rules.txt
114+
2020/tsoj/Makefile
115+
2020/tsoj/hint.text
116+
2020/tsoj/prog.c
117+
2020/yang/Makefile
118+
2020/yang/cppp.cc
119+
2020/yang/hint.text
120+
2020/yang/prog.c

2020/Makefile

Lines changed: 178 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,178 @@
1+
#!/usr/bin/env make
2+
#
3+
# 2020 makefile
4+
#
5+
# This work by Landon Curt Noll, Simon Cooper, and Leonid A. Broukhis
6+
# is licensed under:
7+
#
8+
# Creative Commons Attribution-ShareAlike 3.0 Unported License.
9+
#
10+
# See: http://creativecommons.org/licenses/by-sa/3.0/
11+
12+
13+
################
14+
# tool locations
15+
################
16+
#
17+
SHELL= /bin/bash
18+
#
19+
BUNZIP2= bunzip2
20+
BZIP2= bzip2
21+
CP= cp
22+
CPP= cpp
23+
CURL= curl
24+
DD= dd
25+
ECHO= echo
26+
GREP= grep
27+
GUNZIP= gunzip
28+
GZIP_PROG= gzip
29+
LD= ld
30+
MAKE= make
31+
MKDIR= mkdir
32+
MV= mv
33+
RM= rm
34+
SED= sed
35+
SORT= sort
36+
STRIP= strip
37+
TAR= tar
38+
TR= tr
39+
TRUE= true
40+
UNIQ= uniq
41+
42+
# Set X11_LIBDIR to the directory where the X11 library resides
43+
#
44+
#X11_LIBDIR= /usr/X11R6/lib
45+
#X11_LIBDIR= /usr/X11/lib
46+
X11_LIBDIR= /opt/X11/lib
47+
48+
# Set X11_INCLUDEDIR to the directory where the X11 include files reside
49+
#
50+
#X11_INCDIR= /usr/X11R6/include
51+
#X11_INCDIR= /usr/X11/include
52+
X11_INCDIR= /opt/X11/include
53+
54+
# ANSI compiler
55+
#
56+
# Set CC to the name of your ANSI compiler.
57+
#
58+
CC= cc
59+
60+
61+
###############
62+
# IOCCC winners
63+
###############
64+
#
65+
WINNERS= burton carlini endoh1 endoh2 endoh3 ferguson1 ferguson2 giles \
66+
kurdyukov1 kurdyukov2 kurdyukov3 kurdyukov4 otterness tsoj yang
67+
68+
69+
###################
70+
# build all entries
71+
###################
72+
#
73+
all:
74+
@for i in ${WINNERS} ; do \
75+
${ECHO} "(cd $$i && $(MAKE) X11_LIBDIR=${X11_LIBDIR} X11_INCDIR=${X11_INCDIR} $@)"; \
76+
(cd $$i && $(MAKE) "X11_LIBDIR=${X11_LIBDIR}" "X11_INCDIR=${X11_INCDIR}" $@); \
77+
done
78+
79+
# alternative executable
80+
#
81+
alt:
82+
@for i in ${WINNERS} ; do \
83+
${ECHO} "(cd $$i && $(MAKE) X11_LIBDIR=${X11_LIBDIR} X11_INCDIR=${X11_INCDIR} $@)"; \
84+
(cd $$i && $(MAKE) "X11_LIBDIR=${X11_LIBDIR}" "X11_INCDIR=${X11_INCDIR}" $@); \
85+
done
86+
87+
88+
###############
89+
# utility rules
90+
###############
91+
#
92+
everything: all alt
93+
94+
clean:
95+
@for i in ${WINNERS} ; do \
96+
${ECHO} "(cd $$i && $(MAKE) $@)"; \
97+
(cd $$i && $(MAKE) $@); \
98+
done
99+
100+
clobber:
101+
@for i in ${WINNERS} ; do \
102+
${ECHO} "(cd $$i && $(MAKE) $@)"; \
103+
(cd $$i && $(MAKE) $@); \
104+
done
105+
106+
nuke: clobber
107+
@for i in ${WINNERS} ; do \
108+
${ECHO} "(cd $$i && $(MAKE) $@)"; \
109+
(cd $$i && $(MAKE) $@); \
110+
done
111+
112+
install:
113+
@for i in ${WINNERS} ; do \
114+
${ECHO} "(cd $$i && $(MAKE) $@)"; \
115+
(cd $$i && $(MAKE) $@); \
116+
done
117+
118+
119+
##################
120+
# 133t hacker rulz
121+
##################
122+
#
123+
love:
124+
@for i in ${WINNERS} ; do \
125+
${ECHO} "(cd $$i && $(MAKE) $@)"; \
126+
(cd $$i && $(MAKE) $@); \
127+
done
128+
129+
haste:
130+
@for i in ${WINNERS} ; do \
131+
${ECHO} "(cd $$i && $(MAKE) $@)"; \
132+
(cd $$i && $(MAKE) $@); \
133+
done
134+
135+
waste:
136+
@for i in ${WINNERS} ; do \
137+
${ECHO} "(cd $$i && $(MAKE) $@)"; \
138+
(cd $$i && $(MAKE) $@); \
139+
done
140+
141+
make:
142+
@for i in ${WINNERS} ; do \
143+
${ECHO} "(cd $$i && $(MAKE) $@)"; \
144+
(cd $$i && $(MAKE) $@); \
145+
done
146+
147+
easter_egg:
148+
@for i in ${WINNERS} ; do \
149+
${ECHO} "(cd $$i && $(MAKE) $@)"; \
150+
(cd $$i && $(MAKE) $@); \
151+
done
152+
153+
fabricate fashion form frame manufacture produce:
154+
@for i in ${WINNERS} ; do \
155+
${ECHO} "(cd $$i && $(MAKE) $@)"; \
156+
(cd $$i && $(MAKE) $@); \
157+
done
158+
159+
sandwich:
160+
@for i in ${WINNERS} ; do \
161+
${ECHO} "(cd $$i && $(MAKE) $@)"; \
162+
(cd $$i && $(MAKE) $@); \
163+
done
164+
165+
166+
# The IOCCC resident astronomer states
167+
#
168+
charon: supernova
169+
@for i in ${WINNERS} ; do \
170+
${ECHO} "(cd $$i && $(MAKE) $@)"; \
171+
(cd $$i && $(MAKE) $@); \
172+
done
173+
174+
pluto: supernova
175+
@for i in ${WINNERS} ; do \
176+
${ECHO} "(cd $$i && $(MAKE) $@)"; \
177+
(cd $$i && $(MAKE) $@); \
178+
done

2020/README.text

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
## 2020 marked the "The Twenty Seventh International Obfuscated C Code Contest"
2+
3+
Copyright (C) 2020, Landon Curt Noll, Simon Cooper, and Leonid A.
4+
Broukhis. All Rights Reserved. Permission for personal, educational
5+
or non-profit use is granted provided this copyright and notice are
6+
included in its entirety and remains unaltered. All other uses
7+
must receive prior permission from the contest judges.
8+
9+
10+
## Standard IOCCC stuff
11+
12+
The primary IOCCC web site can be found at,
13+
14+
> <http://www.ioccc.org/>
15+
16+
Use make to compile entries. It is possible that on non-Un\*x / non-Linux
17+
systems the makefile needs to be changed. See the Makefile for details.
18+
19+
Look at the source and try to figure out what the programs do, and run
20+
them with various inputs. If you want to, look at the hints files for
21+
spoilers - this year we included most of the information included
22+
by the submitter.
23+
24+
Read over the makefile for compile/build issues. Your system may require
25+
certain changes (add or remove a library, add or remove a #define).
26+
27+
Some C compilers are not quite as good as they should be. If yours is
28+
lacking, you may need to compile using clang or gcc instead of your local
29+
compiler.
30+
31+
32+
## Remarks on some of the winners
33+
34+
This year's Best of Show (carlini) is such a novel way of obfuscation that it would be
35+
worth of a special mention in the (future) Best of IOCCC list!
36+
37+
For some reason, this year's set of winners contains three nostalgic games,
38+
Asteroids (tsoj), Minesweeper (endoh1), and Snake (ferguson1).
39+
40+
An entry (kurdyukov1) pays homage to a previous winner (2015/hou).
41+
42+
...We'll stop spouting spoilers now. Have fun exploring all the entries!
43+
44+
45+
## Remarks on some of submissions that did not win
46+
47+
As a rule, we try to compile the entries on a variety of platforms.
48+
Quite a few entries this year could not be built or executed on some of them due to reliance on
49+
library internals or the system runtime.
50+
51+
A few entries were violating the "2053 significant bytes" rule. If an entry could not be brought to
52+
compliance within a few seconds of looking at the source, it was disqualified.
53+
54+
One entry tried to get around the size limit by putting the code into
55+
makefile variables and using -D. This is already called out as discouraged
56+
technique in the guidelines, but it is worth a reminder.
57+
58+
Several promising entries attempted to make use of the `syscall` function using literal syscall numbers.
59+
This is utterly non-portable.
60+
61+
A note to the authors: when submitting multiple entries, don't let us easily correlate them by
62+
coding style or documentation content, and definitely don't submit nearly identical versions
63+
of your program separately. As we try to judge the entries anonymously, the similarities will cause such
64+
entries to compete against one another, making each less likely to win.
65+
66+
We hope the authors of non-winning entries will refine their entries and
67+
perhaps re-submit them for the next IOCCC.
68+
69+
## Final Comments
70+
71+
One more thing that feels dated is digraphs and trigraphs.
72+
73+
Please feel free to send us comments and suggestions about the
74+
competition, this README or anything else that you would like to see in
75+
future contests.
76+
77+
If you use, distribute or publish these entries in some way, please drop
78+
us a line. We enjoy seeing who, where and how the contest is used.
79+
80+
If you have problems with any of the entries, AND YOU HAVE A FIX, please
81+
send us the fix (patch file or the entire changed file).
82+
83+
For the latest information on how to contact the IOCCC Judges please visit
84+
85+
> <http://www.ioccc.org/contact.html>
86+
87+
For news of the next contest watch:
88+
89+
> <http://www.ioccc.org/>
90+
91+
-----------------------------------------------------------------------------------------------------
92+
(c) Copyright 1984-2020, [Leo Broukhis, Simon Cooper, Landon Curt Noll][judges] - All rights reserved
93+
This work is licensed under a [Creative Commons Attribution-ShareAlike 3.0 Unported License][cc].
94+
95+
[judges]: http://www.ioccc.org/judges.html
96+
[cc]: http://creativecommons.org/licenses/by-sa/3.0/
97+
-----------------------------------------------------------------------------------------------------

0 commit comments

Comments
 (0)