Remove hint.html and index.html

As per discussions on GitHub the index.html and hint.html files should
be deleted in favour of README.md files (from any
.text/.txt/.markdown/.md files which will be turned into README.md in an
upcoming commit).
This commit is contained in:
Cody Boone Ferguson committed 2023-02-08 05:07:05 -08:00
1 parent ee8a36310f
commit 77fb0f11a2
143 files changed
-28606

No files matched your search

-549
View File
@@ -1,549 +0,0 @@
<!doctype html public "-//W3C//DTD HTML 4.0 Transitional //EN">
<html>
<head>
<meta name="GENERATOR" content="mkd2html 2.2.2">
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8"> <link rel="stylesheet"
type="text/css"
href="../hint.css" />
<title></title>
<title>Don&#39;t tread on me award</title>
</head>
<body>
<CENTER>
<IMG SRC="/png/ioccc.png" ALT="IOCCC" height=78 width=267>
<P><FONT size="6"><I>The International Obfuscated C Code Contest</I></FONT></P>
<div id="bar">
<ul>
<li><a href="../index.html">About the 27th IOCCC</a></li>
<li><a href="../whowon.html">27th IOCCC Winners</a></li>
<li><a href="/index.html">IOCCC home</a></li>
<li><a href="/winners.html">List of All Winners</a></li>
<li><a href="/judges.html">The Judges</a></li>
</ul>
</div>
<P><FONT size="6"><B>A 27<sup>th</sup> IOCCC Winner</B></FONT></P>
</CENTER>
<h1>Don&rsquo;t tread on me award</h1>
<p>Cody Boone Ferguson <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#105;&#111;&#99;&#99;&#99;&#64;&#120;&#101;&#120;&#121;&#108;&#46;&#110;&#101;&#116;">&#105;&#111;&#99;&#99;&#99;&#64;&#120;&#101;&#120;&#121;&#108;&#46;&#110;&#101;&#116;</a><br/>
<a href="https://ioccc.xexyl.net">https://ioccc.xexyl.net</a><br/>
Twitter: @xexyl</p>
<p>The code for this entry can be found in <a href="prog.c">prog.c</a></p>
<h2>Judges' comments:</h2>
<h3>To use:</h3>
<pre><code>make
WAIT=100 WALLS=0 CANNIBAL=0 ./prog
# Start pressing some arrow keys
</code></pre>
<h3>Try:</h3>
<pre><code>make test
WAIT=75 WALLS=1 CANNIBAL=1 ./prog
./prog
SIZE=-1 ./prog
CANNIBAL=1 WALLS=1 WAIT=50 EVADE=200 ./prog
WAIT=75 GROW=-1 SIZE=5 CANNIBAL=1 ./prog
CANNIBAL=1 WALLS=1 WAIT=0 EVADE=1 MAXSIZE=10 ./prog
</code></pre>
<h3>Selected Judges Remarks:</h3>
<p>As the <a href="https://en.wikipedia.org/wiki/Gadsden_flag">Gadsden flag</a> warns, beware of the snake!
This game has a number of configurable pitfalls including walls and snakes.</p>
<p>There is a good deal of useful documentation that is provided with this entry:</p>
<ul>
<li>gameplay.markdown (<a href="gameplay.html">gameplay.html</a>)</li>
</ul>
<p>Documented game <em>features</em>!</p>
<ul>
<li>terminals.markdown (<a href="terminals.html">terminals.html</a>)</li>
</ul>
<p>Information about terminal capabilities, dimensions (setting and how to restore sanity if it causes any problems) as well as colours (limitations etc.).</p>
<ul>
<li>troubleshooting.markdown (<a href="troubleshooting.html">troubleshooting.html</a>)</li>
</ul>
<p>Workaround for various game <em>features</em></p>
<ul>
<li>bugs.markdown (<a href="bugs.html">bugs.html</a>)</li>
</ul>
<p>Bugs and things that might seem like bugs but are not.</p>
<ul>
<li><a href="chocolate-cake.html">chocolate-cake.html</a></li>
</ul>
<p>Because most of us could use some <em>Double-layered Chocolate Fudge Cake</em>!</p>
<ul>
<li>spoilers.markdown (<a href="spoilers.html">spoilers.html</a>)</li>
</ul>
<p>Read <strong><em>ONLY</em></strong> if you really must give up trying to de-obfuscate!</p>
<h2>Author&rsquo;s comments:</h2>
<h3>Feature-rich curses implementation of the Snake game (with many gameplay modes and options)</h3>
<p>Snake has two cheat modes (passable walls and self [cannibalism]), a drawing (or
practising) mode, <em>can play by itself (<strong>and win!</strong>)</em>, is coloured (included
<a href="snake-colours.sh">snake-colours.sh</a> and <a href="play.sh">play.sh</a> scripts compile in player-selected
colours) and there are many other play modes (many more can be devised with the
imagination and the environmental variables; see <a href="gameplay.markdown">gameplay.markdown</a> /
<a href="gameplay.html">gameplay.html</a> for many examples) and options. You can pause and there&rsquo;s
even a built-in test unit for some features! The following variables change the
game in the following ways (all can be combined):</p>
<ul>
<li><p>The speed of the snake (how many milliseconds to <strong>WAIT</strong> for input before
moving; <em>default 231 milliseconds</em> and you can move faster by pressing a
direction key quicker or even holding it down).</p></li>
<li><p>If the bug (to eat) will move (<strong>EVADE</strong>) after user-specified number of snake
moves (<em>default 300, 0 disables</em>).</p></li>
<li><p>If the snake can go through <strong>WALLS</strong> (coming out at the opposite wall)
(<em>default 1, yes</em>).</p></li>
<li><p>If the snake can go through itself (<strong>CANNIBAL</strong>) (<em>default 0, no</em>).</p></li>
<li><p>The initial <strong>SIZE</strong> of the snake (<em>default 5</em>).</p></li>
<li><p>The size the snake must become in order to win the game (<strong>MAXSIZE</strong>, <em>default 997</em>).</p></li>
<li><p>How much to <strong>GROW</strong> each time a bug is eaten (<em>default 5</em>, can be negative).</p></li>
<li><p>How many moves (<strong>SHED</strong>, <em>default 0, disabled</em>) before &lsquo;stretching&rsquo; (grow)
(<strong>SHEDS</strong>, <em>default 5</em>; can be negative). This is how snakes grow in the wild so is a
misnomer here because snakes don&rsquo;t grow in the manner that the original
Snake game was designed.</p>
<ul>
<li>Exception: if the bug is eaten the counter isn&rsquo;t incremented.</li>
</ul>
</li>
<li><p>A drawing/practising mode (<strong>WAIT</strong> &lt; 0 makes <code>timeout()</code> set blocking read).</p></li>
<li><p>Computer plays the game (<strong>WAIT=0</strong>) <strong>EPILEPSY/STIMULATION OVERLOAD WARNING</strong>
included in the relevant section (this goes for a low <strong>EVADE</strong> value too).</p></li>
<li><p>Grow-Shrink mode (Positive and Negative Winning) mode (see
<a href="gameplay.markdown">gameplay.markdown</a> for more details).</p></li>
<li><p>The dimensions of the game (this is actually a terminal thing but I document
how to do this and its potential pitfalls) (<strong>LINES</strong> , <strong>COLUMNS</strong>).</p></li>
</ul>
<p>There are no complicated command line invocations; it&rsquo;s just a matter of passing
into the game descriptively named variables and I include a script that sets up
many different gameplay modes (<a href="gameplay.markdown">gameplay.markdown</a> and <a href="play.sh">play.sh</a>).</p>
<p>The <a href="gameplay.markdown">gameplay.markdown</a> (<a href="gameplay.html">gameplay.html</a>) file has all the information on
what the game looks like, how to play, the different types of modes (that I have
thought of so far) including all those in the above list. Along with the
<a href="play.sh">play.sh</a> and <a href="snake-colours.sh">snake-colours.sh</a> scripts it&rsquo;s probably the most important
file for players.</p>
<p>The gameplay file is long but it includes game printouts as well as explaining
the many different gameplay modes. The <a href="play.sh">play.sh</a> script automates most (if
not all) of the gameplay modes described in the gameplay file (it also
allows you to change colours like <a href="snake-colours.sh">snake-colours.sh</a>) as well as the judges'
suggestions (that I don&rsquo;t document so as to not spoil them). You can pass in
environmental variables to both scripts though obviously some will conflict with
different options in play.sh.</p>
<p>Probably just as important is <a href="chocolate-cake.html">chocolate-cake.html</a> with an old but wonderful
recipe (because the judges love chocolate and who can blame them? - also it goes
with one of the IAQs I include later).</p>
<p>The <a href="troubleshooting.markdown">troubleshooting.markdown</a> (<a href="troubleshooting.html">troubleshooting.html</a>) file has some advice
on potential problems (and things that might appear to be problems at first
glance but are not) that I have thought of or encountered.</p>
<p>The <a href="terminals.markdown">terminals.markdown</a> (<a href="terminals.html">terminals.html</a>) has a variety of information
specific to terminals from input/directions, dimensions, sanity and colours: a
sort of troubleshooting guide for terminals with some additional information.</p>
<p>The <a href="spoilers.markdown">spoilers.markdown</a> has a variety of information including some of the
obfuscation techniques and a bit of how it works.</p>
<p>The <a href="bugs.markdown">bugs.markdown</a> (<a href="bugs.html">bugs.html</a>) has a list of known bugs and things that
look like bugs but aren&rsquo;t as well as documenting a built-in test unit for some
features.</p>
<p>Because all IOCCC entries should have a man page I have included one (even
though much of it is what&rsquo;s also above). To render try:</p>
<pre><code> man ./snake.1
</code></pre>
<p>The <a href="COMPILING">COMPILING</a> file has a few portability notes and the <a href="HACKING">HACKING</a> file has
some information on how one might modify things, things that could be
implemented (and how to/how not to go about some of the things) as well as some
other information on the entry (some of which is deliberately not true - a
variation of misleading comments). These files are probably insignificant.</p>
<p>I will have more information about this entry at
<a href="https://ioccc.xexyl.net/2020/snake">https://ioccc.xexyl.net/2020/snake</a> after the winning entries have been
published.</p>
<p>For the files I recommend looking at the html files with a browser; this
particularly goes for the <a href="gameplay.html">gameplay.html</a>, <a href="bugs.html">bugs.html</a>, <a href="terminals.html">terminals.html</a>
and <a href="troubleshooting.html">troubleshooting.html</a> - along with the most important one
<a href="chocolate-cake.html">chocolate-cake.html</a>.</p>
<p><a name="toc"></a></p>
<ul>
<li><p><a href="#bugs">&lsquo;Bugs&rsquo;</a></p></li>
<li><p><a href="#naqs">NAQs/IAQs (Never/Infrequently Asked Questions)</a></p>
<ul>
<li><a href="#inspirations">Do I have any inspirations for this entry?</a></li>
<li><a href="#features">Are there any features I thought of that I wanted to implement but did not get to for some reason or another?</a></li>
<li><a href="#easier">Are there ways that one can make this game easier?</a></li>
<li><a href="#harder">Are there ways to make it harder?</a></li>
<li><a href="#moult">How do snakes grow in real life?</a></li>
<li><a href="#other">Any other interesting things about snakes?</a></li>
<li><a href="#opposite">Why can you go the opposite direction and so immediately die when not cannibalising?</a></li>
<li><a href="#chocolatecake">Do you have any <strong>DELICIOUS CHOCOLATE CAKE</strong> recipes?</a></li>
<li><a href="#alt">What are the files prog.orig.c, prog.2.c, prog-j.c and prog.alt.c ?</a></li>
</ul>
</li>
<li><p><a href="#winning">Winning thoughts, dedications and thanks</a></p></li>
</ul>
<h3><a name="bugs" href="#toc">&lsquo;Bugs&rsquo;</a></h3>
<ul>
<li><p>&lsquo;The screen keeps showing bugs!&rsquo; Well yes, that&rsquo;s rather the point! Help out
by eating them. Keep eating them until you win! Then you will have the
satisfaction of getting rid of the non-bug bugs! :)</p></li>
<li><p>The Snake in the game doesn&rsquo;t fly (yes there are <a href="https://www.bbc.co.uk/news/science-environment-25943693">flying snakes</a>). For
other snake madness see the reports of &lsquo;<a href="http://www.macroevolution.net/snake-human-hybrids.html">human snakes</a>&rsquo;.</p></li>
<li><p>Technically walls, snakeskin and the snake itself would not be an obstacle
in real life. The shed snakeskin is not an obstacle but walls can be and
so can the snake itself. Also snakes grow by moulting (technical term for
shedding) so when the snake leaves its snakeskin behind it really ought to
grow but instead it shrinks; this means negative shedding ought to have the
snake grow and positive shedding have the snake - what? It&rsquo;s a misnomer: it
took fewer bytes and the negative shedding is a positive consequence of
unsigned arithmetic.</p></li>
</ul>
<p>On a more serious note look at <a href="bugs.markdown">bugs.markdown</a> (<a href="bugs.html">bugs.html</a>).</p>
<h3><a name="naqs" href="#toc">NAQs/IAQs (Never/Infrequently Asked Questions)</a></h3>
<h4><a name="inspirations" href="#toc">Do I have any inspirations for this entry?</a></h4>
<p>There are two in particular. First is a long time mate of mine wrote a bash
implementation of Snake several years ago (uncoloured, no cheat modes, hardcoded
dimensions etc. - in fact everything was hardcoded).</p>
<p>Back then I had thought of making a curses implementation of it but I never got
round to it. When the judges announced that the 2020 IOCCC contest would be open
from late December 2019 through 15 March 2020 I started thinking again on what
might be a good entry. By chance I thought of the Snake game and so wrote it
finishing the implementation of everything on 8 November 2019. Did I say
everything? That&rsquo;s an unintentional lie; I thought it was everything but I
implemented many new things after that. In fact I have numerous times thought I
was done only to have added yet another feature - or two or three or more!</p>
<p>Second is the old Atari game <a href="https://en.wikipedia.org/wiki/Surround_(video_game)">Surround</a>. There were a few modes as I recall.
The object of the game was to surround your opponent so that they would run into
you, the wall or themselves. The opponent was either the computer or another
player.</p>
<p>In one mode you could go through walls (that&rsquo;s where I got the idea to do
likewise). There was also a drawing mode where you could just move round making
different designs though that this is in my entry is a happy coincidence
(because <code>timeout()</code> will block when it gets a negative value). It&rsquo;s true that
in my Snake it&rsquo;s not quite the same but it&rsquo;s close enough. Perhaps it can be
made more like Surround if it grows every movement but then depending on the max
size of the snake the game might be over fairly quickly (I don&rsquo;t remember how
it was done in Surround).</p>
<p>In Surround each move you made you would grow in size by one. This is what
inspired the shedding mode. Anyway I always loved the game and it&rsquo;s similar to
Snake in several ways.</p>
<h4><a name="features" href="#toc">Are there any features I thought of that I wanted to implement but did not get to for some reason or another?</a></h4>
<p>Yes. I thought it would be fun if there were other obstacles for the snake (in
my mind I was thinking of barriers like the walls but in the field).</p>
<p>I also thought it would be fun to have more than one bug at some point after say
the snake gets to be some size. One of the reasons I didn&rsquo;t do this is because I
was trying to save iocccsize bytes. I never got round to this though and I feel
that the features I have implemented are far more interesting and fun.</p>
<p>Another idea is having portals or teleportation but there are a number of
problems with those that would have to be worked out too.</p>
<p>I would have loved for it to be practical to support diagonal movement but as I
describe elsewhere it&rsquo;s not. That&rsquo;s perhaps what I regret most. It would be
possible to choose letters instead of arrow keys but even if that fit in the
size restrictions how would I show the head? I looked at the extended ncurses
character set and I didn&rsquo;t see any diagonal arrows. I suppose I could have it
not show the arrows but then that brings an old problem back.</p>
<p>Nevertheless I am quite happy with the features in the game and I hope everyone
who plays it enjoys it as much as I enjoyed writing/playing it.</p>
<h4><a name="easier" href="#toc">Are there ways that one can make this game easier?</a></h4>
<p>I can think of at the least the following:</p>
<ul>
<li>Bigger screen will allow for freer movement (at least for more time?).</li>
<li>Increasing the movement (key press) wait to give you more time to choose
(though this slows gameplay down).</li>
<li>Decrease the size of the snake (and growth size) though over time the size
will become more and more problematic. But see the next item.</li>
<li>If you set a high growth size you don&rsquo;t have to worry as much about running
into a wall or the snake itself for as long: because the check if you win is
done when the snake size is increased: if you&rsquo;re 15 away from the max and
each bug you eat you grow by 11 then it won&rsquo;t take as many bugs to win as it
would if the grow size was 3. This applies to shedding size too.</li>
<li>If you want to show off keep walls passable and enable cannibalism. It
won&rsquo;t be a challenge then but at least you could show your final score?</li>
<li>Decrease the max size.</li>
<li>And the one that applies to learning new things and getting more things done
also applies here: remove all sources of distraction; turn the phone off,
lock yourself in a soundproof room (refusing to get up for anyone or
anything) and delete all your social media accounts for starters. Okay you
don&rsquo;t really have to do the latter one but it can&rsquo;t be denied that they can
be very distracting! As can phone (calls and otherwise). And visitors
calling. And being on this planet.</li>
<li>If you don&rsquo;t want a challenge at all you could just set the start size to be
the max size or very close to it. In fact if you have the shedding size to be
even one on every move even if you normally can&rsquo;t win with the same size
screen you might find it happens much more easily! You could of course play
with these paramters in different ways together - there are certainly
different combinations than I have given.</li>
<li>Of course you could also enable one or both cheat modes. You might be
considered a filthy cheat but both modes are quite fun (one being enabled by
default; does that mean it&rsquo;s not actually a cheat mode?).</li>
</ul>
<h4><a name="harder" href="#toc">Are there ways to make it harder?</a></h4>
<ul>
<li>Decrease the size of the game.</li>
<li>Decrease the size of the snake growth (and initial snake size).</li>
<li>Make the snake go faster (decrease the time the game waits for input).</li>
<li>Hold down the direction keys to move faster; this is something I do often
though I have always had extremely fast reflexes and amazing eye hand
coordination (at least after glasses and the three eye surgeries?).
Admittedly I don&rsquo;t find this makes it any harder but it does make you have
to react faster.</li>
<li>Be reckless (i.e. increase the chance of a wreck, a most amusing
contradictory idea if you ignore etymology).</li>
<li>Look away for a moment every so often or have a conversation with your best
mate, partner or family member whilst playing.</li>
<li>Make walls impassable and disable cannibalism.</li>
<li>Make the bug move more frequently (this can be a real problem when you can&rsquo;t
go through the walls!).</li>
<li>Get used to going through walls and then try with it disabled.</li>
<li>Set the max size to the maximum (<em><code>MAXSIZE=-1</code></em> should do it).</li>
</ul>
<p>And if you&rsquo;re a show-off you can try:</p>
<ul>
<li>Closing your eyes (maybe better to practise with one eye open first or even
in practice that is drawing mode?).</li>
<li>Have someone tickle you.</li>
<li>Watch a comedy show or have a laugh with a mate or partner or family member.</li>
<li>Have your partner tease you.</li>
<li>Speak on the phone with someone (paying attention to both). Come to think of
it I have actually done this though not to show off but rather it&rsquo;s just
something I&rsquo;m capable of&hellip;</li>
<li>Watch a film at the same time.</li>
<li>Sneeze and/or cough.</li>
<li>Have breakfast, lunch, afternoon tea, dinner or some other meal.</li>
<li>Get pissed out of your mind to make it difficult to think (please do not
drive!).</li>
<li>Do more than one or all of the above at the same time (the longer the snake
becomes the more often you should do these things).</li>
<li>Eat a <a href="cake.jpg">great chocolate cake</a>. Actually you should do that whether you&rsquo;re
trying to show off or not. Sleep, bathe, eat chocolate cake, play Snake, eat
chocolate cake, play Snake, sleep, &hellip; For a great recipe see below.</li>
</ul>
<p>But if that&rsquo;s not enough I don&rsquo;t know what to tell you other than suggest that
you make use of your talents for financial gain or at least a world record.
Either way I tip my proverbial snakeskin hat to you (animal cruelty but a pun is
a pun and every pun deserves to be shed).</p>
<h4><a name="moult" href="#toc">How do snakes grow in real life?</a></h4>
<p>They grow through a process called moulting - shedding their skin (other
creatures also moult). This takes place over some days and unlike humans snakes
never stop growing (though growth slows down as they mature). I chose the
variables <strong>SHED</strong> and <strong>SHEDS</strong> for simplicity and because the words are
shorter. I don&rsquo;t like the words because it&rsquo;s rather a misnomer but what I had
chosen before was longer - STRETCH and STRETCHES.</p>
<h4><a name="other" href="#toc">Any other interesting things about snakes?</a></h4>
<p>For the fascinating science behind snake slithering see <a href="https://www.bbc.co.uk/news/science-environment-35563941">Snake walk: The physics
of slithering</a>. For the bizarre thought of snake human hybrids see <a href="http://www.macroevolution.net/snake-human-hybrids.html">human
snakes</a>. The latter is hard to comprehend and there are some sad tails (tales)
in there too because I believe that people actually believe in this (how/why I
do not know) and they really do tell the truth as they see it (even if
impossible).</p>
<h4><a name="opposite" href="#toc">Why can you go the opposite direction and so immediately die when not cannibalising?</a></h4>
<p>When Ilya Kurdyukov was playing with this he questioned why this is possible
when other implementations don&rsquo;t have it this way. There are a few reasons.</p>
<p>First is that the friend&rsquo;s implementation had it that way and it had been a long
time since I had played it (if I ever did? I don&rsquo;t know now: I played so many
games over the years and the game most alike it that I played is Surround, as
below).</p>
<p>It also is the way it is in Surround.</p>
<p>It makes cannibalism mode very interesting.</p>
<p>And I happen to like it the way I have it. In the end a snake isn&rsquo;t an obstacle
for itself but in the game it is and I went all the way instead of only halfway.</p>
<p>It also would take more bytes and that&rsquo;s a problem with IOCCC rule 2b.</p>
<p>But if you have a problem with it you can always enable cannibalism and keep
walls passable and not worry about dying.</p>
<h4><a name="chocolatecake" href="#toc">Do you have any <strong>DELICIOUS CHOCOLATE CAKE</strong> recipes?</a></h4>
<p>Why yes I do! So good in fact that even my late stepmum who didn&rsquo;t even like
chocolate (except white chocolate) loved this cake. It&rsquo;s a double-layered
chocolate fudge cake. See the file <a href="chocolate-cake.html">chocolate-cake.html</a> for the recipe.
Note that it&rsquo;s a complicated but it&rsquo;s well worth it!</p>
<p>I included it in all my entries this year because if any of them won more people
can have this recipe; also it might help remind the judges that they really
should have their cook bake it so they can all - including the cook should they
also like chocolate - enjoy the cake whilst judging (and otherwise - it&rsquo;s a big
cake and very rich). Sadly they didn&rsquo;t get to enjoy it during their judging due
to the pandemic but maybe next time (or they can do on their own).</p>
<p>Do make sure to pay attention to all notes!</p>
<h5>A note on the icing and room temperature</h5>
<p>Please be advised that the note there that talks about the icing being difficult
in too warm room is rather significant; unfortunately with SARS-CoV-2 this might
be more of a problem depending on how long it lasts and where you reside. If
necessary use the refrigerator or else air conditioner to cool down the place.</p>
<h4><a name="alt" href="#toc">What are the files prog.2.c, prog.3.c, prog.3-j.c and prog.alt.c ?</a></h4>
<p>I submitted three Snake versions; these are the other layouts for those few
(or more likely none) who are interested to see them.</p>
<p>The prog.2.c has more digraphs but I think no other significant differences.</p>
<p>The prog.3.c is in a more artistic layout (a backwards S), has at least one
additional obfuscation technique (see spoilers) but it also has more digraphs
and as the judges said they feel that digraphs are dated so that&rsquo;s probably why
they chose the first layout. The prog.3-j.c version is prog.3.c with a shorter J
define.</p>
<p>The prog.alt.c version is the one that allows for customising the bug colour and
it&rsquo;s used in both <a href="snake-colours.sh">snake-colours.sh</a> and <a href="play.sh">play.sh</a>. It also calls <code>erase()</code>
first, clearing the screen, which the play.sh and snake-colours.sh scripts also
both do.</p>
<h2>Author&rsquo;s dedication:</h2>
<h3><a name="winning" href="#toc">Winning thoughts, dedications and thanks</a></h3>
<p>Once again I&rsquo;m honoured to win along with some of the other veterans who I have
a huge amount of respect for; there&rsquo;s Don Yang, Dave Burton, Yusuke Endoh and
Edward Giles all of whom are amazing programmers. I&rsquo;m especially proud to win
besides Dave Burton and Yusuke Endoh but Don Yang and Edward Giles too.</p>
<p>But there are some others who I don&rsquo;t remember like Ilya Kurdyukov (who&rsquo;s
offered a lot of interesting thoughts on Snake and who plans to have his own
version after the entries are published), Nathan Otterness, Nicholas Carlini
(whose entry is an absolutely brilliant abuse of printf - and I totally agree
with the judges comments that your entry is so novel that it&rsquo;ll be worth special
mention in the future Best of IOCCC list!) and tsoj too.</p>
<p>Well done and congratulations to all of you again! Thank you for submitting the
wonderful entries and I&rsquo;m honoured to have my two entries beside yours!</p>
<p>To Dave Burton I thank you for your wonderful comments as well as pointing out
that even with prog.orig.c it probably would be better to make use of the alt
target instead of naming prog.c prog.orig.c. You&rsquo;re quite right, I had thought
of it but you brought it up so I could correct it. Much appreciated mate.</p>
<p>I would like to dedicate this entry to my wonderful mum Dianne Ferguson whom I
love with all my heart and soul &lt;3 Thank you for being the best mother
imaginable! You&rsquo;ve been there for me in the darkest of my hours without question
without complaint and with all the love, compassion, empathy, sympathy and
devotion anyone could ever ask for. Bless you again and again and again dear
mother.</p>
<p>I also want to dedicate this to Vicky Wilmore who has given me a lot of
love the past few years and who was there for me in some very dark times. Thank
you Vicky sweetheart from the bottom of my heart and soul. Although we have
parted ways, whether for now or for ever, you will always always always have a
place in my heart and soul xxx</p>
<p>I would like to thank my dear friend Martijn Schoemaker for encouraging me in my
programming over the years and who I owe a great deal to. Thank you for
believing in me and my programming abilities (and other abilities) even when I
couldn&rsquo;t believe in myself! Very much appreciated especially coming from an
amazing programmer who I have huge admiration for!</p>
<p>I want to thank Ilya Kurdyukov for his helpful comments, suggestions and
reporting the problem about half-width/full-width char spacing. He&rsquo;s been
playing with some versions of his own and will have them on GitHub after the
2020 IOCCC winning entries have been published.</p>
<p>Finally I want to thank Leo Broukhis, Simon Cooper and Landon Curt Noll for
continuing to hold the contest after all these years - and for having selected
my entries. It&rsquo;s a huge honour; thank you! I also happen to <strong>love</strong> your
comments as well as the award titles. And yes indeed &lsquo;most of us could use
<em><a href="chocolate-cake.html">Double-layered Chocolate Fudge Cake</a></em>!&rsquo;</p>
<BR>
<HR>
<TABLE><TR>
<TD><a rel="license" href="https://creativecommons.org/licenses/by-sa/3.0/"><img alt="Creative Commons License" style="border-width:0" src="/png/by-sa-3.0-88x31.png" /></a></TD>
<TD><P>&copy; Copyright 1984-2020,
<A HREF="/judges.html">Leo Broukhis, Simon Cooper, Landon Curt Noll</A>
- All rights reserved<BR>
This work is licensed under a <a rel="license" href="https://creativecommons.org/licenses/by-sa/3.0/">Creative Commons Attribution-ShareAlike 3.0 Unported License</a>.</P></TD>
<TD>&nbsp;<!--<a href="https://validator.w3.org/check?uri=referer"><img src="https://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01 Transitional" height="31" width="88"></a>--></TD>
</TR></TABLE>
</body>
</html>