“国际C代码混乱大赛”起始于1984年。一位程序员在看了4.2BSD里的Bourne Shell的源代码后感叹道:“天哪!这太恐怖了!”于是他在USENET的新闻组上提出,如果程序员故意将代码写得乱七八糟,那么代码究竟能乱成什么模样?[主办者的介绍]遂就举办了第一届“C代码混乱大赛”。那一届的规则很简单,就是在512字节内,最大程度的写出混乱但是可以顺利编译的完整C代码。之后,这项比赛持续举办了下去。由于是在互联网上举办的,所以参加人数众多,范围也很广。终于它变成了今天的“国际C代码混乱大赛”,并且成为众“黑客”们一展编程功力和与众不同的想象力的舞台。
年代
| 文件名
| 概要
|
1984
| anonymous
decot
laman
mullender
| prints hello world, where read is write
prints garbage, weird cpp defines (keywords for others)
prints spiralling numbers, laid out in columns
hardcoded vax and pdp-11 code to move :-) across the screen
|
1985
| applin
august
lycklama
shapiro
sicherman
| one-liner to print hello world, with execlp
cpp obfuscated, compressed, main-recursive primes in binary
heavily cpped with o_oo identifiers, scrolls text right
two defines, one 7-liner, results in a maze
rot13 with strange #defs that create comment headers etc.
|
1986
| applin
august
bright
hague
holloway
marshall
pawka
stein
wall
| hello world works under cc, /bin/sh, and f77
struct-heavy e-computation, memory allocation with sbrk
hex dump, cpp compressed, uses lost of << for constants
morse code filter written with 'DIT DAH _DIT DIT_DAH'
prints hello world! via a recursive main
train engine-shaped program prints "choo choo"
prints 'obfuscated?' big, uses xyyyx idents...
prints HHMMSS in UTC time
dvorak keyboard emulator
|
1987
| biggar
heckbert
hines
korn
lievaart
wall
westley
| program: "P;" defined on command line
obfuscated fold program
counts goto's, all ids anagrams of 'goto', all flow w goto
one-liner that prints a message on a Un*x system
very good othello player
roman numeral -> decimal and vice versa conversion
individually palindromic lines prints a palindrome
|
1988
| applin
dale
isaak
litmaath
phillipps
reddy
robison
spinellis
westley
| massive #define stuff, includes itself; prints table of primes
prints command line, using lots of system calls
table driven table of the elements; cpp, self-inclusion
sorts each arg using only argc, argv, and 'while(<cond>);'
'first day of christmas', tables, heavily main() calling
prints name of 'char *(*(foo[16])();', compressed
print e in any base, uses only --, >=, and while()
#include "/dev/tty"
prints '3.141', circle made of '_-_-_-_' in layout
|
1989
| fubar
jar.1
jar.2
ovdluhe
paul
robison
roemer
tromp
vanb
westley
| self-reconstructing, recompiling factorial program
char*_="Hello world.\n";
lisp interpreter, compressed
monkey-typer following template, 'APE' identifiers
print fibonacci base 2 by simulating turing machine
apl-expression interpreter (binary), written in C--
prints e, script-pi shaped layout, _31415 identifiers
squished tetris
one-liner prints all subsets of arguments
reversible, rot13able program that reverses and/or rot13s.
|
1990
| baruch
cmills
dds
dg
jaw
pjr
scjones
stig
tbr
theorem
westley
| short prog to solve N-queens problem
squished blackjack game
basic interpreter, heavily compressed
rot13 done with strange cpp macros
compress & atob standins
the quick brown fox... cppd, structs of functions
trigraph-abusing self-reproducing program
nested-comment tester (all on command line)
simple compressed shell, silly layout
numerically solves the equation y'=f(x,y)
poetic exchange between lovers, prints "luvs me, luvs not"
|
1991
| ant
brnstnd
buzzard
cdupont
davidguy
dds
fine
rince
westley
| compressed vi-like editor
sorta stack language
walk thru a maze from a first person point of view
prints a message without vowels
plays life on a root window, doesn't need Xlib or include files
basic compiler, heavily compressed
rot13s lines of input
game with sprites, boulders, dimonds, and keys
plays tic-tac-toe, compile output for next move, prints board
|
1992
| adrian
albert
ant
buzzard.1
buzzard.2
gson
imc
kivinen
lush
marangon
nathan
vern
westley
| grep-like utility using a state machine transition language
factors multi-precision numbers with factors < MAX_LONG
make utility
print factorial, gcd or prime test using a Babbage-like engine
forth-like stack machine
anagram generator
Mandelbrot/Julia drawer
X11 space invaders, dropout and knockout games
prints "Hello, World" using error messages
game to balance a grid of digits to all 5's
obfuscation by (trivial) encryption (source not exported)
plays chess
print ASCII world map and mark a location by lat/long
|
1993
| ant
cmills
dgibson
ejb
jonth
leo
lmfjyh
plummer
rince
schnitzi
vanb
| egrep utility with Posix-like documentation
X11 program that shatters and bounces windows
plays the game of like using cpp
tower of Hanoi and patience pizzle
game of Tetris
game of mastermind (cows & bulls)
source is the filename, prints value of __FILE__
prints numbers up to a given value
game state machine language, comes with a number of games
answers questions about English text in a file
calculator that prints in octal
|
1994
| dodsond1
dodsond2
horton
imc
ldb
schnitzi
shapiro
smr
tvr
weisberg
westley
| plays a game of othello
Hunt the Wumpus (gziped source)
Plot cubic equations on a tty
print a random n by n magic square
print a random line from stdin
flips stdin along a diagonal (source mirrored along diagonal)
print time of day on an tty
world's smallest self reproducing program
interactive fractals for the X Window System
prints prime numbers
Adventure/Dungeon like game played via the C pre-processor
|
1995
| cdua
dodsond1
dodsond2
esde
garry
heathbar
leob
makarios
savastio
schnitzi
spinellis
vanschnitz
| Generate a maze on the scren and then solve it
Text to "Pig Latin" translator
Interactive 3D Maze
Searches for words in a file which have the same Soundex code
Environment-expansion and binary output via escaped env vars
16 bit addition the easy/hard way
Output interesting patterns and cycles in PostScript
Emits the base 8 representation of prime palindromic in base 8
Infinite-precision factorial calculator
Find divisors: where a core dump is a feature, not a bug
Abusing the rules
Towers of Hanoi via the C pre-processor
|
1996
| august
dalbec
eldby
gandalf
huffman
jonth
rcm
schweikh1
schweikh2
schweikh3
westley
| Subset of C compiler and byte code interpreter
Generator of strong probable-primes to a given base
Flying 3D spheres in an ASCII display
Displays the ASCII and 8 bit character tables
Braille to ASCII and vice versa
X based dual player tic-tac-toe game
Gunzip equivalent
Calculates Easter dates from 1582 to 2199 AD
Search for a limited class of expressions that equal a constant
Determins the memory allocation honesty of the OS
Shows the time on clock with a configurable face and style
|
1997
| ----
| There is no contest in this year.
|
1998
| banks
bas1
bas2
chaos
df
dlowe
dloweneil
dorssel
fanf
schnitzi
schweikh1
schweikh2
schweikh3
tomtorfs
| A flight simulator!
Outputs a gziped 3D beam maze in Postscript
determines the size of stdin under IOCCC sizing rules
Rotates and zooms an object using ASCII graphics
A word guessing game
Pootifies stdin (useful to view Microsoft html files)
A very addictive ASCII poot game
ASCII / Morse code translator
Translates Lambda expressions into combinator expressions
Prints a C program that sorts arguments using strange functions
Tests to see if your compiler and headers are standard
Prints random 0's and 1's; causes some gcc's as passes to choke
Finds duplicate files that waste disk space
CRC generator
|
1999
| ----
| There is no contest in this year,too.
|
2000
| anderson
bellard
bmeyer
briddlebane
dhyang
dlowe
jarijyrki
natori
primenum
rince
robison
schneiderwent
thadgavin
tomx
| ASCII to semaphore code convertor
Prints M6972593 (2^6972593-1) by Modular Fast Fourier Transform
An image compressor
Verbally abuses the user
Saitou Hajime image that prints a prog that prints a prog ...
A dc-style calculator that uses embedded Perl
An X-based spreadsheet program with graphing features!
Phase of the moon
Source with English words that looks like a prime tester
Plots the positions of the four Galilean moons of Jupiter
Highly Compressed Program for Playing Hygienic Checkers
Prints the aproximate time in words
Prints a dazzeling moving image under multiple interfaces
C source, shell program and Makefile
|