cleanup winner README.md files

Fixed cases where there was a bad trailing backslash.

Improved a few cases where a code block was needed
to highlight some text.

Changed a few cases where a code block needed to
declared as, say, a sh code block.

Fixed a few cases where the winner information was not properly formatted.

Plus a few nits and clarifying text was added.
This commit is contained in:
Landon Curt Noll committed 2023-11-04 03:21:11 -07:00
1 parent 394f710bc3
commit 360708f858
120 files changed
+1198 -1024

No files matched your search

+10 -6
View File
@@ -1,7 +1,8 @@
# Most Useful
Dave Burton <ioccc@snox.net>
<http://snox.net/ioccc>
Dave Burton\
<ioccc@snox.net>\
<http://snox.net/ioccc>
## To build:
@@ -194,17 +195,20 @@ long`. Changing the two `long long` typedefs to `long`, and compiling with `gcc
-m32` yields a program that operates on 32-bit values, with wrap-around of
shifts mod 32:
1<<48
65536 0x00010000
```
1<<48
65536 0x00010000
```
gcc 4.2.1 without arguments compiles cleanly (e.g. cc prog.c -o prog).
This is my workaday compiler. gcc is also clean with -ansi, and -std=c99.
clang 3.6.0 lives up to its namesake, resounding on non-problems.
To stifle these complaints:
\
-Wno-return-type -Wno-parentheses -Wno-empty-body
```
-Wno-return-type -Wno-parentheses -Wno-empty-body
```
When invoked with -ansi -pedantic, there are two warnings, which can be ignored:
+2 -2
View File
@@ -1,7 +1,7 @@
# Most Crafty
Gil Dogon\
<http://sokoban-gild.com>
Gil Dogon\
<http://sokoban-gild.com>
## To build:
+5 -3
View File
@@ -1,7 +1,7 @@
# Best Handwriting
Etienne Duble <etienne.duble@imag.fr>\
<http://lig-membres.imag.fr/duble>
Etienne Duble <etienne.duble@imag.fr>\
<http://lig-membres.imag.fr/duble>
## To build:
@@ -161,7 +161,9 @@ macro `O_o` at the top of the source file.
In order to comply with the size rule, I encoded only a part of the visible ASCII
chars:
a-z, A-Z, '.' ':' ',' ';' '!' and '?'.
```
a-z, A-Z, '.' ':' ',' ';' '!' and '?'.
```
Uppercase and lowercase chars are rendered the same. The program also understand
the space and the linefeed (\n). Other chars are simply ignored (most of the
+11 -9
View File
@@ -158,15 +158,17 @@ This specifies a color used for rendering.
Some interesting parameters are included in `Makefile`. Do one of the following
command and open `http://127.0.0.1:10333`.
$ make gray-scott-1 && tcpserver -v 127.0.0.1 10333 ./gray-scott-1 ioccc.txt
$ make gray-scott-1 && tcpserver -v 127.0.0.1 10333 ./gray-scott-1 center.txt
$ make gray-scott-1 && tcpserver -v 127.0.0.1 10333 ./gray-scott-1 line.txt
$ make gray-scott-2 && tcpserver -v 127.0.0.1 10333 ./gray-scott-2 ioccc.txt
$ make gray-scott-3 && tcpserver -v 127.0.0.1 10333 ./gray-scott-3 ioccc.txt
$ make gray-scott-4 && tcpserver -v 127.0.0.1 10333 ./gray-scott-4 ioccc.txt
$ make fitzhugh-nagumo-1 && tcpserver -v 127.0.0.1 10333 ./fitzhugh-nagumo-1 ioccc.txt
$ make fitzhugh-nagumo-2 && tcpserver -v 127.0.0.1 10333 ./fitzhugh-nagumo-2 ioccc.txt
$ make oregonator && tcpserver -v 127.0.0.1 10333 ./oregonator ioccc.txt
```
make gray-scott-1 && tcpserver -v 127.0.0.1 10333 ./gray-scott-1 ioccc.txt
make gray-scott-1 && tcpserver -v 127.0.0.1 10333 ./gray-scott-1 center.txt
make gray-scott-1 && tcpserver -v 127.0.0.1 10333 ./gray-scott-1 line.txt
make gray-scott-2 && tcpserver -v 127.0.0.1 10333 ./gray-scott-2 ioccc.txt
make gray-scott-3 && tcpserver -v 127.0.0.1 10333 ./gray-scott-3 ioccc.txt
make gray-scott-4 && tcpserver -v 127.0.0.1 10333 ./gray-scott-4 ioccc.txt
make fitzhugh-nagumo-1 && tcpserver -v 127.0.0.1 10333 ./fitzhugh-nagumo-1 ioccc.txt
make fitzhugh-nagumo-2 && tcpserver -v 127.0.0.1 10333 ./fitzhugh-nagumo-2 ioccc.txt
make oregonator && tcpserver -v 127.0.0.1 10333 ./oregonator ioccc.txt
```
These examples are created by drawing (and modifying) the pattern files of
[Ready](https://github.com/GollyGang/ready), a cross-platform implementation of
+14 -10
View File
@@ -32,22 +32,24 @@ cat prog.c
At this point you might be wondering, [WTF](http://acronyms.thefreedictionary.com/WTF)?\*
* What The Freak (polite form)
* What The Freak (polite form)
* What's This For? (you may be wondering)
* What's This For? (you may be wondering)
* What the Fish (python form)
* What the Fish (python form)
How is this code obfuscated? Well look again:
less prog.c
```sh
less prog.c
more prog.c
more prog.c
```
Where did those underscores come from? Well [RTFS](http://acronyms.thefreedictionary.com/RTFS)!\*\*
** Read the Freaking Source (polite form)
** Read The Freakin' Screen (polite form)
** Read the Freaking Source (polite form)
** Read The Freakin' Screen (polite form)
If you are still puzzled, look at prog.c with your favorite text editor.
@@ -56,9 +58,11 @@ If you are still puzzled, look at prog.c with your favorite text editor.
**Follow this instruction literally!**
cat prog.c
gcc -w -o prog prog.c
./prog
```sh
cat prog.c
gcc -w -o prog prog.c
./prog
```
You will do a double take.
+1 -1
View File
@@ -38,7 +38,7 @@ More generally use:
```sh
cc -o prog prog.c foo.c
./prog
^C # if necessary, where ^C is ctrl-C, interrrupt
^C # if necessary, where ^C is ctrl-C, interrrupt
```
to run `prog` as whatever foo.c is in the joke PDP-11 emulator.
+10 -8
View File
@@ -60,14 +60,16 @@ experiment with numbers that have more or larger factors?
Visual factorization 1-liner. Try:
gcc -o prog prog.c
./prog @
./prog @ @
./prog @ @ @
./prog @ @ @ @
./prog @ @ @ @ @ @
./prog @ @ @ @ @ @ @ @
./prog @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @
```sh
gcc -o prog prog.c
./prog @
./prog @ @
./prog @ @ @
./prog @ @ @ @
./prog @ @ @ @ @ @
./prog @ @ @ @ @ @ @ @
./prog @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @
```
Inspired by [Animated Factorization
Diagrams](http://www.datapointed.net/visualizations/math/factorization/animated-diagrams/).
+2 -2
View File
@@ -1,7 +1,7 @@
# Most Well-rounded Hash
Qiming Hou <hqm03ster@gmail.com>\
<http://www.houqiming.net/>
Qiming Hou <hqm03ster@gmail.com>\
<http://www.houqiming.net/>
## To build:
+26 -25
View File
@@ -38,39 +38,40 @@ make clobber all DW=199999 DW=22 DH=16 DA=50 DI=-150
From the Makefile:
```
# Game parameters
#
DU=99999 # Time between steps in microseconds.
# Make it larger if the game is too fast for you.
# Game parameters
#
DU=99999 # Time between steps in microseconds.
# Make it larger if the game is too fast for you.
DW=28 # Pipe-to-pipe spacing, in columns.
# Farther apart is easier.
DW=28 # Pipe-to-pipe spacing, in columns.
# Farther apart is easier.
DD=20 # Space between pipes.
# The difference between DD and DW is the width of a pipe.
# Narrow pipes are easier to fly though.
DD=20 # Space between pipes.
# The difference between DD and DW is the width of a pipe.
# Narrow pipes are easier to fly though.
DH=8 # Height of gap in pipe.
# Make this larger to make the game easier.
DH=8 # Height of gap in pipe.
# Make this larger to make the game easier.
DA=100 # Acceleration due to gravity (scaled by 256).
# Smaller values make you glide slower.
DA=100 # Acceleration due to gravity (scaled by 256).
# Smaller values make you glide slower.
DI=-200 # Impulse velocity of a flap (scaled by 256).
# Make larger if you want an less intense tapping experience!
DI=-200 # Impulse velocity of a flap (scaled by 256).
# Make larger if you want an less intense tapping experience!
DB='"<o^="' # Sprite for player when gliding.
# HINT: Try using various emoji.
# NOTE: The string MUST be enclosed inside double quotes.
DB='"<o^="' # Sprite for player when gliding.
# HINT: Try using various emoji.
# NOTE: The string MUST be enclosed inside double quotes.
DF='"<ov="' # Sprite for player when flapping.
# HINT: Try using various emoji.
# NOTE: The string MUST be enclosed inside double quotes.
DF='"<ov="' # Sprite for player when flapping.
# HINT: Try using various emoji.
# NOTE: The string MUST be enclosed inside double quotes.
DG='"Tap to Flap!"' # Instruction text.
# Change to your native tongue.
# NOTE: The string MUST be enclosed inside double quotes.
DG='"Tap to Flap!"' # Instruction text.
# Change to your native tongue.
# NOTE: The string MUST be enclosed inside double quotes.
```
Enjoy!
+1 -1
View File
@@ -1,6 +1,6 @@
# Most Compact
Chris Mills
Chris Mills
## To build:
+14 -6
View File
@@ -1,7 +1,7 @@
# Most Complete Use of CPP
Dominik Muth\
<muth.ioccc@freenet.de>
Dominik Muth\
<muth.ioccc@freenet.de>
## To build:
@@ -73,17 +73,23 @@ Implementing your own Turing machine is easy. Take a look at the supplied header
Every symbol used (except "`_`") must be explicitly declared using
#define sym_SYMBOL(sym, _SYMBOL) sym
```c
#define sym_SYMBOL(sym, _SYMBOL) sym
```
Example:
#define sym_1(sym, _1) sym
```c
#define sym_1(sym, _1) sym
```
#### Tape
The initial content of the tape must be defined in the tape header using a triple like:
#define tape ((((,),...l2), l1), c, (r1, (r2..., (,))))
```c
#define tape ((((,),...l2), l1), c, (r1, (r2..., (,))))
```
- `l1`, `l2`, ... are the symbols to the left
- `c` is the symbol at the current position
@@ -110,7 +116,9 @@ There must be a state "`A`" defined, which becomes the initial state of the mach
To halt the machine, use the keyword "`break`" as in
#define A_1 (2, break)
```c
#define A_1 (2, break)
```
## Copyright and CC BY-SA 4.0 License:
+67 -57
View File
@@ -1,7 +1,7 @@
# Best Documented
Jens Schweikhardt\
<http://www.schweikhardt.net>
Jens Schweikhardt\
<http://www.schweikhardt.net>
## To build:
@@ -229,6 +229,7 @@ the myriad of possible amino acids there are 23 from which proteins are
built. In biochemistry, each is assigned a TLI (see [Proteinogenic amino
acid](https://en.wikipedia.org/wiki/Proteinogenic_amino_acid)):
```
ala Alanine
cys Cysteine
asp Aspartic acid
@@ -255,15 +256,18 @@ acid](https://en.wikipedia.org/wiki/Proteinogenic_amino_acid)):
glx Glutamic acid or Glutamine
xle Leucine or Isoleucine
unk Unknown
``
My own research results complete this list (not yet in Wikipedia due to
the rule "[No original
research](https://en.wikipedia.org/wiki/Wikipedia:No_original_research)"):
```
and Androgynine
xor Xenoricine
not Notanamine
tla Triletramine
```
Interestingly, the TLI are the perfect mnemonics for C language source.
For example, `met` is "Main's Exit Type" (`int`), `ala` is "A Large
@@ -460,31 +464,33 @@ Since the program frees all memory in all possible execution paths, even when
it must bail out,
valgrind should be happy. An early version of my program however reported this:
$ valgrind --leak-check=full --show-leak-kinds=all ./prog 6
[...]
==14615== HEAP SUMMARY:
==14615== in use at exit: 4,096 bytes in 1 blocks
==14615== total heap usage: 4 allocs, 3 frees, 4,108 bytes allocated
==14615==
==14615== 4,096 bytes in 1 blocks are still reachable in loss record 1 of 1
==14615== at 0x4C236C0: malloc (in /usr/local/lib/valgrind/vgpreload_memcheck-amd64-freebsd.so)
==14615== by 0x4F62175: ??? (in /lib/libc.so.7)
==14615== by 0x4F62073: ??? (in /lib/libc.so.7)
==14615== by 0x4F514EE: ??? (in /lib/libc.so.7)
==14615== by 0x4F51265: vfprintf_l (in /lib/libc.so.7)
==14615== by 0x4F3E001: printf (in /lib/libc.so.7)
==14615== by 0x40101E: phe (in ./prog)
==14615== by 0x400A9F: main (in ./prog)
==14615==
==14615== LEAK SUMMARY:
==14615== definitely lost: 0 bytes in 0 blocks
==14615== indirectly lost: 0 bytes in 0 blocks
==14615== possibly lost: 0 bytes in 0 blocks
==14615== still reachable: 4,096 bytes in 1 blocks
==14615== suppressed: 0 bytes in 0 blocks
==14615==
==14615== For counts of detected and suppressed errors, rerun with: -v
==14615== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
```
valgrind --leak-check=full --show-leak-kinds=all ./prog 6
[...]
==14615== HEAP SUMMARY:
==14615== in use at exit: 4,096 bytes in 1 blocks
==14615== total heap usage: 4 allocs, 3 frees, 4,108 bytes allocated
==14615==
==14615== 4,096 bytes in 1 blocks are still reachable in loss record 1 of 1
==14615== at 0x4C236C0: malloc (in /usr/local/lib/valgrind/vgpreload_memcheck-amd64-freebsd.so)
==14615== by 0x4F62175: ??? (in /lib/libc.so.7)
==14615== by 0x4F62073: ??? (in /lib/libc.so.7)
==14615== by 0x4F514EE: ??? (in /lib/libc.so.7)
==14615== by 0x4F51265: vfprintf_l (in /lib/libc.so.7)
==14615== by 0x4F3E001: printf (in /lib/libc.so.7)
==14615== by 0x40101E: phe (in ./prog)
==14615== by 0x400A9F: main (in ./prog)
==14615==
==14615== LEAK SUMMARY:
==14615== definitely lost: 0 bytes in 0 blocks
==14615== indirectly lost: 0 bytes in 0 blocks
==14615== possibly lost: 0 bytes in 0 blocks
==14615== still reachable: 4,096 bytes in 1 blocks
==14615== suppressed: 0 bytes in 0 blocks
==14615==
==14615== For counts of detected and suppressed errors, rerun with: -v
==14615== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
```
From which I concluded that `printf` allocated a single 4K block for
which no matching free existed. But how to free memory allocated deep
@@ -499,30 +505,32 @@ of C99 7.19.5.1, "The fclose function", was encouraging:
So I `fclose(stdout)` before returning and now:
$ valgrind --leak-check=full --show-leak-kinds=all ./prog 6
==14571== Memcheck, a memory error detector
==14571== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al.
==14571== Using Valgrind-3.10.0 and LibVEX; rerun with -h for copyright info
==14571== Command: ./prog 6
==14571==
0000000000000006
0000000000000003 1
000000000000000A 2
0000000000000005 3
0000000000000010 4
0000000000000008 5
0000000000000004 6
0000000000000002 7
0000000000000001 8
==14571==
==14571== HEAP SUMMARY:
==14571== in use at exit: 0 bytes in 0 blocks
==14571== total heap usage: 4 allocs, 4 frees, 4,120 bytes allocated
==14571==
==14571== All heap blocks were freed -- no leaks are possible
==14571==
==14571== For counts of detected and suppressed errors, rerun with: -v
==14571== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
```
valgrind --leak-check=full --show-leak-kinds=all ./prog 6
==14571== Memcheck, a memory error detector
==14571== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al.
==14571== Using Valgrind-3.10.0 and LibVEX; rerun with -h for copyright info
==14571== Command: ./prog 6
==14571==
0000000000000006
0000000000000003 1
000000000000000A 2
0000000000000005 3
0000000000000010 4
0000000000000008 5
0000000000000004 6
0000000000000002 7
0000000000000001 8
==14571==
==14571== HEAP SUMMARY:
==14571== in use at exit: 0 bytes in 0 blocks
==14571== total heap usage: 4 allocs, 4 frees, 4,120 bytes allocated
==14571==
==14571== All heap blocks were freed -- no leaks are possible
==14571==
==14571== For counts of detected and suppressed errors, rerun with: -v
==14571== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
```
A squeaky clean valgrind result!
@@ -532,10 +540,10 @@ FlexeLint is a commercial lint tool by [Gimpel
Software](http://www.gimpel.com/html/index.htm). It supports nearly a
thousand checks, broadly categorized into 4 levels,
1. Syntax errors only (messages 1 to 399)
2. Warnings (messages 400 to 699)
3. Informational messages (700 to 899)
4. Elective notes (900 to 1000 and > 9000)
1. Syntax errors only (messages 1 to 399)
2. Warnings (messages 400 to 699)
3. Informational messages (700 to 899)
4. Elective notes (900 to 1000 and > 9000)
There is an [on-line
demonstrator](http://www.gimpel-online.com/OnlineTesting.html) you can
@@ -543,6 +551,7 @@ use for checking your C programs and I highly recommend trying it. For a start,
paste the well know first program in the form and press "Analyze Code". Note
the FlexeLint configuration options in comments (no space between `/*` and `lint`).
```c
/*lint -w4 turn on everything */
/*lint +esym(534,*) no demonstrator defaults */
/*lint -e966 indirectly included header file not used */
@@ -555,7 +564,7 @@ the FlexeLint configuration options in comments (no space between `/*` and `lint
printf("hello, world\n");
return 0;
}
```
Possible checks include those for MISRA 2004 compliance verification.
The [Motor Industry Software Reliability
@@ -581,7 +590,7 @@ the remaining messages by addressing them or suppressing them in such a way
that the set of suppressions was minimal. At the end of the day, this is
what remained:
```
// === Tested with FlexeLint 9.00L on FreeBSD 11 ===
// Compiler:
// "4.2.1 Compatible FreeBSD Clang 3.6.1 (tags/RELEASE_361/final 237755)"
@@ -643,6 +652,7 @@ what remained:
-elib(9047) // FILE pointer dereferenced
-esym(9058,__*) // tag not used outside typedef
-e9092 // NULL does not expand to a pointer (but plain 0)
```
### Compulsory obfuscations