From b06023f3302dd67c65cf5577c7bb4d7a7e39fde4 Mon Sep 17 00:00:00 2001 From: Cody Boone Ferguson <53008573+xexyl@users.noreply.github.com> Date: Sat, 27 Jan 2024 04:44:32 -0800 Subject: [PATCH] update index.html and .winner.json per recent manifest changes --- 1994/westley/index.html | 129 ++++++++++++++++++++++++++---------- 2011/eastman/index.html | 6 +- 2011/richards/index.html | 8 ++- 2011/vik/index.html | 40 +++++++---- 2011/zucker/index.html | 11 +++- 2012/endoh1/index.html | 139 +++++++++++++++++++++------------------ 2012/grothe/index.html | 6 +- 2012/hamano/index.html | 21 ++++-- 2012/kang/index.html | 25 +++++-- 2012/konno/index.html | 8 ++- 2013/cable3/index.html | 8 +-- 11 files changed, 260 insertions(+), 141 deletions(-) diff --git a/1994/westley/index.html b/1994/westley/index.html index 5cce6f306..acfc18fd2 100644 --- a/1994/westley/index.html +++ b/1994/westley/index.html @@ -117,25 +117,78 @@ Location: US
make allNOTE: the purpose of this entry is to escape the dungeon via the -compiler line where you get messages as compiler -errors. Depending on the compiler line you will get different -error messages and one compiler line will make you win the game!
-NOTE: your terminal should be set to 80 columns, 8 character tabs, -and wraparound.
+make altWe recommend that you try the alternate version first as the original +entry requires (for better display) 80 columns and 8 character tabs with +wraparound.
+The alt code uses the same logic as the original code except that the
+original code used #includes of files that do not exist to
+generate the messages (as compiler errors) whereas the alt code uses
+printf(3). For the original entry see Original code below.
There is no running as such. See below.
-But for something more interesting try compiling it with different cc -arguments. For example:
-cc -Describe -Door westley.c
-cc -Describe -Drain westley.c./westley.altThe purpose of the game is to escape the dungeon. Depending on the +compiler line you will get a different message when you run the program. +One compiler line will make you win the game (escape the dungeon) and +others will show something else.
+This is independent of the previous (if there are any previous) +compiler invocations specified. That means with the right compiler +invocation you can ‘win’ the game on the first go.
+There are a variety of different -D flags you give to
+cc that change the message you get. You might wish to look
+at the source code to get a better idea or
+see below in the Try section for running the game
+from start to finish.
For something more interesting try compiling it with different
+cc -D arguments and then run the program each time. For
+example:
cc -Describe -Door westley.alt.c -o westley.alt && ./westley.alt
+cc -Describe -Drain westley.alt.c -o westley.alt && ./westley.altTo see the game from start to finish, try:
+./try.alt.shThe purpose of the game is to escape the dungeon via the +compiler line where you get messages as compiler +errors. Depending on the compiler line you will get +different error messages and one compiler line will make you win the +game!
+NOTE: your terminal should be set to 80 columns, 8 character tabs, +and wraparound. The alternate code does not have this limitation and it +is for this reason that we recommend you try it first.
+make allThere are a variety of different -D flags you can give
+to cc that change the message you get. You might wish to
+look at the source code to get a better idea or
+see below in the Original try section for
+running the game from start to finish.
There is no running of this program directly as it is supposed to
+fail to compile: the purpose of the game is to escape the dungeon but
+depending on the compiler line you will get a different message
+(as compiler errors due to #include files
+not existing). One compiler line will make you win the game (escape the
+dungeon) and others will show something else.
This is independent of the previous (if there are any previous) +compiler invocations specified. That means with the right compiler +invocation you can ‘win’ the game on the first go. But unlike the alternate code, you do not run this program as +it will not compile: instead it will be compiler error messages; there +is no running the program.
+For something more interesting try compiling it with different
+cc -D arguments:
cc -Describe -Door westley.c
+cc -Describe -Drain westley.cTo see the game from start to complete, try:
+./try.shNot all compiler errors are bad.
For spoilers see the end of the notes from the author below.
To use:
-./try.sh./try.shThis program, in accordance with the rules, compiles into a legal C program without human intervention. However, it simply compiles into @@ -144,7 +197,7 @@ to actually compile the program.
This program is a simple adventure game which uses only C
preprocessor error messages (for missing #include files) as
output. To begin, try to compile the program with no options:
cc westley.ccc westley.cThis will fail, producing an error message for a missing
#include file as the opening description. Your terminal
should be set for 80 columns, 8 character tabs, and wraparound, as there
@@ -163,7 +216,8 @@ this (text massaged to change wraparound to separate lines):
To “do” things, all words must start with -D. For
example, to look at the door, do:
cc -Describe -Door prog.ccc -Describe -Door prog.c…and you will get another error message telling you about the door. (note: some compilers will stop after the first missing include file, while others will continue to try compiling; the latter will repeat the @@ -172,24 +226,25 @@ opening message each time, as if you are playing an adventure game with
The goal of the game is to escape the dungeon.
Here is a walk-through for the game, including a few dead-ends:
cc -Describe -Door westley.c
-cc -Describe -Drain westley.c
-cc -Describe -Dwarf westley.c
-cc -Describe -Debris westley.c # or -Dungeon
-cc -Describe -Desk westley.c
-cc -Describe -Dime westley.c
-cc -Describe -Directory westley.c
-cc -Dial -DUNgeon0614 westley.c
-cc -Drink -Daiquiri westley.c
-cc -Drop -Daiquiri westley.c
-cc -Drop -Dwarf -Daiquiri westley.c # or -Drop -Down -Daiquiri
-cc -Describe -Document westley.c
-cc -Depress -Dotted -Dog westley.c
-cc -Depress -Dalmatian westley.c # also accepts "Dalmation" [sic]
-cc -Deposit -Dime westley.c
-cc -Drop -Donut westley.c
-cc -Drop -Donut -Down -Drain westley.c # or -Drop -Dwarf -Donut
-# (at this point, you win!)cc -Describe -Door westley.c
+cc -Describe -Drain westley.c
+cc -Describe -Dwarf westley.c
+cc -Describe -Debris westley.c # or -Dungeon
+cc -Describe -Desk westley.c
+cc -Describe -Dime westley.c
+cc -Describe -Directory westley.c
+cc -Dial -DUNgeon0614 westley.c
+cc -Drink -Daiquiri westley.c
+cc -Drop -Daiquiri westley.c
+cc -Drop -Dwarf -Daiquiri westley.c # or -Drop -Down -Daiquiri
+cc -Describe -Document westley.c
+cc -Depress -Dotted -Dog westley.c
+cc -Depress -Dalmatian westley.c # also accepts "Dalmation" [sic]
+cc -Deposit -Dime westley.c
+cc -Drop -Donut westley.c
+cc -Drop -Donut -Down -Drain westley.c # or -Drop -Dwarf -Donut
+# (at this point, you win!)Note that the game has no real state information; you can type these commands in any order, at any time. Also note that word order is unimportant.
@@ -215,9 +270,15 @@ href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1994/westley/west href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1994/westley/Makefile">Makefile - winner Makefilemake./eastmanNOTE: to restore your cursor in your shell, try
+reset.
Quit the program. Resize your terminal window. Run it again.
+Run the program. Quit it (ctrl-c/intr). Resize your terminal window. +Run it again. Try doing this a number of times with different sizes each +time.
./eastmanNOTE: to restore your cursor in your shell, try
reset.
For more detailed information see 2011 richards in bugs.md.
./richards./try.shecho '10 9 8 7 6 5 4 3 2 1*p*p*p*p*p*p*p*p*p' | ./richards
echo '64 256 128 p/p*p' | ./richards./vik file.mod > audio_file.raw./vik randowan.mod | mplayer -demuxer rawaudio -
-./vik mad_world.mod | mplayer -demuxer rawaudio -Alternatively, you can use:
+If you have mplayer(1):
./vik file.mod | mplayer -demuxer rawaudio -Alternatively, you can convert the file to a WAV:
./vik file.mod > file.raw; ./raw2wav file.raw > file.wavIt is possible to download a number of music module files from The Mod Archive.
+and then play file.wav with a program that can play WAV
+files.
./try.shThe script checks that you have mplayer(1) installed and
+if it is it will pipe vik to mplayer. In this
+case it will also use raw2wav to convert the file to a WAV
+file. If mplayer(1) cannot be found it will just use
+raw2wav. This way even if one has an
+mplayer(1) that fails or is for some reason not what is
+expected they can at least play the WAV file manually.
It is also possible to download a number of music module files from +The Mod Archive.
This version is based on the author’s remarks and it should work for Windows.
Assuming that make is similar enough try:
make altmake altUse vik.alt as you would vik above.
Does it take your system a long time to compile? You may want to do:
-cc -S vik.ccc -S vik.cand examine the resulting assembly file vik.s. On some
platforms the assembly file is about 128MB in size!
NOTE: The randowan.mod and
Compiling for Unix systems (including cygwin) is straight
forward: (Don’t forget the last Build
gcc -o vik vik.cgcc -o vik vik.cUsage
Convert MOD
file to raw 44.1kHz stereo audio file
-./vik mad_world.mod > audio_file.raw./vik mad_world.mod > audio_file.rawListen to the MOD
file (streaming to mplayer)
-./vik randowan.mod | mplayer -demuxer rawaudio -./vik randowan.mod | mplayer -demuxer rawaudio -- as it makes mplayer read from
stdin.)Obfuscation
@@ -242,7 +253,7 @@ is that the program relies on writing binary data to
compile the program with this platform, the following line can be added
after the main declaration in order for the program to run
correctly:
_setmode(_fileno(stdout), 0x8000);_setmode(_fileno(stdout), 0x8000);NOTE: this is what the alternate version is for.
./zucker > image.ppmNow open image.ppm with your image viewer of choice.
./zucker "Hello\!\!\!" > hello.ppm
-./zucker faster\! -preview > image2.ppmDisplay the PPM image with your favorite image viewer.
+./try.shAfter running try.sh, open the PPM images
+ioccc.ppm, hello.ppm and
+image2.ppm with your image viewer of choice.
This version uses the Windows functions _setmode() and
_fileno() to set binary mode on stdout which
@@ -304,6 +306,9 @@ href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2011/zucker/zucke
- original source
There are two alt versions that let you control the compile time variables that control the fluid behaviour and the added variables to speed up or slow down the fluid as well as setting a timeout (if not 0): -one for the original black and white and the colour one added by the -author at the request of the judges. Another version is the deobfuscated -version provided by the author as well. See alternate code below for more details.
+one for the original black and white and one for the colour one added by +the author (at the request of the judges at the time of the contest). +Another version is the deobfuscated version provided by the author as +well. See the Alternate code section below +for more details../endoh1 < configuration.txt./endoh1 < fileWARNING: if you’re sensitive to/don’t like flashing colours/text or +just want to see what this looks like not going so fast then you might +wish to try the Alternate code +instead.
./endoh1 < endoh1.c
-
-./endoh1 < pour-out.txt
-
-./endoh1 < fountain.txtAlso try using endoh1_color as you would
-endoh1 above. make will compile this by
-default.
./try.bw.sh endoh1.c
+./try.sh endoh1.c
+
+./try.bw.sh pour-out.txt
+./try.sh pour-out.txt
+
+./try.bw.sh fountain.txt
+./try.sh fountain.txtThe files endoh1.alt.c and endoh1_color.alt.c correspond to
For the default values, try: The In the If you wish to change the speed you should do: where WARNING: if you’re sensitive to flashing colours or any flashing at
-all do make sure you don’t decrease the value of If however you wish to change the gravity factor, pressure factor
-and/or viscosity factor, you should redefine the values Alternate build:
make alt alt2alt2 is only necessary if you wish to compile the
-deobfuscated version but it is equivalent in function to the original
-entry, endoh1.c.make altalt versions a default time of 10 seconds is set
as an alarm so that one can more easily go through the list of files to
-see them all in succession for fun. That is controlled by the variable
-A; 0 disables it.make clobber SLEEP=N altN is number or the letter I.S, the
-sleep time passed to usleep(3), too much.G,
-P and/or V macros, respectively, with the same
-caveat about numbers for S above. For instance if you wish
-to change the viscosity and pressure factors but leave the other macros
-alone:make clobber VISCOSITY=X PRESSURE=Y altTIMER at compilation. For instance if you wish to change
+the value to 5:
make clobber TIMER=5 altIf you want to disable the alarm time, set it to 0:
+make clobber TIMER=0 altIt cannot be < 0 or > 60 (arbitrarily selected).
+The SLEEP variable is to delay the time between updates
+to make it easier to see and to not flash too quickly. The code protects
+against a value < 0 and defaults to 12321 but you can change it to.
+For instance to slow it down you could increase the sleep time from
+12321 to 50000:
make clobber SLEEP=50000 altIf you wish to speed it up you might decrease the sleep time from
+12321 to 9999:
make clobber SLEEP=9999 altWARNING: the lower the value the faster it will flash so be careful +if you’re sensitive to this.
+If you wish to change the gravity factor, pressure factor and/or
+viscosity factor, you should redefine the values GRAVITY,
+PRESSURE and/or VISCOSITY macros,
+respectively. For instance if you wish to change the viscosity and
+pressure factors but leave the other values alone:
make clobber VISCOSITY=X PRESSURE=Y altwhere X and Y are numbers or the letter
I and which are, respectively, the viscosity and pressure
-factors.
There is no restriction on what the number is because doing so
+factors. There is no attempt to check the value or type because doing so
prevents the macros from being defined to I which would
prevent the author’s remarks about it from being done.
If you want to disable the alarm time, set A to 0:
make clobber TIMER=0 altIt cannot be < 0 or > 60 (arbitrarily selected).
-Try slowing down the display by increasing the sleep time from
-12321 to 50000:
make clobber SLEEP=50000 altNow try using both endoh1.alt and
-endoh1_color.alt as you would endoh1
-above.
Also try speeding up the display by decreasing the sleep time from
-12321 to 9999:
make clobber SLEEP=9999 alt2WARNING: again, be careful with too low a value if you’re sensitive -to flashing colours or anything at all.
-Now try using both endoh1.alt and
-endoh1_color.alt as you would endoh1
-above.
You might also wish to try redefining the macros G,
P and/or V. For instance:
See the author’s remarks for details on these macros.
+See the author’s remarks for details on these macros where:
+G = GRAVITY
+P = PRESSURE
+V = VISCOSITY
Use To see two different ways run on the source file and each of the text
files, try: The second run of each will be with the gravity factor set to
To see the same thing but in the original uncoloured version,
+try: Let’s play Jeopardy!endoh1.alt, endoh1_color.alt and
endoh1.alt2 as you would endoh1 and
@@ -204,10 +200,14 @@ class="sourceCode sh">Alternate try:
./try.alt.sh./try.alt.shI../try.alt.bw.shJudges’ remarks:
DO NOT FORGET -DG=1 -DP=4 -DV=8 and
make your terminal window larger than 80 x 25.
cc endoh1.c -DG=1 -DP=4 -DV=8 -D_BSD_SOURCE -o endoh1 -lm
-./endoh1 < endoh1.c
-./endoh1 < logo.txt
-./endoh1 < column.txt
-./endoh1 < pour-out.txt
-./endoh1 < tanada.txtcc endoh1.c -DG=1 -DP=4 -DV=8 -D_BSD_SOURCE -o endoh1 -lm
+./endoh1 < endoh1.c
+./endoh1 < logo.txt
+./endoh1 < column.txt
+./endoh1 < pour-out.txt
+./endoh1 < tanada.txt ,___. ,. ,. ,. ,___. ,. ,. ,.
|/--' || `' || |/--' `' || |\_.
@@ -281,10 +281,10 @@ may require -D_BSD_SOURCE or so to build with no warning.
Under these conditions, it should be portable. At least, recent
compilers with -std=c99 -Wall -W -Wextra -pedantic say
nothing.
-gcc -DG=1 -DP=4 -DV=8 -D_BSD_SOURCE -std=c99 -Wall -W -Wextra -pedantic endoh1.c
-
-clang -DG=1 -DP=4 -DV=8 -D_BSD_SOURCE -std=c99 -Wall -W -Wextra -pedantic endoh1.c
+gcc -DG=1 -DP=4 -DV=8 -D_BSD_SOURCE -std=c99 -Wall -W -Wextra -pedantic endoh1.c
+
+clang -DG=1 -DP=4 -DV=8 -D_BSD_SOURCE -std=c99 -Wall -W -Wextra -pedantic endoh1.c
I expect it to work in any Unix-like environment. VTxxx/ANSI
sequences are used to clear screen and move cursor to home.
I’ve tested with gcc-4.6.3 and clang-3.0 on Linux (Ubuntu 12.04) and
@@ -420,9 +420,18 @@ href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/endoh1/pour-
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/endoh1/tanada.txt">tanada.txt
- fluid initial state as text
try.alt.bw.sh
+- how to run alternate code in black and white
+try.alt.sh
- how to run alternative code
try.bw.sh
+- try.alt.bw.sh
+try.sh
+- how to run in color
+endoh1_color.c
- alternative source using terminal 256 colors
2012_endoh1.tar.bz2 - download
diff --git a/2012/grothe/index.html b/2012/grothe/index.html
index 4ee977256..c91e4786d 100644
--- a/2012/grothe/index.html
+++ b/2012/grothe/index.html
@@ -130,11 +130,7 @@ href="/temp-test-ioccc/location.html#FR">FR
N+1 or more shared files with their proper numbers):
./grothe I-sharedI J-sharedJ K-sharedK ... +reconstructed
Try:
-./grothe -grothe.c 1+grothe.c.1 2+grothe.c.2
-
-./grothe -cookie_recipe.txt 1-/dev/urandom 2-/dev/urandom 1+cookie_piece1.dat 2+cookie_piece2.dat 3+cookie_piece3.dat 4+cookie_piece4.dat
-
-./grothe 1-cookie_piece1.dat 2-cookie_piece2.dat 4-cookie_piece4.dat 4+cookie_recipe_restore.txt
+./try.sh
Judges’ remarks:
Also known as ‘Best abuse of the judging process’.
The IOCCC 2012 submission page didn’t enforce the 2048 meaningful
diff --git a/2012/hamano/index.html b/2012/hamano/index.html
index aac0874f5..d35548977 100644
--- a/2012/hamano/index.html
+++ b/2012/hamano/index.html
@@ -133,12 +133,21 @@ the file directly instead.
One of the PDF files generated is this README.md file as a PDF,
obfuscated, and the PDF file will then be compiled as C (itself!) and
executed so that it shows README.md!
-Another PDF file generated is obfuscated C code. Once this is done it
-will compile the PDF as if it was C and then run it like:
-echo 'int main(){puts("Hello World!");}' | ./hamano > hello.pdf
-cc -Wno-implicit-function-declaration -xc hello.pdf -o hello2
-./hello2 | gcc -Wno-implicit-function-declaration -xc - -o ./hello3
-./hello3
+That procedure looks like:
+./hamano < README.md > hint.pdf
+cc -xc hint.pdf -o hint
+./hint
+Another PDF generated is an obfuscated Hello World!
+program (obfuscated inside the PDF). Once this is done it will compile
+the PDF as if it was C (itself!). It will look like:
+echo 'int main(){puts("Hello World!");}' | ./hamano > hello.pdf
+cc -xc hello.pdf -o hello
+./hello | cc -Wno-implicit-function-declaration -xc - -o ./hello2
+
+./hello2
+although the CFLAGS will be what is in the Makefile as
+it uses the helper rules hint.pdf, hint,
+hello.pdf and hello to do this.
Judges’ remarks:
This entry treads into a new territory for IOCCC - generating PDF
files.
diff --git a/2012/kang/index.html b/2012/kang/index.html
index 6eb0b66ec..8f5151ca4 100644
--- a/2012/kang/index.html
+++ b/2012/kang/index.html
@@ -138,20 +138,28 @@ know German where the sound of ‘V’ is ‘F’ and so the program had the
letter be ‘F’. A problem, however, with changing it is that it breaks
other words including in German. Thus there is the alternate version
instead which fixes a problem for Germans that causes problems for
-Germans so if you’re German you’ll just have to deal with it :-) It is,
-however, good as you might be able appreciate the entry even more.
+Germans so if you’re German you’ll just have to deal with it :-) It also
+breaks other words too and this happens only for one letter change. With
+this one should hopefully be able to really appreciate the subtlety of
+this entry even more.
Alternate build:
make alt
Alternate use:
-echo vier | ./kang.alt
-echo uno | ./kang.alt
+echo "full spelling of an English cardinal numeral less than a quadrillion" | ./kang.alt
+
+echo vier | ./kang.alt
+
+echo uno | ./kang.alt
Alternate try:
-./de.alt.sh # German 0 through 13 both with and without umlaut
-./en.alt.sh # English 0 through 13
+./try.alt.sh # try various languages
+
+./en.alt.sh # English 0 through 13
+
+./de.alt.sh # German 0 through 13 with both umlauts and without (additional 'e')
What does it get right? What does it get wrong? How does it compare
to the original entry without the change of f to
v?
-Finally why does it get what it gets wrong wrong?
+Finally why does it get wrong what it gets wrong?
Judges’ remarks:
The judges were able to appreciate the Indo-European language family
relation by making this entry successfully recognize some
@@ -331,6 +339,9 @@ href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/kang/en.alt.
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/kang/en.sh">en.sh
- English words for 1 through 13
try.alt.sh
+- how to run alternate code
+try.sh
- how to run
2012_kang.tar.bz2 - download winning
diff --git a/2012/konno/index.html b/2012/konno/index.html
index cd93f1c2f..466958b2e 100644
--- a/2012/konno/index.html
+++ b/2012/konno/index.html
@@ -122,9 +122,13 @@ Location: JP
href="#alternate-code">Alternate code below.
To use:
./konno N
-NOTE: N is an integer from 0 to 255.
Try:
-./try.sh
+./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
diff --git a/2013/cable3/index.html b/2013/cable3/index.html
index 5c332c96f..c0bb9b9b3 100644
--- a/2013/cable3/index.html
+++ b/2013/cable3/index.html
@@ -124,7 +124,7 @@ section below.
To use:
./cable3 bios-image-file floppy-image-file [harddisk-image-file]
Try:
-./runme
+./cable3.sh
NOTE: to quit the program type QUITEMU. You might have
to be at the top level directory of the drive, A: or
C:.
@@ -292,7 +292,7 @@ shell script that looks something like:
stty cbreak raw -echo min 0
./cable3 bios floppy.img harddisk.img
stty cooked echo
-See the runme script.
+See the cable3.sh script.
To use the emulator -
floppy mode only
The simplest use of the emulator is with a single floppy boot disk
@@ -301,7 +301,7 @@ disk.
Before running the emulator on a Unix-type system, stty
needs to be used to put the keyboard into raw mode (and afterwards it
needs to be put back to cooked). So, run the emulator using something
-like this script (provided as runme):
+like this script (provided as cable3.sh):
stty cbreak raw -echo min 0
./cable3 bios fd.img
stty cooked echo
@@ -569,7 +569,7 @@ href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/cable3/cable
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/cable3/cable3.orig.c">cable3.orig.c
- original source
runme
+href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/cable3/cable3.sh">cable3.sh
- how to run
screenshot_autocad.png -
Screenshots of some applications running on macOS