2012 marked the "The Twenty First International Obfuscated C Code Contest" ======================================================================== Copyright (C) 2012, Landon Curt Noll, Simon Cooper, and Leonid A. Broukhis. All Rights Reserved. Permission for personal, educational or non-profit use is granted provided this copyright and notice are included in its entirety and remains unaltered. All other uses must receive prior permission from the contest judges. Standard IOCCC stuff -------------------- The IOCCC has a web site and now has a number of international mirrors. The primary site can be found at, > Use make to compile entries. It is possible that on non-Un\*x / non-Linux systems the makefile needs to be changed. See the Makefile for details. Look at the source and try to figure out what the programs do, and run them with various inputs. If you want to, look at the hints files for spoilers - this year we included most of the information included by the submitter. Read over the makefile for compile/build issues. Your system may require certain changes (add or remove a library, add or remove a #define). Some ANSI C compilers are not quite as good as they should be. If yours is lacking, you may need to compile using gcc instead of your local compiler. Remarks on some of the entries ------------------------------ We believe you will be impressed with this year's winners. We had a very difficult time picking a single best from among the other winners because the overall quality of the winners were so high. This year we selected the top 4 entries for particularly high honors: * Gold award - Balanced use of obfuscation A very extremely subtle and twisted piece of source code! Even if you start with the zeitak_deobfucate.c source, you will still have a very challenging time to understand it! * Silver award - Most elementary use of C A fun program that could also have won "Best abuse of Ghostscript" because it managed to create some PDF files that Ghostscript could not read. * Bronze award - Best use of cocoa A picture within a picture is worth more than a thousand (4 byte) words. :-) * Honorable mention - Most complex ASCII fluid When you see this program in action, you too will very likely say [wow](http://bit.ly/R6ALpK) as we did! But don't ignore the other winners! There are games, utilities, eye candy, calculators and graphical tools to explore. This year, Yusuke Endoh won with two entries, one of which (endoh1) won the special Honorable mention award. Eight of the winning entries were from people who won in previous years. This year we had a number of winners from Asia. We saw our second winner from China and first from Korea. We are pleased to see outstanding entries from areas of the world that have not been active in past contests. Will we see an upswing of entries from South America, Africa and Antarctica next year? :-) Please note that judging is done completely anonymously. Please do NOT reveal your identity in your source code. In the future we may disqualify entries that reveal the identity of the submitter! There were some outstanding entries that did not win. Unfortunately some very good entries lost because they: + would take years to execute + were way way oversize and didn't even attempt to justify their excess by a clever abuse of the rules + obfuscate themselves by simply invoking a complex state machine + depend on a single obfuscation trick + could only be run on a particular vendor's platform + were very similar to previous winners + were based on an overused theme such as yet another fractal display program + didn't work as documented We hope the authors of some of those entries will fix and re-submit them for the next IOCCC. There is a risk in submitting an entry that is similar to a well used theme by previous winners. Previous winners set a very high bar. A new winner must not only compete against other submissions form the current year, they must also excel over similar winners in some particularly impressive way. Final Comments -------------- Please feel free to send us comments and suggestions about the competition, this README or anything else that you would like to see in future contests. If you use, distribute or publish these entries in some way, please drop us a line. We enjoy seeing who, where and how the contest is used. If you have problems with any of the entries, AND YOU HAVE A FIX, please send us the fix (patch file or the entire changed file). For the latest information on how to contact the IOCCC Judges please visit > For news of the next contest watch: > --------------------------------------------------------------------------------