release winning entries of IOCCC28 under the year 2024
Congratulations to: * 2024/anders - Prize in sound coding - layered music generator * 2024/burton - Prize in pentagrammatology - wordle hard mode solver * 2024/cable1 - Prize in bot talk - LLM inference engine * 2024/cable2 - Prize in murky waters - salmon recipe * 2024/carlini - Prize in perfect timing - Intel 4004 emulation * 2024/codemeow - Prize in tray planting - bonsai generator * 2024/endoh1 - Prize in patient pointillism - slow ray tracer in CPP * 2024/endoh2 - Prize in solid body physics - rotating rigid body simulation * 2024/ferguson1 - Prize in diabolical logistics - Oregon trail pact with the devil * 2024/ferguson2 - Prize in yil-tas - Navajo code talker translator * 2024/howe - Nice accent eh-ward - mini vi * 2024/kramer - Prize in linguistic arithmetic - natural language numerical calculator * 2024/kurdyukov1 - Prize in phased periodicity - phase of the Moon * 2024/kurdyukov2 - Prize in art restoration - JPEG artifact removal * 2024/kurdyukov3 - Prize in virtual quietus - gaming VM and doom * 2024/kurdyukov4 - Prize in embiggening - encode without literals * 2024/maffiodo - Prize in creative interpretation - Jav\*script interpreter * 2024/mills - Prize in ℤ₃ - Infocom v3 story interpreter * 2024/stedolan - Best one liner - icon from MD5 * 2024/straadt - Prize in imitative rebooting - OpenRISC CPU and Linux * 2024/tmarrec - Prize in cyclonic coding - 3D tornado simulation * 2024/tompng - Prize in quasi bijection - vortex encryptor decryptor * 2024/weaver - Sur prize - rickroll Ran `make update` to perform the above. new file: 2024/burton/.entry.json
This commit is contained in:
1 parent
10512e6c79
commit
09750f8899
443 files changed
+182938
-231
No files matched your search
@@ -0,0 +1,109 @@
|
||||
## To build:
|
||||
|
||||
``` <!---sh-->
|
||||
make all
|
||||
```
|
||||
|
||||
|
||||
## To use:
|
||||
|
||||
``` <!---sh-->
|
||||
echo {10-hex-digits} | ./prog > out.pbm
|
||||
```
|
||||
|
||||
|
||||
## Try:
|
||||
|
||||
``` <!---sh-->
|
||||
md5sum prog.c | ./prog | display -
|
||||
```
|
||||
|
||||
|
||||
## Judges' remarks:
|
||||
|
||||
There are no magic numbers in the program, and bits of the input map to pixels of the output
|
||||
in a regular way, yet it outputs a nice icon for itself, if given the MD5 hash of its own source. How?
|
||||
|
||||
|
||||
## Author's remarks:
|
||||
|
||||
This program is a decoder for a very compact icon format, producing 80x80
|
||||
pixel **pbm images** based on small bitmapped icons:
|
||||
|
||||
``` <!---sh-->
|
||||
echo faf6bdafe6 | ./prog | display - # calendar
|
||||
echo f843928fe0 | ./prog | display - # mail
|
||||
echo f0b42d0bd8 | ./prog | display - # battery
|
||||
echo f39ce33bc0 | ./prog | display - # 1
|
||||
echo f0aced1bc0 | ./prog | display - # 2
|
||||
echo f1b4ed1bc0 | ./prog | display - # 3
|
||||
echo 4010881098 | ./prog | display - # ?
|
||||
echo c6018c7398 | ./prog | display - # !
|
||||
echo de848d2c3c | ./prog | display - # the tetrominos
|
||||
```
|
||||
|
||||
**NOTE**: The use of `| display -` is optional. If omitted,
|
||||
just view the resulting output in a terminal with a small font size.
|
||||
|
||||
**NOTE**: Else if do not have ImageMagick's `display(1)` tool installed
|
||||
the use **pbm image** viewing tool of your choice.
|
||||
|
||||
Effort has been made to reduce the size of the program text to a single
|
||||
longish line (135 characters, including newline). Regrettably, this left no
|
||||
space in which to store the program's own icon, a picture of a computer
|
||||
screen displaying 'C'.
|
||||
|
||||
Accordingly, the program's icon is instead stored in the program's MD5 hash:
|
||||
|
||||
``` <!---sh-->
|
||||
md5sum prog.c | ./prog | display -
|
||||
```
|
||||
|
||||
**NOTE**: On machines without `md5sum(1)`, try `md5` or `openssl md5 -r`.
|
||||
|
||||
|
||||
### Notes
|
||||
|
||||
- While terseness was preferred over obscurity, this program hopefully
|
||||
still lives down to IOCCC's usual standards of clarity.
|
||||
|
||||
The program should be readable to any C programmer familiar with its
|
||||
less common operators, including French-quoted literals (`<<5>>`), the
|
||||
interrobang (`?!`) and the wink (`^-`).
|
||||
|
||||
- To fit on one line, the program commits two anachronistic sins: it
|
||||
assumes an implicit `int` return type for `main`, and it uses several
|
||||
stdlib functions without including the relevant header.
|
||||
|
||||
It can be compiled by switching to `-std=c89` (remembering a time when
|
||||
such crimes were let off with a warning), or by covering up the crimes
|
||||
with `-Dmain='int main' -include stdio.h`, at which point it is valid
|
||||
under any version of C.
|
||||
|
||||
- Even with these compiler options, Clang and GCC with `-Wall` also issue
|
||||
a warning complaining that the program correctly uses weird parts of
|
||||
the C operator precedence table. No apology is made for this one.
|
||||
|
||||
- Several variants of this program were considered. Several.
|
||||
|
||||
- The icon format is compressed, not just bit-packed: there are more
|
||||
pixels in the output than bits in the input.
|
||||
|
||||
- By an astonishing coincidence, the number of bits in the input format
|
||||
is approximately the log2 of the number of MD5 evaluations that a
|
||||
five-year-old GPU can do in an hour.
|
||||
|
||||
|
||||
<!--
|
||||
|
||||
Copyright © 1984-2025 by Landon Curt Noll and Leonid A. Broukhis. All Rights Reserved.
|
||||
|
||||
You are free to share and adapt this file under the terms of this license:
|
||||
|
||||
Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)
|
||||
|
||||
For more information, see:
|
||||
|
||||
https://creativecommons.org/licenses/by-sa/4.0/
|
||||
|
||||
-->
|
||||
Reference in new issue
Block a user