Files
ioccc/2012/konno
Landon Curt Noll 11dfe51c6c move IOCCC Quick Start Guide
Created `quick-start.md` to hold the FAQ 0.0 content.

Used `sgit(1)` to change:

* faq.html#enter ==> quick-start.html#enter
* faq.html#enter_questions ==> quick-start.html#enter_questions
* faq.html#step_0 ==> quick-start.html#step_0
* faq.html#step_1 ==> quick-start.html#step_1
* faq.html#step_2 ==> quick-start.html#step_2
* faq.html#register ==> quick-start.html#register
* faq.html#step_3 ==> quick-start.html#step_3
* faq.html#step_4 ==> quick-start.html#step_4
* faq.html#step_5 ==> quick-start.html#step_5
* faq.html#step_6 ==> quick-start.html#step_6
* faq.html#step_7 ==> quick-start.html#step_7
* faq.html#step_submit ==> quick-start.html#step_submit

Via:

```sh
sgit -e 's/faq\.html#enter/quick-start.html#enter/g' '*.md' '*.hdr' 'inc/*.html'
sgit -e 's/faq\.html#enter_questions/quick-start.html#enter_questions/g' '*.md' '*.hdr' 'inc/*.html'
sgit -e 's/faq\.html#step_0/quick-start.html#step_0/g' '*.md' '*.hdr' 'inc/*.html'
sgit -e 's/faq\.html#step_1/quick-start.html#step_1/g' '*.md' '*.hdr' 'inc/*.html'
sgit -e 's/faq\.html#step_2/quick-start.html#step_2/g' '*.md' '*.hdr' 'inc/*.html'
sgit -e 's/faq\.html#register/quick-start.html#register/g' '*.md' '*.hdr' 'inc/*.html'
sgit -e 's/faq\.html#step_3/quick-start.html#step_3/g' '*.md' '*.hdr' 'inc/*.html'
sgit -e 's/faq\.html#step_4/quick-start.html#step_4/g' '*.md' '*.hdr' 'inc/*.html'
sgit -e 's/faq\.html#step_5/quick-start.html#step_5/g' '*.md' '*.hdr' 'inc/*.html'
sgit -e 's/faq\.html#step_6/quick-start.html#step_6/g' '*.md' '*.hdr' 'inc/*.html'
sgit -e 's/faq\.html#step_7/quick-start.html#step_7/g' '*.md' '*.hdr' 'inc/*.html'
sgit -e 's/faq\.html#step_submit/quick-start.html#step_submit/g' '*.md' '*.hdr' 'inc/*.html'
```

The former FAQ 0.0 section in `faq.html` now just refers to `quick-start.html`.

Modified menu and non-JS menu so that "Enter the IOCCC" refers to `quick-start.html`.

Changed `bin/gen-top-html.sh` VERSION from "1.4.10 2024-11-23"
to "1.4.11 2025-01-09".

Performed `make www` on macOS to complete the above.
2025-01-09 23:11:43 -08:00
..
2025-01-09 23:11:43 -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.