update index.html and .winner.json per recent manifest changes

This commit is contained in:
Cody Boone Ferguson committed 2024-01-27 04:44:32 -08:00
1 parent c4477a67d8
commit b06023f330
11 files changed
+260 -141

No files matched your search

+95 -34
View File
@@ -117,25 +117,78 @@ Location: <a href="/temp-test-ioccc/location.html#US">US</a></p>
<!-- END: next line ends content generated by: bin/gen-author.sh -->
<h2 id="to-build">To build:</h2>
<div class="sourceCode" id="cb1"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span> all</span></code></pre></div>
<p>NOTE: the purpose of this entry is to escape the dungeon via the
compiler line where you <strong>get messages as compiler
errors</strong>. Depending on the compiler line you will get different
error messages and one compiler line will make you win the game!</p>
<p>NOTE: your terminal should be set to 80 columns, 8 character tabs,
and wraparound.</p>
<div class="sourceCode" id="cb1"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span> alt</span></code></pre></div>
<p>We recommend that you try the alternate version first as the original
entry requires (for better display) 80 columns and 8 character tabs with
wraparound.</p>
<p>The alt code uses the same logic as the original code except that the
original code used <code>#include</code>s of files that do not exist to
generate the messages (as compiler errors) whereas the alt code uses
<code>printf(3)</code>. For the original entry see <a
href="#original-code">Original code</a> below.</p>
<h2 id="to-use">To use:</h2>
<p>There is no running as such. See below.</p>
<h2 id="try">Try:</h2>
<p>But for something more interesting try compiling it with different cc
arguments. For example:</p>
<div class="sourceCode" id="cb2"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="fu">cc</span> <span class="at">-Describe</span> <span class="at">-Door</span> westley.c</span>
<span id="cb2-2"><a href="#cb2-2" aria-hidden="true" tabindex="-1"></a><span class="fu">cc</span> <span class="at">-Describe</span> <span class="at">-Drain</span> westley.c</span></code></pre></div>
<div class="sourceCode" id="cb2"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./westley.alt</span></span></code></pre></div>
<p>The 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.</p>
<p><em>This is independent of the previous (if there are any previous)
compiler invocations</em> specified. That means with the right compiler
invocation you can ‘win’ the game on the first go.</p>
<p>There are a variety of different <code>-D</code> flags you give to
<code>cc</code> that change the message you get. You might wish to look
at the <a href="westley.alt.c">source code</a> to get a better idea or
see below in the <a href="#try">Try</a> section for running the game
from start to finish.</p>
<h3 id="try">Try:</h3>
<p>For something more interesting try compiling it with different
<code>cc -D</code> arguments and then run the program each time. For
example:</p>
<div class="sourceCode" id="cb3"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a><span class="fu">cc</span> <span class="at">-Describe</span> <span class="at">-Door</span> westley.alt.c <span class="at">-o</span> westley.alt <span class="kw">&amp;&amp;</span> <span class="ex">./westley.alt</span></span>
<span id="cb3-2"><a href="#cb3-2" aria-hidden="true" tabindex="-1"></a><span class="fu">cc</span> <span class="at">-Describe</span> <span class="at">-Drain</span> westley.alt.c <span class="at">-o</span> westley.alt <span class="kw">&amp;&amp;</span> <span class="ex">./westley.alt</span></span></code></pre></div>
<p>To see the game from start to finish, try:</p>
<div class="sourceCode" id="cb4"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./try.alt.sh</span></span></code></pre></div>
<h2 id="original-code">Original code:</h2>
<p>The purpose of the game is to escape the dungeon <strong>via the
compiler line where you get <em>messages as compiler
errors</em></strong>. Depending on the compiler line you will get
different error messages and one compiler line will make you win the
game!</p>
<p>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.</p>
<h3 id="original-build">Original build:</h3>
<div class="sourceCode" id="cb5"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span> all</span></code></pre></div>
<p>There are a variety of different <code>-D</code> flags you can give
to <code>cc</code> that change the message you get. You might wish to
look at the <a href="westley.c">source code</a> to get a better idea or
see below in the <a href="#original-try">Original try</a> section for
running the game from start to finish.</p>
<h2 id="original-use">Original use:</h2>
<p>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
(<strong>as compiler errors</strong> due to <code>#include</code> files
not existing). One compiler line will make you win the game (escape the
dungeon) and others will show something else.</p>
<p><em>This is independent of the previous (if there are any previous)
compiler invocations</em> specified. That means with the right compiler
invocation you can ‘win’ the game on the first go. But unlike the <a
href="westley.alt.c">alternate code</a>, you do not run this program as
it will not compile: instead it will be compiler error messages; there
is no running the program.</p>
<h2 id="original-try">Original try:</h2>
<p>For something more interesting try compiling it with different
<code>cc -D</code> arguments:</p>
<div class="sourceCode" id="cb6"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb6-1"><a href="#cb6-1" aria-hidden="true" tabindex="-1"></a><span class="fu">cc</span> <span class="at">-Describe</span> <span class="at">-Door</span> westley.c</span>
<span id="cb6-2"><a href="#cb6-2" aria-hidden="true" tabindex="-1"></a><span class="fu">cc</span> <span class="at">-Describe</span> <span class="at">-Drain</span> westley.c</span></code></pre></div>
<p>To see the game from start to complete, try:</p>
<div class="sourceCode" id="cb7"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb7-1"><a href="#cb7-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./try.sh</span></span></code></pre></div>
<h2 id="judges-remarks">Judges’ remarks:</h2>
<p>Not all compiler errors are bad.</p>
<p>For spoilers see the end of the notes from the author below.</p>
<p>To use:</p>
<div class="sourceCode" id="cb3"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./try.sh</span></span></code></pre></div>
<div class="sourceCode" id="cb8"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb8-1"><a href="#cb8-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./try.sh</span></span></code></pre></div>
<h2 id="authors-remarks">Author’s remarks:</h2>
<p>This 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.</p>
<p>This program is a simple adventure game which uses only C
preprocessor error messages (for missing <code>#include</code> files) as
output. To begin, try to compile the program with no options:</p>
<div class="sourceCode" id="cb4"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a><span class="fu">cc</span> westley.c</span></code></pre></div>
<div class="sourceCode" id="cb9"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb9-1"><a href="#cb9-1" aria-hidden="true" tabindex="-1"></a><span class="fu">cc</span> westley.c</span></code></pre></div>
<p>This will fail, producing an error message for a missing
<code>#include</code> 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):</p>
missing include file name, which functions as the game text.</p>
<p>To “do” things, all words must start with <code>-D</code>. For
example, to look at the door, do:</p>
<div class="sourceCode" id="cb6"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb6-1"><a href="#cb6-1" aria-hidden="true" tabindex="-1"></a><span class="fu">cc</span> <span class="at">-Describe</span> <span class="at">-Door</span> prog.c</span></code></pre></div>
<div class="sourceCode" id="cb11"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb11-1"><a href="#cb11-1" aria-hidden="true" tabindex="-1"></a><span class="fu">cc</span> <span class="at">-Describe</span> <span class="at">-Door</span> prog.c</span></code></pre></div>
<p>…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
<p>The goal of the game is to escape the dungeon.</p>
<p>Here is a walk-through for the game, including a few dead-ends:</p>
<h3 id="spoiler">SPOILER</h3>
<div class="sourceCode" id="cb7"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb7-1"><a href="#cb7-1" aria-hidden="true" tabindex="-1"></a><span class="fu">cc</span> <span class="at">-Describe</span> <span class="at">-Door</span> westley.c</span>
<span id="cb7-2"><a href="#cb7-2" aria-hidden="true" tabindex="-1"></a><span class="fu">cc</span> <span class="at">-Describe</span> <span class="at">-Drain</span> westley.c</span>
<span id="cb7-3"><a href="#cb7-3" aria-hidden="true" tabindex="-1"></a><span class="fu">cc</span> <span class="at">-Describe</span> <span class="at">-Dwarf</span> westley.c</span>
<span id="cb7-4"><a href="#cb7-4" aria-hidden="true" tabindex="-1"></a><span class="fu">cc</span> <span class="at">-Describe</span> <span class="at">-Debris</span> westley.c <span class="co"># or -Dungeon</span></span>
<span id="cb7-5"><a href="#cb7-5" aria-hidden="true" tabindex="-1"></a><span class="fu">cc</span> <span class="at">-Describe</span> <span class="at">-Desk</span> westley.c</span>
<span id="cb7-6"><a href="#cb7-6" aria-hidden="true" tabindex="-1"></a><span class="fu">cc</span> <span class="at">-Describe</span> <span class="at">-Dime</span> westley.c</span>
<span id="cb7-7"><a href="#cb7-7" aria-hidden="true" tabindex="-1"></a><span class="fu">cc</span> <span class="at">-Describe</span> <span class="at">-Directory</span> westley.c</span>
<span id="cb7-8"><a href="#cb7-8" aria-hidden="true" tabindex="-1"></a><span class="fu">cc</span> <span class="at">-Dial</span> <span class="at">-DUNgeon0614</span> westley.c</span>
<span id="cb7-9"><a href="#cb7-9" aria-hidden="true" tabindex="-1"></a><span class="fu">cc</span> <span class="at">-Drink</span> <span class="at">-Daiquiri</span> westley.c</span>
<span id="cb7-10"><a href="#cb7-10" aria-hidden="true" tabindex="-1"></a><span class="fu">cc</span> <span class="at">-Drop</span> <span class="at">-Daiquiri</span> westley.c</span>
<span id="cb7-11"><a href="#cb7-11" aria-hidden="true" tabindex="-1"></a><span class="fu">cc</span> <span class="at">-Drop</span> <span class="at">-Dwarf</span> <span class="at">-Daiquiri</span> westley.c <span class="co"># or -Drop -Down -Daiquiri</span></span>
<span id="cb7-12"><a href="#cb7-12" aria-hidden="true" tabindex="-1"></a><span class="fu">cc</span> <span class="at">-Describe</span> <span class="at">-Document</span> westley.c</span>
<span id="cb7-13"><a href="#cb7-13" aria-hidden="true" tabindex="-1"></a><span class="fu">cc</span> <span class="at">-Depress</span> <span class="at">-Dotted</span> <span class="at">-Dog</span> westley.c</span>
<span id="cb7-14"><a href="#cb7-14" aria-hidden="true" tabindex="-1"></a><span class="fu">cc</span> <span class="at">-Depress</span> <span class="at">-Dalmatian</span> westley.c <span class="co"># also accepts &quot;Dalmation&quot; [sic]</span></span>
<span id="cb7-15"><a href="#cb7-15" aria-hidden="true" tabindex="-1"></a><span class="fu">cc</span> <span class="at">-Deposit</span> <span class="at">-Dime</span> westley.c</span>
<span id="cb7-16"><a href="#cb7-16" aria-hidden="true" tabindex="-1"></a><span class="fu">cc</span> <span class="at">-Drop</span> <span class="at">-Donut</span> westley.c</span>
<span id="cb7-17"><a href="#cb7-17" aria-hidden="true" tabindex="-1"></a><span class="fu">cc</span> <span class="at">-Drop</span> <span class="at">-Donut</span> <span class="at">-Down</span> <span class="at">-Drain</span> westley.c <span class="co"># or -Drop -Dwarf -Donut</span></span>
<span id="cb7-18"><a href="#cb7-18" aria-hidden="true" tabindex="-1"></a><span class="co"># (at this point, you win!)</span></span></code></pre></div>
<div class="sourceCode" id="cb12"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb12-1"><a href="#cb12-1" aria-hidden="true" tabindex="-1"></a><span class="fu">cc</span> <span class="at">-Describe</span> <span class="at">-Door</span> westley.c</span>
<span id="cb12-2"><a href="#cb12-2" aria-hidden="true" tabindex="-1"></a><span class="fu">cc</span> <span class="at">-Describe</span> <span class="at">-Drain</span> westley.c</span>
<span id="cb12-3"><a href="#cb12-3" aria-hidden="true" tabindex="-1"></a><span class="fu">cc</span> <span class="at">-Describe</span> <span class="at">-Dwarf</span> westley.c</span>
<span id="cb12-4"><a href="#cb12-4" aria-hidden="true" tabindex="-1"></a><span class="fu">cc</span> <span class="at">-Describe</span> <span class="at">-Debris</span> westley.c <span class="co"># or -Dungeon</span></span>
<span id="cb12-5"><a href="#cb12-5" aria-hidden="true" tabindex="-1"></a><span class="fu">cc</span> <span class="at">-Describe</span> <span class="at">-Desk</span> westley.c</span>
<span id="cb12-6"><a href="#cb12-6" aria-hidden="true" tabindex="-1"></a><span class="fu">cc</span> <span class="at">-Describe</span> <span class="at">-Dime</span> westley.c</span>
<span id="cb12-7"><a href="#cb12-7" aria-hidden="true" tabindex="-1"></a><span class="fu">cc</span> <span class="at">-Describe</span> <span class="at">-Directory</span> westley.c</span>
<span id="cb12-8"><a href="#cb12-8" aria-hidden="true" tabindex="-1"></a><span class="fu">cc</span> <span class="at">-Dial</span> <span class="at">-DUNgeon0614</span> westley.c</span>
<span id="cb12-9"><a href="#cb12-9" aria-hidden="true" tabindex="-1"></a><span class="fu">cc</span> <span class="at">-Drink</span> <span class="at">-Daiquiri</span> westley.c</span>
<span id="cb12-10"><a href="#cb12-10" aria-hidden="true" tabindex="-1"></a><span class="fu">cc</span> <span class="at">-Drop</span> <span class="at">-Daiquiri</span> westley.c</span>
<span id="cb12-11"><a href="#cb12-11" aria-hidden="true" tabindex="-1"></a><span class="fu">cc</span> <span class="at">-Drop</span> <span class="at">-Dwarf</span> <span class="at">-Daiquiri</span> westley.c <span class="co"># or -Drop -Down -Daiquiri</span></span>
<span id="cb12-12"><a href="#cb12-12" aria-hidden="true" tabindex="-1"></a><span class="fu">cc</span> <span class="at">-Describe</span> <span class="at">-Document</span> westley.c</span>
<span id="cb12-13"><a href="#cb12-13" aria-hidden="true" tabindex="-1"></a><span class="fu">cc</span> <span class="at">-Depress</span> <span class="at">-Dotted</span> <span class="at">-Dog</span> westley.c</span>
<span id="cb12-14"><a href="#cb12-14" aria-hidden="true" tabindex="-1"></a><span class="fu">cc</span> <span class="at">-Depress</span> <span class="at">-Dalmatian</span> westley.c <span class="co"># also accepts &quot;Dalmation&quot; [sic]</span></span>
<span id="cb12-15"><a href="#cb12-15" aria-hidden="true" tabindex="-1"></a><span class="fu">cc</span> <span class="at">-Deposit</span> <span class="at">-Dime</span> westley.c</span>
<span id="cb12-16"><a href="#cb12-16" aria-hidden="true" tabindex="-1"></a><span class="fu">cc</span> <span class="at">-Drop</span> <span class="at">-Donut</span> westley.c</span>
<span id="cb12-17"><a href="#cb12-17" aria-hidden="true" tabindex="-1"></a><span class="fu">cc</span> <span class="at">-Drop</span> <span class="at">-Donut</span> <span class="at">-Down</span> <span class="at">-Drain</span> westley.c <span class="co"># or -Drop -Dwarf -Donut</span></span>
<span id="cb12-18"><a href="#cb12-18" aria-hidden="true" tabindex="-1"></a><span class="co"># (at this point, you win!)</span></span></code></pre></div>
<p>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.</p>
@@ -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</a>
- winner Makefile</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1994/westley/westley.alt.c">westley.alt.c</a>
- alternative source</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1994/westley/westley.orig.c">westley.orig.c</a>
- original source</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1994/westley/try.alt.sh">try.alt.sh</a>
- how to run alternative code</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1994/westley/try.sh">try.sh</a>
- how to run</li>
<li><a href="1994_westley.tar.bz2">1994_westley.tar.bz2</a> - download
+5 -1
View File
@@ -120,8 +120,12 @@ Location: <a href="/temp-test-ioccc/location.html#US">US</a></p>
<div class="sourceCode" id="cb1"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span></span></code></pre></div>
<h2 id="to-use">To use:</h2>
<div class="sourceCode" id="cb2"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./eastman</span></span></code></pre></div>
<p>NOTE: to restore your cursor in your shell, try
<code>reset</code>.</p>
<h2 id="try">Try:</h2>
<p>Quit the program. Resize your terminal window. Run it again.</p>
<p>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.</p>
<div class="sourceCode" id="cb3"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./eastman</span></span></code></pre></div>
<p>NOTE: to restore your cursor in your shell, try
<code>reset</code>.</p>
+7 -1
View File
@@ -125,7 +125,7 @@ href="/temp-test-ioccc/location.html#US">US</a></p>
<p>For more detailed information see <a
href="/bugs.md#2011-richards">2011 richards in bugs.md</a>.</p>
<h2 id="to-use">To use:</h2>
<div class="sourceCode" id="cb3"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./richards</span></span></code></pre></div>
<div class="sourceCode" id="cb3"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./try.sh</span></span></code></pre></div>
<h2 id="try">Try:</h2>
<div class="sourceCode" id="cb4"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a><span class="bu">echo</span> <span class="st">&#39;10 9 8 7 6 5 4 3 2 1*p*p*p*p*p*p*p*p*p&#39;</span> <span class="kw">|</span> <span class="ex">./richards</span></span>
<span id="cb4-2"><a href="#cb4-2" aria-hidden="true" tabindex="-1"></a><span class="bu">echo</span> <span class="st">&#39;64 256 128 p/p*p&#39;</span> <span class="kw">|</span> <span class="ex">./richards</span></span></code></pre></div>
@@ -223,6 +223,12 @@ href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2011/richards/ric
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2011/richards/richards.orig.c">richards.orig.c</a>
- original source</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2011/richards/try.alt.sh">try.alt.sh</a>
- how to run alternative code</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2011/richards/try.sh">try.sh</a>
- how to run</li>
<li><a href="2011_richards.tar.bz2">2011_richards.tar.bz2</a> - download
winning source</li>
</ul>
+27 -13
View File
@@ -127,19 +127,29 @@ href="#alternate-code">alternate code</a> below.</p>
vik in bugs.md</a>.</p>
<h2 id="to-use">To use:</h2>
<div class="sourceCode" id="cb3"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./vik</span> file.mod <span class="op">&gt;</span> audio_file.raw</span></code></pre></div>
<h2 id="try">Try:</h2>
<div class="sourceCode" id="cb4"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./vik</span> randowan.mod <span class="kw">|</span> <span class="ex">mplayer</span> <span class="at">-demuxer</span> rawaudio <span class="at">-</span></span>
<span id="cb4-2"><a href="#cb4-2" aria-hidden="true" tabindex="-1"></a><span class="ex">./vik</span> mad_world.mod <span class="kw">|</span> <span class="ex">mplayer</span> <span class="at">-demuxer</span> rawaudio <span class="at">-</span></span></code></pre></div>
<p>Alternatively, you can use:</p>
<p>If you have <code>mplayer(1)</code>:</p>
<div class="sourceCode" id="cb4"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./vik</span> file.mod <span class="kw">|</span> <span class="ex">mplayer</span> <span class="at">-demuxer</span> rawaudio <span class="at">-</span></span></code></pre></div>
<p>Alternatively, you can convert the file to a WAV:</p>
<div class="sourceCode" id="cb5"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./vik</span> file.mod <span class="op">&gt;</span> file.raw<span class="kw">;</span> <span class="ex">./raw2wav</span> file.raw <span class="op">&gt;</span> file.wav</span></code></pre></div>
<p>It is possible to download a number of music module files from <a
href="http://modarchive.org">The Mod Archive</a>.</p>
<p>and then play <code>file.wav</code> with a program that can play WAV
files.</p>
<h2 id="try">Try:</h2>
<div class="sourceCode" id="cb6"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb6-1"><a href="#cb6-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./try.sh</span></span></code></pre></div>
<p>The script checks that you have <code>mplayer(1)</code> installed and
if it is it will pipe <code>vik</code> to <code>mplayer</code>. In this
case it will also use <code>raw2wav</code> to convert the file to a WAV
file. If <code>mplayer(1)</code> cannot be found it will just use
<code>raw2wav</code>. This way even if one has an
<code>mplayer(1)</code> that fails or is for some reason not what is
expected they can at least play the WAV file manually.</p>
<p>It is also possible to download a number of music module files from
<a href="http://modarchive.org">The Mod Archive</a>.</p>
<h2 id="alternate-code">Alternate code:</h2>
<p>This version is based on the author’s remarks and it should work for
Windows.</p>
<h3 id="alternate-build">Alternate build:</h3>
<p>Assuming that <code>make</code> is similar enough try:</p>
<div class="sourceCode" id="cb6"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb6-1"><a href="#cb6-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span> alt</span></code></pre></div>
<div class="sourceCode" id="cb7"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb7-1"><a href="#cb7-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span> alt</span></code></pre></div>
<h3 id="alternate-use">Alternate use:</h3>
<p>Use <code>vik.alt</code> as you would <code>vik</code> above.</p>
<h2 id="judges-remarks">Judges’ remarks:</h2>
@@ -150,7 +160,7 @@ initialized 32MB array. Can you tell what that partial initialization
for?</p>
<p>Does it take your system a long time to compile? You may want to
do:</p>
<div class="sourceCode" id="cb7"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb7-1"><a href="#cb7-1" aria-hidden="true" tabindex="-1"></a><span class="fu">cc</span> <span class="at">-S</span> vik.c</span></code></pre></div>
<div class="sourceCode" id="cb8"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb8-1"><a href="#cb8-1" aria-hidden="true" tabindex="-1"></a><span class="fu">cc</span> <span class="at">-S</span> vik.c</span></code></pre></div>
<p>and examine the resulting assembly file <code>vik.s</code>. On some
platforms the assembly file is about 128MB in size!</p>
<p>NOTE: The <a href="randowan.mod">randowan.mod</a> and <a
@@ -201,15 +211,16 @@ Henrik Bertilsson, also known as Deelite:</p>
<h3 id="build">Build</h3>
<p>Compiling for Unix systems (including cygwin) is straight
forward:</p>
<div class="sourceCode" id="cb8"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb8-1"><a href="#cb8-1" aria-hidden="true" tabindex="-1"></a><span class="fu">gcc</span> <span class="at">-o</span> vik vik.c</span></code></pre></div>
<div class="sourceCode" id="cb9"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb9-1"><a href="#cb9-1" aria-hidden="true" tabindex="-1"></a><span class="fu">gcc</span> <span class="at">-o</span> vik vik.c</span></code></pre></div>
<h3 id="usage">Usage</h3>
<h4 id="convert-mod-file-to-raw-44.1khz-stereo-audio-file">Convert MOD
file to raw 44.1kHz stereo audio file</h4>
<div class="sourceCode" id="cb9"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb9-1"><a href="#cb9-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./vik</span> mad_world.mod <span class="op">&gt;</span> audio_file.raw</span></code></pre></div>
<div class="sourceCode" id="cb10"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb10-1"><a href="#cb10-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./vik</span> mad_world.mod <span class="op">&gt;</span> audio_file.raw</span></code></pre></div>
<h4 id="listen-to-the-mod-file-streaming-to-mplayer">Listen to the MOD
file (streaming to mplayer)</h4>
<div class="sourceCode" id="cb10"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb10-1"><a href="#cb10-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./vik</span> randowan.mod <span class="kw">|</span> <span class="ex">mplayer</span> <span class="at">-demuxer</span> rawaudio <span class="at">-</span></span></code></pre></div>
<div class="sourceCode" id="cb11"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb11-1"><a href="#cb11-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./vik</span> randowan.mod <span class="kw">|</span> <span class="ex">mplayer</span> <span class="at">-demuxer</span> rawaudio <span class="at">-</span></span></code></pre></div>
<p>(Don’t forget the last <code>-</code> as it makes mplayer read from
<code>stdin</code>.)</p>
<h3 id="obfuscation">Obfuscation</h3>
@@ -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:</p>
<div class="sourceCode" id="cb11"><pre class="sourceCode c"><code class="sourceCode c"><span id="cb11-1"><a href="#cb11-1" aria-hidden="true" tabindex="-1"></a>_setmode<span class="op">(</span>_fileno<span class="op">(</span>stdout<span class="op">),</span> <span class="bn">0x8000</span><span class="op">);</span></span></code></pre></div>
<div class="sourceCode" id="cb12"><pre class="sourceCode c"><code class="sourceCode c"><span id="cb12-1"><a href="#cb12-1" aria-hidden="true" tabindex="-1"></a>_setmode<span class="op">(</span>_fileno<span class="op">(</span>stdout<span class="op">),</span> <span class="bn">0x8000</span><span class="op">);</span></span></code></pre></div>
<p>NOTE: this is what the <a href="#alternate-code">alternate
version</a> is for.</p>
<h3 id="limitations">Limitations</h3>
@@ -282,6 +293,9 @@ module sound data</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2011/vik/raw2wav">raw2wav</a>
- convert raw format to wav format</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2011/vik/try.sh">try.sh</a>
- how to run</li>
<li><a href="2011_vik.tar.bz2">2011_vik.tar.bz2</a> - download winning
source</li>
</ul>
+8 -3
View File
@@ -123,10 +123,12 @@ distinguishes binary mode from text mode. See <a
href="#alternate-code">alternate code</a> below.</p>
<h2 id="to-use">To use:</h2>
<div class="sourceCode" id="cb2"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./zucker</span> <span class="op">&gt;</span> image.ppm</span></code></pre></div>
<p>Now open <code>image.ppm</code> with your image viewer of choice.</p>
<h2 id="try">Try:</h2>
<div class="sourceCode" id="cb3"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./zucker</span> <span class="st">&quot;Hello\!\!\!&quot;</span> <span class="op">&gt;</span> hello.ppm</span>
<span id="cb3-2"><a href="#cb3-2" aria-hidden="true" tabindex="-1"></a><span class="ex">./zucker</span> faster<span class="dt">\!</span> <span class="at">-preview</span> <span class="op">&gt;</span> image2.ppm</span></code></pre></div>
<p>Display the PPM image with your favorite image viewer.</p>
<div class="sourceCode" id="cb3"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./try.sh</span></span></code></pre></div>
<p>After running <code>try.sh</code>, open the PPM images
<code>ioccc.ppm</code>, <code>hello.ppm</code> and
<code>image2.ppm</code> with your image viewer of choice.</p>
<h2 id="alternate-code">Alternate code:</h2>
<p>This version uses the Windows functions <code>_setmode()</code> and
<code>_fileno()</code> to set binary mode on <code>stdout</code> which
@@ -304,6 +306,9 @@ href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2011/zucker/zucke
- original source</li>
<li><a href="sphere-tracing.pdf">sphere-tracing.pdf</a> - research paper
on antialiased ray tracing</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2011/zucker/try.sh">try.sh</a>
- how to run</li>
<li><a href="2011_zucker.tar.bz2">2011_zucker.tar.bz2</a> - download
winning source</li>
</ul>
+74 -65
View File
@@ -120,21 +120,26 @@ Location: <a href="/temp-test-ioccc/location.html#JP">JP</a></p>
<p>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 <a
href="#alternate-code">alternate code</a> below for more details.</p>
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 <a href="#alternate-code">Alternate code</a> section below
for more details.</p>
<h2 id="to-use">To use:</h2>
<div class="sourceCode" id="cb2"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./endoh1</span> <span class="op">&lt;</span> configuration.txt</span></code></pre></div>
<div class="sourceCode" id="cb2"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./endoh1</span> <span class="op">&lt;</span> file</span></code></pre></div>
<p>WARNING: 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 <a href="#alternate-code">Alternate code</a>
instead.</p>
<h2 id="try">Try:</h2>
<div class="sourceCode" id="cb3"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./endoh1</span> <span class="op">&lt;</span> endoh1.c</span>
<span id="cb3-2"><a href="#cb3-2" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb3-3"><a href="#cb3-3" aria-hidden="true" tabindex="-1"></a><span class="ex">./endoh1</span> <span class="op">&lt;</span> pour-out.txt</span>
<span id="cb3-4"><a href="#cb3-4" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb3-5"><a href="#cb3-5" aria-hidden="true" tabindex="-1"></a><span class="ex">./endoh1</span> <span class="op">&lt;</span> fountain.txt</span></code></pre></div>
<p>Also try using <code>endoh1_color</code> as you would
<code>endoh1</code> above. <code>make</code> will compile this by
default.</p>
<div class="sourceCode" id="cb3"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./try.bw.sh</span> endoh1.c</span>
<span id="cb3-2"><a href="#cb3-2" aria-hidden="true" tabindex="-1"></a><span class="ex">./try.sh</span> endoh1.c</span>
<span id="cb3-3"><a href="#cb3-3" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb3-4"><a href="#cb3-4" aria-hidden="true" tabindex="-1"></a><span class="ex">./try.bw.sh</span> pour-out.txt</span>
<span id="cb3-5"><a href="#cb3-5" aria-hidden="true" tabindex="-1"></a><span class="ex">./try.sh</span> pour-out.txt</span>
<span id="cb3-6"><a href="#cb3-6" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb3-7"><a href="#cb3-7" aria-hidden="true" tabindex="-1"></a><span class="ex">./try.bw.sh</span> fountain.txt</span>
<span id="cb3-8"><a href="#cb3-8" aria-hidden="true" tabindex="-1"></a><span class="ex">./try.sh</span> fountain.txt</span></code></pre></div>
<h2 id="alternate-code">Alternate code:</h2>
<p>The files <a href="endoh1.alt.c">endoh1.alt.c</a> and <a
href="endoh1_color.alt.c">endoh1_color.alt.c</a> correspond to <a
@@ -145,50 +150,38 @@ or slow down the fluid and change the behaviour of the fluid. The file
provided by the author.</p>
<h3 id="alternate-build">Alternate build:</h3>
<p>For the default values, try:</p>
<div class="sourceCode" id="cb4"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span> alt alt2</span></code></pre></div>
<p>The <code>alt2</code> is only necessary if you wish to compile the
deobfuscated version but it is equivalent in function to the original
entry, <a href="endoh1.c">endoh1.c</a>.</p>
<div class="sourceCode" id="cb4"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span> alt</span></code></pre></div>
<p>In the <code>alt</code> 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
<code>A</code>; 0 disables it.</p>
<p>If you wish to change the speed you should do:</p>
<div class="sourceCode" id="cb5"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span> clobber SLEEP=N alt</span></code></pre></div>
<p>where <code>N</code> is number or the letter <code>I</code>.</p>
<p>WARNING: if you’re sensitive to flashing colours or any flashing at
all do make sure you don’t decrease the value of <code>S</code>, the
sleep time passed to <code>usleep(3)</code>, too much.</p>
<p>If however you wish to change the gravity factor, pressure factor
and/or viscosity factor, you should redefine the values <code>G</code>,
<code>P</code> and/or <code>V</code> macros, respectively, with the same
caveat about numbers for <code>S</code> above. For instance if you wish
to change the viscosity and pressure factors but leave the other macros
alone:</p>
<div class="sourceCode" id="cb6"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb6-1"><a href="#cb6-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span> clobber VISCOSITY=X PRESSURE=Y alt</span></code></pre></div>
see them all in succession, for fun. That is controlled by the variable
<code>TIMER</code> at compilation. For instance if you wish to change
the value to 5:</p>
<div class="sourceCode" id="cb5"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span> clobber TIMER=5 alt</span></code></pre></div>
<p>If you want to disable the alarm time, set it to 0:</p>
<div class="sourceCode" id="cb6"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb6-1"><a href="#cb6-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span> clobber TIMER=0 alt</span></code></pre></div>
<p>It cannot be &lt; 0 or &gt; 60 (arbitrarily selected).</p>
<p>The <code>SLEEP</code> 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 &lt; 0 and defaults to 12321 but you can change it to.
For instance to slow it down you could increase the sleep time from
<code>12321</code> to <code>50000</code>:</p>
<div class="sourceCode" id="cb7"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb7-1"><a href="#cb7-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span> clobber SLEEP=50000 alt</span></code></pre></div>
<p>If you wish to speed it up you might decrease the sleep time from
<code>12321</code> to <code>9999</code>:</p>
<div class="sourceCode" id="cb8"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb8-1"><a href="#cb8-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span> clobber SLEEP=9999 alt</span></code></pre></div>
<p>WARNING: the lower the value the faster it will flash so be careful
if you’re sensitive to this.</p>
<p>If you wish to change the gravity factor, pressure factor and/or
viscosity factor, you should redefine the values <code>GRAVITY</code>,
<code>PRESSURE</code> and/or <code>VISCOSITY</code> macros,
respectively. For instance if you wish to change the viscosity and
pressure factors but leave the other values alone:</p>
<div class="sourceCode" id="cb9"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb9-1"><a href="#cb9-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span> clobber VISCOSITY=X PRESSURE=Y alt</span></code></pre></div>
<p>where <code>X</code> and <code>Y</code> are numbers or the letter
<code>I</code> and which are, respectively, the viscosity and pressure
factors.</p>
<p>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 <code>I</code> which would
prevent the author’s remarks about it from being done.</p>
<p>If you want to disable the alarm time, set <code>A</code> to 0:</p>
<div class="sourceCode" id="cb7"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb7-1"><a href="#cb7-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span> clobber TIMER=0 alt</span></code></pre></div>
<p>It cannot be &lt; 0 or &gt; 60 (arbitrarily selected).</p>
<p>Try slowing down the display by increasing the sleep time from
<code>12321</code> to <code>50000</code>:</p>
<div class="sourceCode" id="cb8"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb8-1"><a href="#cb8-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span> clobber SLEEP=50000 alt</span></code></pre></div>
<p>Now try using both <code>endoh1.alt</code> and
<code>endoh1_color.alt</code> as you would <code>endoh1</code>
above.</p>
<p>Also try speeding up the display by decreasing the sleep time from
<code>12321</code> to <code>9999</code>:</p>
<div class="sourceCode" id="cb9"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb9-1"><a href="#cb9-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span> clobber SLEEP=9999 alt2</span></code></pre></div>
<p>WARNING: again, be careful with too low a value if you’re sensitive
to flashing colours or anything at all.</p>
<p>Now try using both <code>endoh1.alt</code> and
<code>endoh1_color.alt</code> as you would <code>endoh1</code>
above.</p>
<p>You might also wish to try redefining the macros <code>G</code>,
<code>P</code> and/or <code>V</code>. For instance:</p>
<div class="sourceCode" id="cb10"><pre
@@ -196,7 +189,10 @@ class="sourceCode sh"><code class="sourceCode bash"><span id="cb10-1"><a href="#
<p>You might try even:</p>
<div class="sourceCode" id="cb11"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb11-1"><a href="#cb11-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span> clobber GRAVITY=I alt</span></code></pre></div>
<p>See the author’s remarks for details on these macros.</p>
<p>See the author’s remarks for details on these macros where:</p>
<pre><code>G = GRAVITY
P = PRESSURE
V = VISCOSITY</code></pre>
<h3 id="alternate-use">Alternate use:</h3>
<p>Use <code>endoh1.alt</code>, <code>endoh1_color.alt</code> and
<code>endoh1.alt2</code> as you would <code>endoh1</code> and
@@ -204,10 +200,14 @@ class="sourceCode sh"><code class="sourceCode bash"><span id="cb11-1"><a href="#
<h3 id="alternate-try">Alternate try:</h3>
<p>To see two different ways run on the source file and each of the text
files, try:</p>
<div class="sourceCode" id="cb12"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb12-1"><a href="#cb12-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./try.alt.sh</span></span></code></pre></div>
<div class="sourceCode" id="cb13"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb13-1"><a href="#cb13-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./try.alt.sh</span></span></code></pre></div>
<p>The second run of each will be with the gravity factor set to
<code>I</code>.</p>
<p>To see the same thing but in the original uncoloured version,
try:</p>
<div class="sourceCode" id="cb14"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb14-1"><a href="#cb14-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./try.alt.bw.sh</span></span></code></pre></div>
<h2 id="judges-remarks">Judges’ remarks:</h2>
<p>Let’s play <a
href="https://en.wikipedia.org/wiki/Jeopardy!">Jeopardy!</a></p>
@@ -224,13 +224,13 @@ what if? entry</a>.</p>
<h3 id="synopsis">Synopsis</h3>
<p><strong>DO NOT FORGET</strong> <code>-DG=1 -DP=4 -DV=8</code> and
make your terminal window larger than 80 x 25.</p>
<div class="sourceCode" id="cb13"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb13-1"><a href="#cb13-1" aria-hidden="true" tabindex="-1"></a><span class="fu">cc</span> endoh1.c <span class="at">-DG</span><span class="op">=</span>1 <span class="at">-DP</span><span class="op">=</span>4 <span class="at">-DV</span><span class="op">=</span>8 <span class="at">-D_BSD_SOURCE</span> <span class="at">-o</span> endoh1 <span class="at">-lm</span></span>
<span id="cb13-2"><a href="#cb13-2" aria-hidden="true" tabindex="-1"></a><span class="ex">./endoh1</span> <span class="op">&lt;</span> endoh1.c</span>
<span id="cb13-3"><a href="#cb13-3" aria-hidden="true" tabindex="-1"></a><span class="ex">./endoh1</span> <span class="op">&lt;</span> logo.txt</span>
<span id="cb13-4"><a href="#cb13-4" aria-hidden="true" tabindex="-1"></a><span class="ex">./endoh1</span> <span class="op">&lt;</span> column.txt</span>
<span id="cb13-5"><a href="#cb13-5" aria-hidden="true" tabindex="-1"></a><span class="ex">./endoh1</span> <span class="op">&lt;</span> pour-out.txt</span>
<span id="cb13-6"><a href="#cb13-6" aria-hidden="true" tabindex="-1"></a><span class="ex">./endoh1</span> <span class="op">&lt;</span> tanada.txt</span></code></pre></div>
<div class="sourceCode" id="cb15"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb15-1"><a href="#cb15-1" aria-hidden="true" tabindex="-1"></a><span class="fu">cc</span> endoh1.c <span class="at">-DG</span><span class="op">=</span>1 <span class="at">-DP</span><span class="op">=</span>4 <span class="at">-DV</span><span class="op">=</span>8 <span class="at">-D_BSD_SOURCE</span> <span class="at">-o</span> endoh1 <span class="at">-lm</span></span>
<span id="cb15-2"><a href="#cb15-2" aria-hidden="true" tabindex="-1"></a><span class="ex">./endoh1</span> <span class="op">&lt;</span> endoh1.c</span>
<span id="cb15-3"><a href="#cb15-3" aria-hidden="true" tabindex="-1"></a><span class="ex">./endoh1</span> <span class="op">&lt;</span> logo.txt</span>
<span id="cb15-4"><a href="#cb15-4" aria-hidden="true" tabindex="-1"></a><span class="ex">./endoh1</span> <span class="op">&lt;</span> column.txt</span>
<span id="cb15-5"><a href="#cb15-5" aria-hidden="true" tabindex="-1"></a><span class="ex">./endoh1</span> <span class="op">&lt;</span> pour-out.txt</span>
<span id="cb15-6"><a href="#cb15-6" aria-hidden="true" tabindex="-1"></a><span class="ex">./endoh1</span> <span class="op">&lt;</span> tanada.txt</span></code></pre></div>
<h3 id="what-it-is">What it is</h3>
<pre><code> ,___. ,. ,. ,. ,___. ,. ,. ,.
|/--&#39; || `&#39; || |/--&#39; `&#39; || |\_.
@@ -281,10 +281,10 @@ may require <code>-D_BSD_SOURCE</code> or so to build with no warning.
Under these conditions, it should be portable. At least, recent
compilers with <code>-std=c99 -Wall -W -Wextra -pedantic</code> say
nothing.</p>
<div class="sourceCode" id="cb15"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb15-1"><a href="#cb15-1" aria-hidden="true" tabindex="-1"></a><span class="fu">gcc</span> <span class="at">-DG</span><span class="op">=</span>1 <span class="at">-DP</span><span class="op">=</span>4 <span class="at">-DV</span><span class="op">=</span>8 <span class="at">-D_BSD_SOURCE</span> <span class="at">-std</span><span class="op">=</span>c99 <span class="at">-Wall</span> <span class="at">-W</span> <span class="at">-Wextra</span> <span class="at">-pedantic</span> endoh1.c</span>
<span id="cb15-2"><a href="#cb15-2" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb15-3"><a href="#cb15-3" aria-hidden="true" tabindex="-1"></a><span class="fu">clang</span> <span class="at">-DG</span><span class="op">=</span>1 <span class="at">-DP</span><span class="op">=</span>4 <span class="at">-DV</span><span class="op">=</span>8 <span class="at">-D_BSD_SOURCE</span> <span class="at">-std</span><span class="op">=</span>c99 <span class="at">-Wall</span> <span class="at">-W</span> <span class="at">-Wextra</span> <span class="at">-pedantic</span> endoh1.c</span></code></pre></div>
<div class="sourceCode" id="cb17"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb17-1"><a href="#cb17-1" aria-hidden="true" tabindex="-1"></a><span class="fu">gcc</span> <span class="at">-DG</span><span class="op">=</span>1 <span class="at">-DP</span><span class="op">=</span>4 <span class="at">-DV</span><span class="op">=</span>8 <span class="at">-D_BSD_SOURCE</span> <span class="at">-std</span><span class="op">=</span>c99 <span class="at">-Wall</span> <span class="at">-W</span> <span class="at">-Wextra</span> <span class="at">-pedantic</span> endoh1.c</span>
<span id="cb17-2"><a href="#cb17-2" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb17-3"><a href="#cb17-3" aria-hidden="true" tabindex="-1"></a><span class="fu">clang</span> <span class="at">-DG</span><span class="op">=</span>1 <span class="at">-DP</span><span class="op">=</span>4 <span class="at">-DV</span><span class="op">=</span>8 <span class="at">-D_BSD_SOURCE</span> <span class="at">-std</span><span class="op">=</span>c99 <span class="at">-Wall</span> <span class="at">-W</span> <span class="at">-Wextra</span> <span class="at">-pedantic</span> endoh1.c</span></code></pre></div>
<p>I expect it to work in any Unix-like environment. VTxxx/ANSI
sequences are used to clear screen and move cursor to home.</p>
<p>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</a>
- fluid initial state as text</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/endoh1/try.alt.bw.sh">try.alt.bw.sh</a>
- how to run alternate code in black and white</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/endoh1/try.alt.sh">try.alt.sh</a>
- how to run alternative code</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/endoh1/try.bw.sh">try.bw.sh</a>
- try.alt.bw.sh</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/endoh1/try.sh">try.sh</a>
- how to run in color</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/endoh1/endoh1_color.c">endoh1_color.c</a>
- alternative source using terminal 256 colors</li>
<li><a href="2012_endoh1.tar.bz2">2012_endoh1.tar.bz2</a> - download
+1 -5
View File
@@ -130,11 +130,7 @@ href="/temp-test-ioccc/location.html#FR">FR</a></p>
<code>N+1</code> or more shared files with their proper numbers):</p>
<div class="sourceCode" id="cb3"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./grothe</span> I-sharedI J-sharedJ K-sharedK ... +reconstructed</span></code></pre></div>
<h2 id="try">Try:</h2>
<div class="sourceCode" id="cb4"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./grothe</span> <span class="at">-grothe.c</span> 1+grothe.c.1 2+grothe.c.2</span>
<span id="cb4-2"><a href="#cb4-2" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb4-3"><a href="#cb4-3" aria-hidden="true" tabindex="-1"></a><span class="ex">./grothe</span> <span class="at">-cookie_recipe.txt</span> 1-/dev/urandom 2-/dev/urandom 1+cookie_piece1.dat 2+cookie_piece2.dat 3+cookie_piece3.dat 4+cookie_piece4.dat</span>
<span id="cb4-4"><a href="#cb4-4" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb4-5"><a href="#cb4-5" aria-hidden="true" tabindex="-1"></a><span class="ex">./grothe</span> 1-cookie_piece1.dat 2-cookie_piece2.dat 4-cookie_piece4.dat 4+cookie_recipe_restore.txt</span></code></pre></div>
<div class="sourceCode" id="cb4"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./try.sh</span></span></code></pre></div>
<h2 id="judges-remarks">Judges’ remarks:</h2>
<p>Also known as ‘Best abuse of the judging process’.</p>
<p>The IOCCC 2012 submission page didn’t enforce the 2048 meaningful
+15 -6
View File
@@ -133,12 +133,21 @@ the file directly instead.</p>
<p>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!</p>
<p>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:</p>
<div class="sourceCode" id="cb4"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a><span class="bu">echo</span> <span class="st">&#39;int main(){puts(&quot;Hello World!&quot;);}&#39;</span> <span class="kw">|</span> <span class="ex">./hamano</span> <span class="op">&gt;</span> hello.pdf</span>
<span id="cb4-2"><a href="#cb4-2" aria-hidden="true" tabindex="-1"></a><span class="fu">cc</span> <span class="at">-Wno-implicit-function-declaration</span> <span class="at">-xc</span> hello.pdf <span class="at">-o</span> hello2</span>
<span id="cb4-3"><a href="#cb4-3" aria-hidden="true" tabindex="-1"></a><span class="ex">./hello2</span> <span class="kw">|</span> <span class="fu">gcc</span> <span class="at">-Wno-implicit-function-declaration</span> <span class="at">-xc</span> <span class="at">-</span> <span class="at">-o</span> ./hello3</span>
<span id="cb4-4"><a href="#cb4-4" aria-hidden="true" tabindex="-1"></a><span class="ex">./hello3</span></span></code></pre></div>
<p>That procedure looks like:</p>
<div class="sourceCode" id="cb4"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./hamano</span> <span class="op">&lt;</span> README.md <span class="op">&gt;</span> hint.pdf</span>
<span id="cb4-2"><a href="#cb4-2" aria-hidden="true" tabindex="-1"></a><span class="fu">cc</span> <span class="at">-xc</span> hint.pdf <span class="at">-o</span> hint</span>
<span id="cb4-3"><a href="#cb4-3" aria-hidden="true" tabindex="-1"></a><span class="ex">./hint</span></span></code></pre></div>
<p>Another PDF generated is an obfuscated <code>Hello World!</code>
program (obfuscated inside the PDF). Once this is done it will compile
the PDF as if it was C (itself!). It will look like:</p>
<div class="sourceCode" id="cb5"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a><span class="bu">echo</span> <span class="st">&#39;int main(){puts(&quot;Hello World!&quot;);}&#39;</span> <span class="kw">|</span> <span class="ex">./hamano</span> <span class="op">&gt;</span> hello.pdf</span>
<span id="cb5-2"><a href="#cb5-2" aria-hidden="true" tabindex="-1"></a><span class="fu">cc</span> <span class="at">-xc</span> hello.pdf <span class="at">-o</span> hello</span>
<span id="cb5-3"><a href="#cb5-3" aria-hidden="true" tabindex="-1"></a><span class="ex">./hello</span> <span class="kw">|</span> <span class="fu">cc</span> <span class="at">-Wno-implicit-function-declaration</span> <span class="at">-xc</span> <span class="at">-</span> <span class="at">-o</span> ./hello2</span>
<span id="cb5-4"><a href="#cb5-4" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb5-5"><a href="#cb5-5" aria-hidden="true" tabindex="-1"></a><span class="ex">./hello2</span></span></code></pre></div>
<p>although the <code>CFLAGS</code> will be what is in the Makefile as
it uses the helper rules <code>hint.pdf</code>, <code>hint</code>,
<code>hello.pdf</code> and <code>hello</code> to do this.</p>
<h2 id="judges-remarks">Judges’ remarks:</h2>
<p>This entry treads into a new territory for IOCCC - generating PDF
files.</p>
+18 -7
View File
@@ -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.</p>
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.</p>
<h3 id="alternate-build">Alternate build:</h3>
<div class="sourceCode" id="cb4"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span> alt</span></code></pre></div>
<h3 id="alternate-use">Alternate use:</h3>
<div class="sourceCode" id="cb5"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a><span class="bu">echo</span> vier <span class="kw">|</span> <span class="ex">./kang.alt</span></span>
<span id="cb5-2"><a href="#cb5-2" aria-hidden="true" tabindex="-1"></a><span class="bu">echo</span> uno <span class="kw">|</span> <span class="ex">./kang.alt</span></span></code></pre></div>
<div class="sourceCode" id="cb5"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a><span class="bu">echo</span> <span class="st">&quot;full spelling of an English cardinal numeral less than a quadrillion&quot;</span> <span class="kw">|</span> <span class="ex">./kang.alt</span></span>
<span id="cb5-2"><a href="#cb5-2" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb5-3"><a href="#cb5-3" aria-hidden="true" tabindex="-1"></a><span class="bu">echo</span> vier <span class="kw">|</span> <span class="ex">./kang.alt</span></span>
<span id="cb5-4"><a href="#cb5-4" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb5-5"><a href="#cb5-5" aria-hidden="true" tabindex="-1"></a><span class="bu">echo</span> uno <span class="kw">|</span> <span class="ex">./kang.alt</span></span></code></pre></div>
<h3 id="alternate-try">Alternate try:</h3>
<div class="sourceCode" id="cb6"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb6-1"><a href="#cb6-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./de.alt.sh</span> <span class="co"># German 0 through 13 both with and without umlaut</span></span>
<span id="cb6-2"><a href="#cb6-2" aria-hidden="true" tabindex="-1"></a><span class="ex">./en.alt.sh</span> <span class="co"># English 0 through 13</span></span></code></pre></div>
<div class="sourceCode" id="cb6"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb6-1"><a href="#cb6-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./try.alt.sh</span> <span class="co"># try various languages</span></span>
<span id="cb6-2"><a href="#cb6-2" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb6-3"><a href="#cb6-3" aria-hidden="true" tabindex="-1"></a><span class="ex">./en.alt.sh</span> <span class="co"># English 0 through 13</span></span>
<span id="cb6-4"><a href="#cb6-4" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb6-5"><a href="#cb6-5" aria-hidden="true" tabindex="-1"></a><span class="ex">./de.alt.sh</span> <span class="co"># German 0 through 13 with both umlauts and without (additional &#39;e&#39;)</span></span></code></pre></div>
<p>What does it get right? What does it get wrong? How does it compare
to the original entry without the change of <code>f</code> to
<code>v</code>?</p>
<p>Finally why does it get what it gets wrong wrong?</p>
<p>Finally why does it get wrong what it gets wrong?</p>
<h2 id="judges-remarks">Judges’ remarks:</h2>
<p>The judges were able to appreciate the Indo-European language family
relation by making this entry successfully recognize <em>some</em>
@@ -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</a>
- English words for 1 through 13</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/kang/try.alt.sh">try.alt.sh</a>
- how to run alternate code</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/kang/try.sh">try.sh</a>
- how to run</li>
<li><a href="2012_kang.tar.bz2">2012_kang.tar.bz2</a> - download winning
+6 -2
View File
@@ -122,9 +122,13 @@ Location: <a href="/temp-test-ioccc/location.html#JP">JP</a></p>
href="#alternate-code">Alternate code</a> below.</p>
<h2 id="to-use">To use:</h2>
<div class="sourceCode" id="cb2"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./konno</span> N</span></code></pre></div>
<p>NOTE: N is an integer from 0 to 255.</p>
<h2 id="try">Try:</h2>
<div class="sourceCode" id="cb3"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./try.sh</span></span></code></pre></div>
<div class="sourceCode" id="cb3"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./try.sh</span></span>
<span id="cb3-2"><a href="#cb3-2" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb3-3"><a href="#cb3-3" aria-hidden="true" tabindex="-1"></a><span class="co"># you can also specify numbers to try before the random and preselected ones:</span></span>
<span id="cb3-4"><a href="#cb3-4" aria-hidden="true" tabindex="-1"></a><span class="ex">./try.sh</span> 111 222 333 444 555 666 777 888 999</span></code></pre></div>
<p>Try running <a href="try.sh">try.sh</a> a number of times as the
first part randomly selects ten numbers to try.</p>
<h2 id="alternate-code">Alternate code:</h2>
<p>An alternate version of this entry, <a
href="konno.alt.c">konno.alt.c</a>, is provided. This alternate code is
+4 -4
View File
@@ -124,7 +124,7 @@ section below.</p>
<h2 id="to-use">To use:</h2>
<div class="sourceCode" id="cb2"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./cable3</span> bios-image-file floppy-image-file <span class="pp">[</span><span class="ss">harddisk</span><span class="pp">-</span><span class="ss">image</span><span class="pp">-</span><span class="ss">file</span><span class="pp">]</span></span></code></pre></div>
<h2 id="try">Try:</h2>
<div class="sourceCode" id="cb3"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./runme</span></span></code></pre></div>
<div class="sourceCode" id="cb3"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./cable3.sh</span></span></code></pre></div>
<p>NOTE: to quit the program type <code>QUITEMU</code>. You might have
to be at the top level directory of the drive, <code>A:</code> or
<code>C:</code>.</p>
@@ -292,7 +292,7 @@ shell script that looks something like:</p>
<div class="sourceCode" id="cb8"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb8-1"><a href="#cb8-1" aria-hidden="true" tabindex="-1"></a><span class="fu">stty</span> cbreak raw <span class="at">-echo</span> min 0</span>
<span id="cb8-2"><a href="#cb8-2" aria-hidden="true" tabindex="-1"></a><span class="ex">./cable3</span> bios floppy.img harddisk.img</span>
<span id="cb8-3"><a href="#cb8-3" aria-hidden="true" tabindex="-1"></a><span class="fu">stty</span> cooked echo</span></code></pre></div>
<p>See the <a href="runme">runme</a> script.</p>
<p>See the <a href="cable3.sh">cable3.sh</a> script.</p>
<h2 id="to-use-the-emulator---floppy-mode-only">To use the emulator -
floppy mode only</h2>
<p>The simplest use of the emulator is with a single floppy boot disk
@@ -301,7 +301,7 @@ disk.</p>
<p>Before running the emulator on a Unix-type system, <code>stty</code>
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 <a href="runme">runme</a>):</p>
like this script (provided as <a href="cable3.sh">cable3.sh</a>):</p>
<div class="sourceCode" id="cb9"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb9-1"><a href="#cb9-1" aria-hidden="true" tabindex="-1"></a><span class="fu">stty</span> cbreak raw <span class="at">-echo</span> min 0</span>
<span id="cb9-2"><a href="#cb9-2" aria-hidden="true" tabindex="-1"></a><span class="ex">./cable3</span> bios fd.img</span>
<span id="cb9-3"><a href="#cb9-3" aria-hidden="true" tabindex="-1"></a><span class="fu">stty</span> cooked echo</span></code></pre></div>
@@ -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</a>
- original source</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/cable3/runme">runme</a>
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/cable3/cable3.sh">cable3.sh</a>
- how to run</li>
<li><a href="screenshot_autocad.png">screenshot_autocad.png</a> -
Screenshots of some applications running on macOS</li>