Files
ioccc/2012/konno
Landon Curt Noll c78bda6c0f update tarballs due to recent commits
The commit a1c86c8a7a modified
the navigation bars to include "Original C", so all tarballs
had be update, sorry (tm Canada 🇨🇦).  In particular:

The navigation bar for a winning entry now has a "_Original C_" link
(between the ✅ and the Inventory on the right hand side) so that one
may easily view the original C code that was submitted for IOCCC judging.

In addition, a number of other commits since that time
modified other winning entries.

Ran `make update` to perform the above.
2025-08-18 16:30:59 -07:00
..
2020-12-30 16:57:03 -08:00
2023-07-06 21:49:38 -07:00
2024-02-23 08:52:56 -08:00

To build:

    make

There is an unobfuscated version of this entry. See Alternate code below.

To use:

    ./konno N

Try:

    ./try.sh

    # you can also specify numbers to try before the random and preselected ones:
    ./try.sh 111 222 333 444 555 666 777 888 999

Try running try.sh a number of times as the first part randomly selects ten numbers to try.

Alternate code:

An alternate version of this entry, konno.alt.c, is provided. This alternate code is an unobfuscated version of the winning code.

Alternate build:

    make alt

Alternate use:

Use konno.alt as you would konno above.

Judges' remarks:

This entry is a good one-liner to analyze completely.

For extra credit, what are the minimal changes to convert it to 64-bit integers so that it could print 32 lines?

Author's remarks:

Remarks

This program outputs elementary cellular automaton patterns.

Try:

    ./konno 30
    ./konno 90
    ./konno 102
    ./konno 109
    ./konno 165

There are 256 (from 0 through 255) possible rules.

Obfuscation

This program uses bit operations. I think

    7&O<<!o>>!o+29

is an interesting operation. This isn't equal to

    7&O>>29

operation. What is the operation doing?

Limitation

This program assumes that the size of int is 4.