diff --git a/2013/endoh2/README.md b/2013/endoh2/README.md index 053dab81d..c6c8f4c58 100644 --- a/2013/endoh2/README.md +++ b/2013/endoh2/README.md @@ -32,7 +32,7 @@ Next look at `jpeg.jpg` in an image viewer program. ## Judges' remarks: -\ + This is a program which, when fed its own source, generates a program that almost is its whitespace inverse, which, in its order, generates a JPEG file (speaking of file size abuse, that is about 16.4 times larger than a PBM file @@ -53,6 +53,7 @@ straightforward bitmap comparison. * Discrete cosine transform * JPEG Huffman encoding (cheating) + ### Notes I picked JPEG instead of PNG, GIF, or BMP @@ -67,6 +68,7 @@ year. I think the program will work on any major platforms and compilers. + ### Legal This program uses (a part of) Proggy Tiny Fonts diff --git a/2013/endoh3/README.md b/2013/endoh3/README.md index bae62ff17..fc98f7099 100644 --- a/2013/endoh3/README.md +++ b/2013/endoh3/README.md @@ -4,6 +4,16 @@ make ``` +### Bugs and (Mis)features: + +The current status of this entry is: + +``` +STATUS: INABIAF - please **DO NOT** fix +``` + +For more detailed information see [2013 endoh3 in bugs.md](/bugs.md#2013-endoh3). + ## To use: @@ -23,6 +33,8 @@ The simplest way is to create a .wav file and have your system play that. echo 'CDEFGABc' | ./endoh3 | ruby wavify.rb > cde.wav ``` +Observe how you will need ruby installed. + There are also some other musical samples, twinkle.abc and menuet.abc. @@ -33,6 +45,7 @@ media platforms that have small message length limits. This endoh3ram can toot out a tune that is small enough. + ### A modern day (2023) note about the award 'Most tweetable 1-liner' and twitter: The IOCCC no longer endorses the use of what was once twitter, or whatever it @@ -101,6 +114,7 @@ program: tree](https://en.wikipedia.org/wiki/Stern-Brocot_tree). - How does it generate a wave? Hint: it generates a saw wave. + ### Limitation The following features are supported: @@ -125,6 +139,7 @@ The following features are *NOT* supported: - Any meta fields: `T:title` `L:1/4` - Bar line, repeat, ties and slurs, and everything else. + ### Known Bugs You can *NOT* write a note length immediately followed by a note `E`, @@ -134,6 +149,7 @@ Can you figure out why? A workaround is inserting a whitespace: `C2 E2`. + ### Portability I tested it on: @@ -152,6 +168,7 @@ But I do not attach it to protect you from W\*\*\*\*r. For the same reason, do not post a score that contains only `z1092`. You know, it is ["the famous song"](http://en.wikipedia.org/wiki/4%E2%80%B233%E2%80%B3). + ### Spoiler Here is a magical expression which I found by brute-force: @@ -203,15 +220,15 @@ Finally, the following code generates a saw wave: for(c = 0; c < len; c++) putchar(a = n * D); ``` -where `D` is a frequency and `a` is a variable whose type is char. By assigning -float to char variable, the implicit type conversion is performed from float to -char (modulo 256). +where `D` is a frequency and `a` is a variable whose type is `char`. By +assigning `float` to `char` variable, the implicit type conversion is performed +from `float` to `char` (modulo 256). (Strictly speaking, this behavior is undefined according to 6.3.1.4 in C99; you can replace it with `(long)(n*D)` if you are pedantic.) All that was left was to combine and condense the components. The key is -squashing them into just one for-loop. +squashing them into just one `for`-loop. ## Copyright and CC BY-SA 4.0 License: diff --git a/2013/endoh4/README.md b/2013/endoh4/README.md index 0d79167ce..f9649d0c3 100644 --- a/2013/endoh4/README.md +++ b/2013/endoh4/README.md @@ -65,11 +65,13 @@ This simple spec involves many details. (Note that this program does not use `math.h`.) + ### Portability I think it conforms with both C89 and C99. I confirmed that it worked on gcc, clang, and tcc. It should not be warned with `-pedantic` and `-Wextra`. + ### Tips You may want to use `tput` to hide the terminal cursor. diff --git a/2013/endoh4/run.sh b/2013/endoh4/try.sh similarity index 57% rename from 2013/endoh4/run.sh rename to 2013/endoh4/try.sh index 09d65839a..82b34f2fc 100755 --- a/2013/endoh4/run.sh +++ b/2013/endoh4/try.sh @@ -1,6 +1,19 @@ #!/usr/bin/env bash +# +# try.sh - demonstrate IOCCC winner 2013/endoh4 +# -make all || exit 1 +# make sure CC is set so that when we do make CC="$CC" it isn't empty. Doing it +# this way allows us to have the user specify a different compiler in an easy +# way. +if [[ -z "$CC" ]]; then + CC="cc" +fi + +make CC="$CC" all >/dev/null || exit 1 + +# clear screen after compilation so that only the entry is shown +clear # set it so that when program is terminated through various signals we re-enable # the cursor diff --git a/bugs.md b/bugs.md index c34d09897..49805ac20 100644 --- a/bugs.md +++ b/bugs.md @@ -2907,6 +2907,27 @@ section](2013/endoh1/README.md#spoiler). -- +## 2013 endoh3 + +### STATUS: INABIAF - please **DO NOT** fix +### Source code: [2013/endoh3/endoh3.c](2013/endoh3/endoh3.c) +### Information: [2013/endoh3/README.md](2013/endoh3/README.md) + +From the author: + +-- + +You can *NOT* write a note length immediately followed by a note `E`, +such as `C2E2`. + +Can you figure out why? + +A workaround is inserting a whitespace: `C2 E2`. + +-- + + + ## 2013 hou ### STATUS: INABIAF - please **DO NOT** fix diff --git a/thanks-for-fixes.md b/thanks-for-fixes.md index d618735fd..b37b7262d 100644 --- a/thanks-for-fixes.md +++ b/thanks-for-fixes.md @@ -3589,11 +3589,11 @@ The entry can still be enjoyed if you do not have these tools, however. ## [2013/endoh4](2013/endoh4/endoh4.c) ([README.md](2013/endoh4/README.md)) -[Cody](#cody) added the [run.sh](2013/endoh4/run.sh) script which temporarily turns off -the cursor as suggested by the author, with the addition that if no file is -specified it will feed the source code [endoh4.c](2013/endoh4/endoh4.c) to the -program rather than the file specified. It does not try and detect if the file -exists or can be read as that will be handled by the shell/program. +[Cody](#cody) added the [try.sh](2013/endoh4/try.sh) script which temporarily +turns off the cursor as suggested by the author, with the addition that if no +file is specified it will feed the source code [endoh4.c](2013/endoh4/endoh4.c) +to the program rather than the file specified. It does not try and detect if the +file exists or can be read as that will be handled by the shell/program. ## [2013/hou](2013/hou/hou.c) ([README.md](2013/hou/README.md))