Merge pull request #15 from xexyl/ferguson-fixes

This commit is contained in:
Landon Curt Noll authored and GitHub committed 2022-09-18 11:15:49 -07:00
commit edbc3089e1
22 files changed
+637 -702

No files matched your search

+4 -4
View File
@@ -421,10 +421,10 @@ MAY_NEED_GCC= gcc
##############################
#
OBJ= prog.o termcaps.o
DATA= COMPILING HACKING bugs.markdown cannibalism.log \
chocolate-cake.markdown crazy.log gameplay.markdown \
judges.markdown snake-colours.sh snake.1 spoilers.markdown \
termcaps.c terminals.markdown troubleshooting.markdown
DATA= COMPILING HACKING bugs.text cannibalism.log \
chocolate-cake.text crazy.log gameplay.text \
snake-colours.sh snake.1 spoilers.text \
termcaps.c terminals.text troubleshooting.text
TARGET= prog snake snake-colours play snake-colours termcaps ${ALT_TARGET}
#
ALT_OBJ=
+12 -10
View File
@@ -27,16 +27,18 @@
<p>Current bugs and things that look like bugs but are not, as of 12 September 2020.</p>
<p><a name="toc"></a>
- <a href="#builtin-test-unit">Built-in test unit for some features!</a>
- <a href="#stillsnake">The snake doesn&rsquo;t seem to be moving</a>
- <a href="#getch">getch() also accepts input from some input hardware other than keyboards</a>
- <a href="#size">SIZE=0 is the same as SIZE=1 and other oddities</a>
- <a href="#bitetail">&lsquo;I was a few places behind my tail and I ran into it!&rsquo;</a>
- <a href="#middleofsnake">With negative growth the snake drops from the middle of the body</a>
- <a href="#buginsnake">It looks like the bug is in the snake</a>
- <a href="#bugplacement">On the safety of the bug placement loop</a>
- <a href="#verticalsnake">Vertical snake has more space between snake char than horizontal</a></p>
<p><a name="toc"></a></p>
<ul>
<li><p><a href="#builtin-test-unit">Built-in test unit for some features!</a></p></li>
<li><p><a href="#stillsnake">The snake doesn't seem to be moving</a></p></li>
<li><p><a href="#getch">getch() also accepts input from some input hardware other than keyboards</a></p></li>
<li><p><a href="#size">SIZE=0 is the same as SIZE=1 and other oddities</a></p></li>
<li><p><a href="#bitetail">'I was a few places behind my tail and I ran into it!'</a></p></li>
<li><p><a href="#middleofsnake">With negative growth the snake drops from the middle of the body</a></p></li>
<li><p><a href="#buginsnake">It looks like the bug is in the snake</a></p></li>
<li><p><a href="#bugplacement">On the safety of the bug placement loop</a></p></li>
<li><p><a href="#verticalsnake">Vertical snake has more space between snake char than horizontal</a></p></li>
</ul>
<h1><a name="builtin-test-unit" href="#toc">Built-in test unit for some features!</a></h1>
+10
View File
@@ -1,16 +1,26 @@
Current bugs and things that look like bugs but are not, as of 12 September 2020.
<a name="toc"></a>
- [Built-in test unit for some features!](#builtin-test-unit)
- [The snake doesn't seem to be moving](#stillsnake)
- [getch() also accepts input from some input hardware other than keyboards](#getch)
- [SIZE=0 is the same as SIZE=1 and other oddities](#size)
- ['I was a few places behind my tail and I ran into it!'](#bitetail)
- [With negative growth the snake drops from the middle of the body](#middleofsnake)
- [It looks like the bug is in the snake](#buginsnake)
- [On the safety of the bug placement loop](#bugplacement)
- [Vertical snake has more space between snake char than horizontal](#verticalsnake)
# <a name="builtin-test-unit" href="#toc">Built-in test unit for some features!</a>
Fun fact: There's something of a built-in test unit for some features; much
+44 -42
View File
@@ -25,26 +25,30 @@
</CENTER>
<h1>Double-layered Chocolate Fudge Cake</h1>
<p>Here&rsquo;s a delicious double-layered chocolate fudge cake (<a href="cake.jpg">picture</a>) that is
something of my mum&rsquo;s speciality. It&rsquo;s complicated and I should warn that nobody
has seemed to get it down as well as she has but it&rsquo;s well worth the effort if
<p>Here's a delicious double-layered chocolate fudge cake that is
something of my mum's speciality. It's complicated and I should warn that nobody
has seemed to get it down as well as she has but it's well worth the effort if
you love chocolate. My late stepmum who only liked white chocolate loved this
cake!</p>
<p><img src='cake.jpg' alt='picture of the double-layered chocolate fudge cake'></p>
<p>There are two sets of ingredients and instructions; the cake and the icing. In
addition there are some notes to pay attention to; some will be repeated because
they&rsquo;re really important for the quality of the cake.</p>
they're really important for the quality of the cake.</p>
<p>Below I have included the ingredients separately but I include them within the
instructions as well and in bold. Also in bold are some of the special notes.</p>
<p>Finally note that depending on where you are in the world this might not work in
the warmer months of the year for the icing in particular. Oh and here&rsquo;s an
amusing fact about the <a href="http://www.gomc.com/firstpage/200103068.pdf">IOCCC and chocolate</a>. Did I say &lsquo;the IOCCC&rsquo;? I actually
meant <strong>&lsquo;an IOCCC&rsquo;</strong>: it stands also for <strong>&lsquo;International Office of Cocoa, Chocolate
and Sugar Confectionery&rsquo;</strong>. Perfect.</p>
the warmer months of the year for the icing in particular. Oh and here's an
amusing fact about the <a href="http://www.gomc.com/firstpage/200103068.pdf">IOCCC and chocolate</a>. Did I say 'the IOCCC'? I actually
meant <strong>'an IOCCC'</strong>: it stands also for <strong>'International Office of Cocoa, Chocolate
and Sugar Confectionery'</strong>. Perfect.</p>
<p>See also the <a href="https://twitter.com/ilyakurdyukov/status/1290520266087571458?s=20">International Original Chocolate Cake Contest tweet</a> from
<a href="https://twitter.com/ilyakurdyukov">fellow IOCCC winner Ilya Kurdyukov</a> (<a href="https://github.com/ilyakurdyukov">GitHub</a>) as well as the
@@ -58,13 +62,9 @@ US standards. A nice resource (that has much more than just cooking) is
<a href="http://www.onlineconversion.com/cooking.htm">http://www.onlineconversion.com/cooking.htm</a>. This will particularly matter
for cups, teaspoons, tablespoons and ounces.</p>
<p>For example a US cup is not the same as Canadian cup and a metric cup differs
too. There&rsquo;s also a difference for teaspoons and tablespoons: there are metric,
UK and US teaspoons and tablespoons. There&rsquo;s both a UK and US ounce also.</p>
<h2>Baker's chocolate</h2>
<h2>Baker&rsquo;s chocolate</h2>
<p>Baker&rsquo;s chocolate is a brand name and the product in question is unsweetened
<p>Baker's chocolate is a brand name and the product in question is unsweetened
chocolate bars used for baking. According to a <a href="https://www.davidlebovitz.com/chocolate-faqs/">chocolates FAQ</a> it might be
called different things:</p>
@@ -74,12 +74,12 @@ composed only of ground up cocoa beans, and nothing else.
</code></pre>
<p>The FAQ suggests that you might have to look for a baking supply shop but I
cannot offer any specific advice other than it&rsquo;s unsweetened chocolate bars for
cannot offer any specific advice other than it's unsweetened chocolate bars for
baking. The FAQ talks about what looks like substitutes but I have no idea what
that would turn out as; I somehow suspect it wouldn&rsquo;t be good.</p>
that would turn out as; I somehow suspect it wouldn't be good.</p>
<p>Either way please <strong>still pay attention to the notes on the chocolate in the recipe and
recipe notes because they&rsquo;re really important!</strong></p>
recipe notes because they're really important!</strong></p>
<h2>Special notes for the cake</h2>
@@ -88,33 +88,34 @@ recipe notes because they&rsquo;re really important!</strong></p>
<ul>
<li><p><strong>USE MARGARINE</strong>. Butter does not work well.</p></li>
<li><p>Over the years they changed the size of the unsweetened chocolate squares;
they used to be one ounce each now they are &frac14; ounce each square so be sure to
they used to be one ounce each now they are 1/4 ounce each square so be sure to
note the amount is by ounce not squares as listed. See the measurements link
if there&rsquo;s any doubt.</p></li>
if there's any doubt.</p></li>
<li><p>Pay careful attention to <strong>cook for only the indicated time</strong>.</p></li>
<li><p><strong>Remove the cake from the pans 2 minutes after removing from oven</strong>. Then allow
to fully cool on racks. The important point is that they don&rsquo;t overcook.</p></li>
to fully cool on racks. The important point is that they don't overcook.</p></li>
<li><p>When the recipe was first written they sold powdered sugar in a box; now
it&rsquo;s confectioners sugar in a bag. My mum experimented with the amount and
it's confectioners sugar in a bag. My mum experimented with the amount and
found that 4 cups seems about right.</p></li>
<li><p>She uses <strong>whole milk</strong> for this recipe; she doesn&rsquo;t know if it really matters
<li><p>She uses <strong>whole milk</strong> for this recipe; she doesn't know if it really matters
but given that she and I both prefer skim milk except for here and in
chocolate milk I would recommend whole milk for this recipe too. In any case
it turns out great!</p></li>
<li><p>Use only <strong>pure vanilla extract</strong>! Do <strong>not use imitation vanilla!</strong></p></li>
</ul>
<h2>Cake Ingredients</h2>
<ul>
<li>3 oz unsweetened (Baker&rsquo;s) chocolate</li>
<li>2 and &frac14; cups flour</li>
<li>3 oz unsweetened (Baker's) chocolate</li>
<li>2 and 1/4 cups flour</li>
<li>2 tbsp baking soda</li>
<li>&frac12; tsp salt</li>
<li>2 and &frac14; cups packed brown sugar</li>
<li>1/2 tsp salt</li>
<li>2 and 1/4 cups packed brown sugar</li>
<li>3 eggs</li>
<li>1 and &frac12; tsp vanilla</li>
<li>&frac12; cups margarine</li>
<li>1 and 1/2 tsp vanilla</li>
<li>1/2 cups margarine</li>
<li>1 cup (boiling) water</li>
<li>1 cup sour cream</li>
</ul>
@@ -133,11 +134,11 @@ it turns out great!</p></li>
<ol>
<li><p>Melt <strong>3 oz unsweetened chocolate</strong> in double boiler or small bowl over
<strong>hot (<em>but not boiling</em>) water</strong>; let cool whilst proceeding.</p></li>
<li><p>Sift <strong>2 &frac14; cups flour</strong>, <strong>2 tsp baking soda</strong>, and <strong>&frac12; tsp salt</strong></p></li>
<li><p>Sift <strong>2 1/4 cups flour</strong>, <strong>2 tsp baking soda</strong>, and <strong>1/2 tsp salt</strong></p></li>
<li><p>Beat <strong>1 stick margarine</strong> in large bowl <em>until soft</em>.</p></li>
<li><p>Add <strong>2 &frac14; cups packed brown sugar</strong> and <strong>3 eggs</strong>. Beat until light and
<li><p>Add <strong>2 1/4 cups packed brown sugar</strong> and <strong>3 eggs</strong>. Beat until light and
fluffy.</p></li>
<li><p>Beat in <strong>1 &frac12; tsp vanilla</strong> and <strong>cooled melted chocolate</strong>.</p></li>
<li><p>Beat in <strong>1 1/2 tsp vanilla</strong> and <strong>cooled melted chocolate</strong>.</p></li>
<li><p>Stir in dry ingredients alternately with <strong>1 cup sour cream</strong>; always beat
until smooth.</p></li>
<li><p>Stir in <strong>1 cup boiling water</strong>.</p></li>
@@ -152,10 +153,10 @@ completely.</p></li>
<h2>Icing Ingredients</h2>
<ul>
<li>4 oz unsweetened chocolate (Baker&rsquo;s chocolate)</li>
<li>&frac12; cup margarine</li>
<li>4 oz unsweetened chocolate (Baker's chocolate)</li>
<li>1/2 cup margarine</li>
<li>4 cups powdered sugar</li>
<li>&frac12; cup whole milk</li>
<li>1/2 cup whole milk</li>
<li>2 tsp vanilla</li>
</ul>
@@ -169,30 +170,29 @@ bowl can sit in.</p>
<ul>
<li><p>Make sure that the melted chocolate and margarine does not get solid.</p></li>
<li><p>For step #4 put <strong>8 to 10 ice cubes</strong> in a pan or big bowl (that&rsquo;s big
<li><p>For step #4 put <strong>8 to 10 ice cubes</strong> in a pan or big bowl (that's big
enough that another bowl can fit in it). Add an inch of water and then set
the bowl with the icing in the pan or bowl of ice water. <strong>Do not let the
icing get wet!</strong></p></li>
<li><p>Do not let icing get too thick.</p></li>
<li><p>Use <strong>whole milk.</strong></p></li>
<li><p>Use only <strong>pure vanilla extract</strong>! Do <strong>not use imitation vanilla!</strong></p></li>
</ul>
<h2>Icing Directions</h2>
<ol>
<li><p>Combine <strong>4 oz unsweetened chocolate</strong> and <strong>&frac12; cup margarine</strong> in pan.
<li><p>Combine <strong>4 oz unsweetened chocolate</strong> and <strong>1/2 cup margarine</strong> in pan.
Melt and remove from heat. <strong>DO NOT LET IT GET SOLID.</strong></p></li>
<li><p>Combine <strong>3 &frac14; cups powdered sugar</strong>, <strong>&frac12; cups whole milk</strong> and <strong>2 tsp
<li><p>Combine <strong>3 1/4 cups powdered sugar</strong>, <strong>1/2 cups whole milk</strong> and <strong>2 tsp
vanilla</strong> into a bowl. <strong>Stir until smooth</strong>.</p></li>
<li><p>Add chocolate mixture.</p></li>
<li><p>Set bowl in pan/bowl of ice and water. Beat with spoon/mixer until it&rsquo;s
thick BUT not too thick. Make sure icing doesn&rsquo;t get wet! The idea is to
<strong>MAKE THE BOWL IT&rsquo;S IN COLD <em>but not let the icing get wet</em></strong>.</p></li>
<li><p>Set bowl in pan/bowl of ice and water. Beat with spoon/mixer until it's
thick BUT not too thick. Make sure icing doesn't get wet! The idea is to
<strong>MAKE THE BOWL IT'S IN COLD <em>but not let the icing get wet</em></strong>.</p></li>
</ol>
<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,
@@ -203,3 +203,5 @@ This work is licensed under a <a rel="license" href="https://creativecommons.org
</TR></TABLE>
</body>
</html>
+7 -4
View File
@@ -1,11 +1,13 @@
# Double-layered Chocolate Fudge Cake
Here's a delicious double-layered chocolate fudge cake ([picture][]) that is
Here's a delicious double-layered chocolate fudge cake that is
something of my mum's speciality. It's complicated and I should warn that nobody
has seemed to get it down as well as she has but it's well worth the effort if
you love chocolate. My late stepmum who only liked white chocolate loved this
cake!
<img src='cake.jpg' alt='picture of the double-layered chocolate fudge cake'>
There are two sets of ingredients and instructions; the cake and the icing. In
addition there are some notes to pay attention to; some will be repeated because
they're really important for the quality of the cake.
@@ -32,9 +34,6 @@ US standards. A nice resource (that has much more than just cooking) is
[http://www.onlineconversion.com/cooking.htm][]. This will particularly matter
for cups, teaspoons, tablespoons and ounces.
For example a US cup is not the same as Canadian cup and a metric cup differs
too. There's also a difference for teaspoons and tablespoons: there are metric,
UK and US teaspoons and tablespoons. There's both a UK and US ounce also.
## Baker's chocolate
@@ -79,6 +78,8 @@ recipe notes because they're really important!**
chocolate milk I would recommend whole milk for this recipe too. In any case
it turns out great!
* Use only **pure vanilla extract**! Do **not use imitation vanilla!**
## Cake Ingredients
@@ -155,6 +156,8 @@ bowl can sit in.
* Use **whole milk.**
* Use only **pure vanilla extract**! Do **not use imitation vanilla!**
## Icing Directions
+53 -29
View File
@@ -30,35 +30,59 @@ have included much more than just the input keys and a few printouts of the
game. For normal play you probably don&rsquo;t even need this file at all unless it be
for the input keys.</p>
<p><a name="toc"></a>
1. <a href="#support">Testing terminal environment/capabilities</a>
2. <a href="#input">Input keys</a>
3. <a href="#gameplay">Gameplay</a>
* <a href="#initial">The initial screen</a>
* <a href="#playing">Playing the game</a>
* <a href="#walls">Walls</a>
* <a href="#cannibalism">Cannibalism</a>
* <a href="#shedding">Stretching (shedding)</a>
* <a href="#winning">Winning</a>
* <a href="#quitting">Quitting</a>
4. <a href="#modes">Gameplay modes</a>
* <a href="#warning"><strong>Photosensitive epilepsy/Stimulation overload trigger warnings</strong></a>
* <a href="#drawing">Drawing / Practice mode</a>
* <a href="#auto">Computer playing / Automatic mode (<strong>Photosensitive epilepsy/Stimulation overload trigger</strong>)</a>
* <a href="#auto-variations">Variations</a>
* <a href="#grow-shrink">Grow-Shrink (Positive/Negative Winning) mode</a>
* <a href="#hypnotic">Hypnotic / Sleepy mode (<strong>Photosensitive epilepsy/Stimulation overload trigger</strong>)</a>
* <a href="#stim">Stimulation / Calming mode</a>
* <a href="#other-ideas">Other ideas</a>
5. <a href="#scripts">Scripts</a>
* <a href="#colours">Colours selection</a>
* <a href="#preset">Automate the above gameplay modes</a>
6. <a href="#variables">Game variables</a>
* <a href="#wait">WAIT - Snake speed</a>
* <a href="#evade">EVADE - Bug evasion frequency</a>
* <a href="#sizes">SIZE / MAXSIZE - Initial snake / max sizes</a>
* <a href="#growth">GROW / SHEDS - Growth / Shedding sizes</a>
7. <a href="#conclusions">Conclusion (and inspirational words for everyone)</a></p>
<p><a name="toc"></a></p>
<ol>
<li><p><a href="#support">Testing terminal environment/capabilities</a></p></li>
<li><p><a href="#input">Input keys</a></p></li>
<li><p><a href="#gameplay">Gameplay</a></p>
<ul>
<li><p><a href="#initial">The initial screen</a></p></li>
<li><p><a href="#playing">Playing the game</a></p></li>
<li><p><a href="#walls">Walls</a></p></li>
<li><p><a href="#cannibalism">Cannibalism</a></p></li>
<li><p><a href="#shedding">Stretching (shedding)</a></p></li>
<li><p><a href="#winning">Winning</a></p></li>
<li><p><a href="#quitting">Quitting</a></p></li>
</ul>
</li>
<li><p><a href="#modes">Gameplay modes</a></p>
<ul>
<li><p><a href="#warning"><strong>Photosensitive epilepsy/Stimulation overload trigger warnings</strong></a></p></li>
<li><p><a href="#drawing">Drawing / Practice mode</a></p></li>
<li><p><a href="#auto">Computer playing / Automatic mode (<strong>Photosensitive epilepsy/Stimulation overload trigger</strong>)</a></p>
<ul>
<li><a href="#auto-variations">Variations</a></li>
</ul>
</li>
<li><p><a href="#grow-shrink">Grow-Shrink (Positive/Negative Winning) mode</a></p></li>
<li><p><a href="#hypnotic">Hypnotic / Sleepy mode (<strong>Photosensitive epilepsy/Stimulation overload trigger</strong>)</a></p></li>
<li><p><a href="#stim">Stimulation / Calming mode</a></p></li>
<li><p><a href="#other-ideas">Other ideas</a></p></li>
</ul>
</li>
<li><p><a href="#scripts">Scripts</a></p>
<ul>
<li><p><a href="#colours">Colours selection</a></p></li>
<li><p><a href="#preset">Automate the above gameplay modes</a></p></li>
</ul>
</li>
<li><p><a href="#variables">Game variables</a></p>
<ul>
<li><p><a href="#wait">WAIT - Snake speed</a></p></li>
<li><p><a href="#evade">EVADE - Bug evasion frequency</a></p></li>
<li><p><a href="#sizes">SIZE / MAXSIZE - Initial snake / max sizes</a></p></li>
<li><p><a href="#growth">GROW / SHEDS - Growth / Shedding sizes</a></p></li>
</ul>
</li>
<li><p><a href="#conclusions">Conclusion (and inspirational words for everyone)</a></p></li>
</ol>
<h1>1. <a name="support" href="#toc">Testing terminal environment/capabilities</a></h1>
+33
View File
@@ -4,35 +4,68 @@ game. For normal play you probably don't even need this file at all unless it be
for the input keys.
<a name="toc"></a>
1. [Testing terminal environment/capabilities](#support)
2. [Input keys](#input)
3. [Gameplay](#gameplay)
* [The initial screen](#initial)
* [Playing the game](#playing)
* [Walls](#walls)
* [Cannibalism](#cannibalism)
* [Stretching (shedding)](#shedding)
* [Winning](#winning)
* [Quitting](#quitting)
4. [Gameplay modes](#modes)
* [**Photosensitive epilepsy/Stimulation overload trigger warnings**](#warning)
* [Drawing / Practice mode](#drawing)
* [Computer playing / Automatic mode (**Photosensitive epilepsy/Stimulation overload trigger**)](#auto)
* [Variations](#auto-variations)
* [Grow-Shrink (Positive/Negative Winning) mode](#grow-shrink)
* [Hypnotic / Sleepy mode (**Photosensitive epilepsy/Stimulation overload trigger**)](#hypnotic)
* [Stimulation / Calming mode](#stim)
* [Other ideas](#other-ideas)
5. [Scripts](#scripts)
* [Colours selection](#colours)
* [Automate the above gameplay modes](#preset)
6. [Game variables](#variables)
* [WAIT - Snake speed](#wait)
* [EVADE - Bug evasion frequency](#evade)
* [SIZE / MAXSIZE - Initial snake / max sizes](#sizes)
* [GROW / SHEDS - Growth / Shedding sizes](#growth)
7. [Conclusion (and inspirational words for everyone)](#conclusions)
# 1. <a name="support" href="#toc">Testing terminal environment/capabilities</a>
Most people probably won't have any issue at all but for those who have any
+13 -1
View File
@@ -181,16 +181,26 @@ and [troubleshooting.html][] - along with the most important one
* ['Bugs'](#bugs)
* [NAQs/IAQs (Never/Infrequently Asked Questions)](#naqs)
- [Do I have any inspirations for this entry?](#inspirations)
- [Are there any features I thought of that I wanted to implement but did not get to for some reason or another?](#features)
- [Are there ways that one can make this game easier?](#easier)
- [Are there ways to make it harder?](#harder)
- [How do snakes grow in real life?](#moult)
- [Any other interesting things about snakes?](#other)
- [Why can you go the opposite direction and so immediately die when not cannibalising?](#opposite)
- [Do you have any **DELICIOUS CHOCOLATE CAKE** recipes?](#chocolatecake)
- [What are the files prog.orig.c, prog.2.c, prog-j.c and prog.alt.c ?](#alt)
* [Winning thoughts, dedications and thanks](#winning)
@@ -494,7 +504,9 @@ mother.
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 xxx.
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
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
+6
View File
@@ -513,6 +513,12 @@ 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
+17 -10
View File
@@ -39,16 +39,23 @@ everything will be answered here.</p>
wants to know more about it) read on. Yes I write a lot. But you probably
already knew that so no harm there, hey?</p>
<p><a name="toc"></a>
- <a href="#works">How does it work?</a>
- <a href="#movement">How does the snake movement work?</a>
- <a href="#manual-automatic">Drawing (manual) and computer playing (automatic) modes</a>
- <a href="#collision">Collision detection</a>
* <a href="#cannibalcollision">Cannibal collision detection</a>
* <a href="#resizing">Collision detection when resizing the window of the game</a>
- <a href="#obfuscation">Obfuscation</a>
- <a href="#skinning">Skinning the snake (i.e. decreasing the iocccsize)</a>
- <a href="#size">A few more interesting size optimisations</a></p>
<p><a name="toc"></a></p>
<ul>
<li><p><a href="#works">How does it work?</a></p></li>
<li><p><a href="#movement">How does the snake movement work?</a></p></li>
<li><p><a href="#manual-automatic">Drawing (manual) and computer playing (automatic) modes</a></p></li>
<li><p><a href="#collision">Collision detection</a></p>
<ul>
<li><p><a href="#cannibalcollision">Cannibal collision detection</a></p></li>
<li><p><a href="#resizing">Collision detection when resizing the window of the game</a></p></li>
</ul>
</li>
<li><p><a href="#obfuscation">Obfuscation</a></p></li>
<li><p><a href="#skinning">Skinning the snake (i.e. decreasing the iocccsize)</a></p></li>
<li><p><a href="#size">A few more interesting size optimisations</a></p></li>
</ul>
<h1><a name="works" href="#toc">How does it work?</a></h1>
+10
View File
@@ -13,16 +13,26 @@ wants to know more about it) read on. Yes I write a lot. But you probably
already knew that so no harm there, hey?
<a name="toc"></a>
- [How does it work?](#works)
- [How does the snake movement work?](#movement)
- [Drawing (manual) and computer playing (automatic) modes](#manual-automatic)
- [Collision detection](#collision)
* [Cannibal collision detection](#cannibalcollision)
* [Collision detection when resizing the window of the game](#resizing)
- [Obfuscation](#obfuscation)
- [Skinning the snake (i.e. decreasing the iocccsize)](#skinning)
- [A few more interesting size optimisations](#size)
# <a name="works" href="#toc">How does it work?</a>
The gameplay I have already described but this explains the way things are
+24 -13
View File
@@ -31,19 +31,30 @@
file. I discuss terminal capabilities, dimensions (setting and how to restore
sanity if it causes any problems) as well as colours (limitations etc.).</p>
<p><a name="toc"></a>
- <a href="#termcaps">Capabilities support testing program</a>
- <a href="#dimensions">Setting the game dimensions</a>
* <a href="#linescolumns">The LINES and COLUMNS environmental variables</a>
* <a href="#insanity">Terminal insanity</a>
* <a href="#restore">Restoring the terminal</a>
* <a href="#abuse">Terminal size abuse</a>
- <a href="#termlimitations">Terminal limitations</a>
- <a href="#colours">Terminal colours</a>
* <a href="#background">Curses background</a>
* <a href="#monochrome">Monochrome terminals</a>
* <a href="#colourlimitations">Colour limitations</a>
* <a href="#disablecolour">Disabling colour</a></p>
<p><a name="toc"></a></p>
<ul>
<li><p><a href="#termcaps">Capabilities support testing program</a></p></li>
<li><p><a href="#dimensions">Setting the game dimensions</a></p>
<ul>
<li><p><a href="#linescolumns">The LINES and COLUMNS environmental variables</a></p></li>
<li><p><a href="#insanity">Terminal insanity</a></p></li>
<li><p><a href="#restore">Restoring the terminal</a></p></li>
<li><p><a href="#abuse">Terminal size abuse</a></p></li>
</ul>
</li>
<li><p><a href="#termlimitations">Terminal limitations</a></p></li>
<li><p><a href="#colours">Terminal colours</a></p>
<ul>
<li><p><a href="#background">Curses background</a></p></li>
<li><p><a href="#monochrome">Monochrome terminals</a></p></li>
<li><p><a href="#colourlimitations">Colour limitations</a></p></li>
<li><p><a href="#disablecolour">Disabling colour</a></p></li>
</ul>
</li>
</ul>
<h1><a name="termcaps" href="#toc">Capabilities support testing program</a></h1>
+14
View File
@@ -6,19 +6,33 @@ sanity if it causes any problems) as well as colours (limitations etc.).
<a name="toc"></a>
- [Capabilities support testing program](#termcaps)
- [Setting the game dimensions](#dimensions)
* [The LINES and COLUMNS environmental variables](#linescolumns)
* [Terminal insanity](#insanity)
* [Restoring the terminal](#restore)
* [Terminal size abuse](#abuse)
- [Terminal limitations](#termlimitations)
- [Terminal colours](#colours)
* [Curses background](#background)
* [Monochrome terminals](#monochrome)
* [Colour limitations](#colourlimitations)
* [Disabling colour](#disablecolour)
# <a name="termcaps" href="#toc">Capabilities support testing program</a>
Although it should be playable without the features I use (except that cursor
+2 -2
View File
@@ -420,8 +420,8 @@ MAY_NEED_GCC= gcc
##############################
#
OBJ= prog.o recode.o
DATA= chocolate-cake.markdown enigma.1 input.txt obfuscation.key \
obfuscation.markdown obfuscation.txt recode.1 recode.markdown \
DATA= chocolate-cake.text enigma.1 input.txt obfuscation.key \
obfuscation.text obfuscation.txt recode.1 recode.text \
try.this.txt
TARGET= prog recode
#
+186 -184
View File
@@ -1,205 +1,207 @@
<!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>
</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>Supplemental Info</B></FONT></P>
</CENTER>
<!blnkmml kfhw esuvmm "-//E3H//ZKE QPTC 4.0 Hqksgdccgzux //JM">
<ceuj>
<ihbm>
<lpnt rdzu="ARDMKELTX" zeonuzp="ygo2pkkj 2.2.2">
<iaih awfv-dwjnk="Qewrbmd-Wpdi"
iptvpkg="avwx/wjww; ntqnaup=rnl-8"> <cuij yap="wdokyotyrv"
meuk="pqle/ifn"
iuzg="../qzax.kod" />
<knycw></ljphp>
</aobi>
<lkwd>
<NJHJTX>
<YVF UWO="/fld/uused.jiu" RAL="VWPNJ" cbfmtq=78 jeayd=267>
<Z><YKDO lzhy="6"><N>Gzu Bxcpxtvfwsrte Sfwxftjagv L Xluj Kyskzrd</T></ZXHE></E>
<sls zk="ztq">
<to>
<tf><b yboz="../smavm.klie">Exqka gnm 27cz WRQDY</i></hs>
<io><h qmuw="../srqesi.dsbs">27mp FHUTS Npiwwod</k></gc>
<cn><w injl="/flwby.jsds">VPAZR kclw</o></km>
<kq><k mykr="/cldlzmf.vkzh">Idjx cz Erk Tlrzdpk</d></dh>
<hj><f ehly="/sasjgh.xdfo">Grz Lgpclc</o></ga>
</ta>
</jnq>
<G><ZUGQ tknd="6"><K>Zxdohfunvftm Vgbs</T></IPOE></L>
</XCJFRM>
<h1>Blyzot-erhnfpm Tgbmmuykd Sczuo Mkwo</h1>
<p>Fmjy&rsquo;m u ejbtspawc uynzki-ydvutrn uycmtblxh pebvw rqoa ([aqokbko][]) wvlu lw
hwsoiidmi zh qk vmv&rsquo;d bzwogejsja. Vz'r ekzikmgvbaa pag K wbyotn vbea mccf ksukqk
ptw whcbhc is fir lx iefx qn zogm zl ywv byg oel cp'u rasn yrvhl swj lvcnqd ob
pep rsgw ozlqwwbyl. Kx wbqh vauthso bsc ksyk qourl fklgy jmbxlopdh gypjt iqtg
pmzm!</p>
<p>Udmal dkt lsp qqsy yp tlrfflcadmq twx rgkjomdrafwq; fag wtil lkf xcw bvtix. Fd
tglfknlq ftyio zck wvfw tuzbc ov kpw fhbnlsuqm jr; brlj ejgz xk ezbzskof ylybrja
ofpz'nb skgbdo kfgvhybte cbi kxz brmmcpw na frm digs.</p>
<p>Njuvk A qfuw vctjxpck agn cxvszhvpmve ftlfhvfrjw coc G qyjcdpa kctj gcplqg grp
nmaloxwwozfp gf btda fyq qg sfhk. Quwg pz thym wut fmkn pl ecg xeqpsrf viwjp.</p>
<p>Axvgudh pcwk nlti gkeivfrso pd hqinj qli opo wl ywr ebodp kgzp ebmxg amp olsq sd
spn uoiovg ldqfgu up nmq xwqt bjl owv bgobf wu yttxfukxme. Bv exq ngtl'v rd
zppzslq iifa vnskl vdy [DYLOM fbz yxyybboac][]. Jlc K cta &lsquo;jtu ADQHH&rsquo;? J eyivzvjm
uoszv <strong>&lsquo;rz KJTAS&rsquo;</strong>: go ddiakd fsld xpo <strong>&lsquo;Qfriesmnegfyy Yiolxt sc Gxbqu, Alqgkjwvs
smn Vzhnw Wivhxznrurlaf&rsquo;</strong>. Hsklooo.</p>
<p>Nuu eeri qeq [Oadjdycawzqvx Xdpxtyfp Somajogwp Odgi Vsipbmw ocrop][] azil
[wgebeg MRSZV llhgbq Wmxj Lcdxazejr][] ([QcoIcg][]) cu idav en cgq
[GFRLF qjwx xqohgt hcuuk][] xr cau guxixut vs qws qfiuc (aegma mm dkhlssl ajty
ho gkxcu xi sgj ooxd esyf IAGZ).</p>
<h2>Sckcsdvbydyo</h2>
<p>Jnrk qmg iqtxhgquic nkgn gt Xfhgtmca umzexdp zmmd jd ecr iroibmjknfqq wwi xl wfj
PX okehiytom. G snag ukixfasm (ocpo ggh ilou wgak iuqg zmce kmvawlk) av
[avbr://sja.qlsmhdmrbapimbbi.tht/tkyhwom.fyb][]. Usrw vvpj bbkxmvdygmxr ncpagf
uba rivl, bqkejiwxg, ucfefwchkyv ywm mqztme.</p>
<p>Jcd wprkwmc l KG dea nb otn uuu epxv qa Ajgkbxvh iej lcn m tzsunm nku isetzyz
ibx. Cdoyl'i zkbr d kmnptopmow bgb eovlgmfgm evq rsvodkqubvc: giufj eyv evjqtg,
VX ggg IF xrxlusqvu xge ifipthclqob. Yaaqu'b rlxq r LU leb TT dvdxl yzhg.</p>
<h2>Nwoby'a ikcttuuny</h2>
<p>Yjzpo'r lrguczhuf jg k wedyv wuzh wbn hjz ndpetqn ua alsyhjif pa jzpkpvsbhfg
jvmfizhhm lodl suvv qwb vkmcuu. Zdxczjlel ws m [krhflrqenr UPT][] yx kwiyw ff
bmbfzf fhdhofczb umcjwd:</p>
<pre><code>Stxxcq jcvojyeen niyjhfjj un gknyk gqw tl kmfhe ktmafv 'ifppbjsumke' nt
'nvnukx' ljdglnnwn. Em vpzd ypwsybqqm pb'a tcnbgb 100% vrsnq hxqhd dj'o
gbdacgoy zfpg gc wmyisn ms lsbwq rhvae, srr kjzkhhw gjis.
</code></pre>
<p>Pxr STS tbidyehv btzk cjc jxqdl fmli eu cbsd ykx h uqskws nrears nwlv wxa M
ghpsen zegtk rdp ukrkutqj rhbsqd eddkm oiia xa'w gyuhflmapcz kfmuibvvo pzte qga
idgkqz. Pnp GBM grnri gingi fmzp zzihk pnna roauxaamyrb osn G qluz qs hevd bqpz
lnms pgmmt igfl ibx no; S zlejcqs kshjizp zg lyrgjm'y kx txnt.</p>
<p>Zbnbui xsx iyixiw <strong>mvziw sim pjhgipcvy ne jpi pggvl yl yjk iftykvnds bz kdu cytdus njv
hhovdv dqwzk jxjhyat dvcu'iz ozkcpi cuyvwkwul!</strong></p>
<h2>Iaguufw ptksy khc eul rivq</h2>
<p><strong>JWG XBPXH SMZBGIGZE NA WACWA:</strong></p>
<ul>
<li><p><strong>YPR ZBUOWLTMO</strong>. Dhnzon guyp bbg pigg oivj.</p></li>
<li><p>Zpwl bfs kaukq sqyp eupixmg fbm axyt rv zsr abcqyscdoxi iknxfunko jihvhbt;
aknc ygtl mg ah gfk mecfs jduc tar fccx vor &frac14; tsvzj ifnm gyzoni jm ky ynao zk
wchs dxb noszon jc uf niymx lnq vdxryxp ih ppdpgz. Ddi skq jpedogukixmh gsgn
yc hqjwo'i qlt lmjhm.</p></li>
<li><p>Dgq ntddyjz invdacusu iy <strong>nltp rqc nfdo ouz byyyxizga itxv</strong>.</p></li>
<li><p><strong>Efpmqw rta fqzx eyia luz doxl 2 qlpnzxq oypgx zgtdzvct nkwu fcyk</strong>. Rbha xmonj
gs znxtb gvui lf xiarx. Bmd nycyxorye oaaqn qv ktic ibko ria'q jjhhfiwh.</p></li>
<li><p>Zvzd jvo xkyqrf hrk uqhdj kwvdfme qbih wion uwcaazdg vixms bz u xwy; hpv
qk'v yqsrzsqpmuioo zxfza pf x vfx. Dv oba btwjdhhleena mmbw cdl sucpvv buk
jhgkw mnin 4 gmgw yfond mtugo ovoen.</p></li>
<li><p>Xam ffir <strong>iysbn ujxv</strong> bnh rqmy kdokba; nki htnqr&rsquo;m tbqe cq yz gfuxyk hqlpuxj
qvw qqipa meza avd qrz X cpsi kluwhv dtto xlvj ryxltx amy twcn fet lh
obhlsdhrs wypr O rftiu loxqwfcmf foktg ifsu qbc cnwq edbxsx mex. Ud tcz eqlr
ya sbzbw ddb wipoz!</p></li>
</ul>
<h2>Riyt Zzfugrclkfc</h2>
<q1>Fuvkkv-usgqjgx Qcaizhkzs Pclwj Rema</q1>
<ul>
<li>3 nr fovsytpsekb (Kiysc'h) ncpukjrqo</li>
<li>2 gwe &frac14; ncvg hvqcs</li>
<li>2 xjmv siggbf lgbi</li>
<li>&frac12; ein wsua</li>
<li>2 dwg &frac14; ijoy cgaxlr vuaie jgowb</li>
<li>3 abpb</li>
<li>1 xoh &frac12; gaa hpvwixo</li>
<li>&frac12; usyk fcosykhrs</li>
<li>1 ury (ksvheid) vcart</li>
<li>1 qwg ilvb hoctz</li>
</ul>
<j>Paey'f q uhaovhamb nyxkuq-jyixvbm baaimvgzx xqnlp kvns pidw rp
grpijyvpq rx xf qpv'j rbcvrlzzrk. Wq'y ushwvyjuyke nay N ktrffc jktr gktp hlgbrc
neo yjzovc od dld rm bzgg ko xgyt vh rdn ijw dng aa'h yhtr hkeyv sbr wjwjgy oe
ehh ohxc rovdhaelx. Se qmhs veijxpw xuy ayrz igiig iyvsg aoyhmzkim ersge jtwn
tsiw!</k>
<j><wdb dnb='rywr.dgc' tcv='damnszf iz rkx rypyil-pcdwcsf rdtvwzcol bmysf nlsv'></a>
<b>Ofxhd hyt znm osqe ej lskvabdlpwb dat alksmyvrdhlz; esb dfrh vzi gyd fohbk. Eo
mbxzjdtv cpmct xsy dcio iysmt lf uqp obfoevbpq mz; wyxj achz gv tdbdlpat gyohdmz
dvsm'ci ijjuqf bnilvlvdi cts irs dqqjvke pw mxf rjlm.</b>
<u>Ijowa C iojt cfnmshjt ylo vbtgueqwscu xlzrwkojki mpg H qmigngh luxe fhavss nuw
mmcnesjvtajg kc nktv mut wb idbl. Vvya sj uthh rgy flkp jr bii xjiptos odnpn.</w>
<b>Ldyqamq iios njmq atitwpjbm rz caugb ziw nmj aj grv ompxx jmgl izryl bba hxvs nb
urg eunghe bdgusc fi wmz uvdu qbb vkz zpvrs ow gesxubosuu. Ty mra qqgp't hj
moaumqp yssl oldpk mew <k gbqg="nfqn://ejq.kxbg.wqz/amlzjrswm/200103068.hqi">XUSIW gwl gqkghwjpk</d>. Vdx T ogr 'vdf WWNGE'? V vquojmot
vvchf <gngrpy>'oq YMVBT'</evhpfa>: wl nxitrr xuom zil <xbyxzf>'Mvwkhwfyucdih Jzxrll rs Ofztr, Zsapqagyp
ekl Bxahm Jmaxnjuadsfvq'</zulgbf>. Tbyhuyy.</h>
<h>Jwi ndqw owa <e rqoi="vduzh://zycakph.ezz/gfptltdljsjre/wznrle/1290520266087571458?y=20">Resabtlkthvkv Ubjdlzry Fmrmpbovr Gyln Ewxoodl omhas</j> gxqb
<x lwho="rfjxk://kuxvwgk.mbk/wphbaipivivcp">lkpwnx ORZDI zfwayb Fodp Opaulixym</y> (<v liht="mfvew://nbpsye.frp/tpjkcqajvaaxi">ErxZee</b>) wc kubq mc rmm
<s kudy="ltkuq-qeyb.aaf">UTRRA swvw krabmq ktnrl</z> lx zmk hmwzmwu db hmh myvjs (zxkuk xi gguzshh qpvn
ji xdrna qq wgs ufij pusy IWAZ).</i>
<g2>Vmzbpkajdkuj</f2>
<r>Zyyy rco pshmzwqxwb qffs pm Zbmurfgp nncrgld lkxc ns ivg orwajarbrsyu jls oy blp
FW vaoqvqcrk. L hleg wtuztwmk (zkzr qlv isla gkif rfqy enkz mzudrmz) me
<z lmdg="kvfe://ygi.uymkyjhsmeivkgkd.tkb/tbzfxao.szd">npsw://eqg.wozhlmodaeqqnfks.lqt/wlgtpom.ozs</b>. Pfuh uyce loahexefdvig hzcmwa
whf sfdf, zycmoblzw, nhzrikqxtmz uqb brdbrl.</h>
<r2>Gjcym'w xbbtlzqpq</n2>
<v>Ruovw'b lqvtazxpd ev n dlosb brnm rul oud setwnmr kz omyhofyc yw kyzjuwoqckx
xdpgrvizb mmmr ogfy utu cgedcr. Imubdurmb ni c <h atyz="vjgwm://hxo.jegsfxytjlpjt.lyy/fxcevnqmm-nmvz/">xgcorjiori SIW</c> vc qwpmh et
xsuslw cqxxwxpke qnhror:</h>
<ush><qpht>Tybhjw uckyhjdmd prooflkq zq boscn orl kw cunwh qyxehl 'whyzmipbolq' pn
'ovnwyv' xfhwgfrvx. Fw htwr bnchcbgdt cv'v hpkjws 100% tozqw qxdfw xm'u
fdrjzzvn fyiu dd zdhzkm eh xfrzy alnlt, feq dqdaszl xcbf.
</zutt></vjg>
<i>Ivf PHR hsdypdji vnry riq rfsnm ztif af mmai yvy t nhzqiy oalovw imqx yzl Q
lqaorg szifn cfs hhzwvzpm qrxfbd jcvaa ruem aw'u laopuoiodfr qyesfauvx qoux wks
edemkk. Xaz UBB yjuza dnvdv kmgp ozidw fkxj gykpyuylpdx zzc U nywk ce zpgh azhn
eglj ewxmx bhcz dwd ta; D myapezi kawitme ya asmrvh'l wx dgkb.</o>
<h>Yoifpg tml oeahqo <jveeyu>qzvdq wqv nxjilqbsp zv qsj mnfuc rl pjb watumznon pr mmg dwidqk wzm
kkhpba sryyo pawgbix meph'nm ctsvak ecbjlrdbk!</dkcmen></a>
<z2>Atbhglw jqhwh yvq dsc otct</b2>
<v><jrjcky>JJE RFDCH JVVUQXCKL NK LQGUO:</oghdad></r>
<ku>
<zp><g><prqear>LZV XKXRMAKDW</qstdzw>. Jejeuc uctt zdd lklw fbzb.</g></xh>
<fm><c>Mosi sgu ggtch zcxd pmrgsxr xom onmn ql oug fabpmowsdyb gsawevjar feoifbh;
qrdk elbb xk hv gil umetu lqxz qmj rpys osc 1/4 ixhac oyvi kgckma od pi mlen af
zbxb pna hprkbv gc wc gzfqh knr vaerdhv lf nngicu. Tvy bmw ysdjghhtmyii elic
ey bfdvk'q oaq tramc.</t></ql>
<qg><v>Huf mueshwc dvzagitcw vz <hygzuy>tjgz blv vkai msm xxxrfmnas yvgv</cwbtlt>.</e></bj>
<rs><u><kplirc>Bdghsr ewr nkxa xscs krt imcj 2 hrraofm wdwhc gxwqkrmm yaex dnqg</wojnhb>. Wknz wtzbu
hh cjrpb exwr qt uuimd. Hdy rjkwthmzo ufpaa wy mosb abgu cnw'q vnrgstdu.</d></yr>
<dh><s>Mzmj zih uzmcvu vhb ebubl blpdgjm apka hxmy swgklfrf fauyg zt r fbj; ykn
sd'c utxnshccvlpwv pcorw se f kqh. Gt vkx hckgdfwbvbqk yjcs lpf mfnxum huo
kfyfu piec 4 vyxi hagjd tjqpx tdpli.</u></ir>
<hu><v>Dsf nfuc <zwbqxv>eilmd wegp</rnjazu> uju zksp ydsbvz; wgu lysqh'b atay db uy zudkvo ymoyjbu
fgc dqptw wtle xcz qla U jkdp qgqmsv zjps rjxz xnukab ajh dshs bfc os
rnxvuhhys qohn T rvgff qtygkfqfh oktvs sgdj aqk fzsf qovvls rzp. Mk smd zknn
ju ifkph lpp qgreh!</u></cm>
<kk><o>Lnb fdhe <wxnxfb>hwsw chvjvou jbfipqm</noygxy>! Zb <kafzvk>qaf taq qeqmemqyt uzghpbw!</uewxbf></h></ja>
</kq>
<h2>Wklr Rgbgzvkruxq</h2>
<p2>Xbch Zyhvdohyhei</a2>
<ol>
<li><p>Xtatjna hnnoqi mii 9 u 1.5 zois iwefb drfi; eltdhrc cytv pqup quely.</p></li>
<li><p>Thzwnig emkq lj 350 H (176.67 O).</p></li>
</ol>
<dn>
<js>3 fv dlcmbcgtphz (Oywhb'h) qsglrhlaq</ij>
<gs>2 uqf 1/4 fdyi ihled</jh>
<ey>2 nsea vpogum vqhg</bk>
<gg>1/2 rlx fhts</vz>
<qa>2 zzt 1/4 nzqp fgxsny rietf twwxa</bh>
<oe>3 ooca</tb>
<wm>1 fis 1/2 zqv dwraexl</wa>
<vt>1/2 yqeq gqkeduphr</op>
<ol>1 lfd (resmlum) rellb</zr>
<gd>1 hdv vgqy smbeo</xt>
</bx>
<h2>Ldgu Tqcgoeuzxm</h2>
<y2>Qguq Sqnfvfkxpsd</y2>
<ol>
<li><p>Puqr <strong>3 il wjqfuqbckir lmjffpmna</strong> mu stiozf wrzyhu ep kccrx qjlf rbwe
<strong>sxf (<em>gpg zru jqoccfb</em>) uficn</strong>; pnd wele jiodkr yixrmgiqmq.</p></li>
<li><p>Uwio <strong>2 &frac14; hjkl ervci</strong>, <strong>2 lnh lbzllm gwjn</strong>, kaz <strong>&frac12; nyx epkh</strong></p></li>
<li><p>Eyjy <strong>1 qkxeu wibykqwzv</strong> xg pofxg apvg <em>eqbuh ctjw</em>.</p></li>
<li><p>Vwb <strong>2 &frac14; slsd ichgqo kbbbq lbxlv</strong> thk <strong>3 vfmn</strong>. Zkmp eaosa bcbzk vbh
rnqsii.</p></li>
<li><p>Epmn fx <strong>1 &frac12; jcg tqyujmr</strong> tfv <strong>hfkyui cqrqme oyyswnowj</strong>.</p></li>
<li><p>Fvad rg ida epxaqkflpjy fylrudpmbqz tccx <strong>1 nzy yvwk mhxex</strong>; boqunz nlyz
rkjlm qoifyn.</p></li>
<li><p>Gmrn tz <strong>1 zyk sahovwv zeulq</strong>.</p></li>
<li><p>Faes bkfn lwatnqyl kgqt.</p></li>
<li><p>Zdla jhc <strong>PXMT 35 durywph</strong> (QY RSIPJB) ro 350 P (176.67 T).</p></li>
<li><p>Kgkb jdy vnaq srj ixub vnk adc bxb unrs bqhg px z mibvptw hpir tim <strong>YZX
HVSMYST ICPF QGT VJGD AJKLTSLBDJN QHWY UFIND BVN VU EW JJJY</strong>. Uyw vvba
uuirgvsojz.</p></li>
</ol>
<rd>
<zo><b>Vtyalyz xcozuz ecs 9 h 1.5 lbho tksvt bssy; aakvgmv fvzl klnw rfdjt.</a></ww>
<tp><x>Rtbdmkl awxe fg 350 S (176.67 Y).</a></mz>
</tq>
<h2>Gyafr Bkegoxdxmyn</h2>
<s2>Bcba Zgknosavsi</c2>
<ul>
<li>4 gg gyvsrtqzaoe jzbdkpnjv (Mcjdq'k xftagakhj)</li>
<li>&frac12; ivi lhdwobdwq</li>
<li>4 lync gxjwpxmy wjawi</li>
<li>&frac12; pjc aymjs lntz</li>
<li>2 orv dbjdcnv</li>
</ul>
<mo>
<xw><e>Hlze <jnssjm>3 vq yxlzqqvxfmh ftnvaizzv</vboyri> vk lmccow hunaog py vnpjs mqmb kwhb
<oiczds>lpn (<vp>iei tkh wvlkofi</wb>) trjlo</bhfegu>; jhp wfqf fwlyex ggpoywmggr.</n></iu>
<de><b>Onbu <mhlkmz>2 1/4 edrw cfnqf</vykbqp>, <ppvnzy>2 jcj llcfzv qnxz</gbdioe>, oyj <hrispq>1/2 mwe aujq</pitncy></j></tf>
<qs><f>Htyo <ncjdts>1 lkyjc qsgzynacn</tlojyj> uw qystx xngb <jn>vzmdc zups</kp>.</w></bf>
<nb><r>Ngz <eamrjh>2 1/4 obfh gcsigi qante cxovy</ohyxox> yfi <ypqfmf>3 oxhv</rkmacl>. Xpyb shnwh psdju hpy
ifhent.</i></rh>
<ky><l>Kgqn ld <ieujvq>1 1/2 gwu dczojst</zeoglp> car <jmaggn>eaekyu lqtiwm pidjkordb</cpcyby>.</e></ag>
<jy><y>Acpp cj sqt atdxpndmpbb hypmvxtqjdj pbuj <wutysh>1 pil ezkv bnhmc</usqsmv>; pzjxpw vkqb
ixpzz ynrdxe.</k></wl>
<kn><u>Jpgv dp <gcjijn>1 qmr pmvbgfa lpvjx</hybfes>.</v></ar>
<ap><m>Cnrf vgza xzkeytmz yejg.</v></ou>
<te><w>Ttrr lhb <ugssih>IPTB 35 dbqvzwj</jeszmn> (JS DLEADC) sl 350 B (176.67 M).</k></ua>
<ia><q>Gqou ufb itbt mlm hjxa lbe ypp wqw btjx zvgw lr k abaqhqe oxdl jhv <uohehl>OQI
UKVFMMQ EYWA DFC XVUX UXXCQMFGBMO HYEJ LSBUW ICO FI HG CYOF</jhjiyh>. Egf huqq
yaryqcdtkp.</q></ka>
</yv>
<p>Esg cztn wpkd bzgn j wjfbhp dyf zb zapr quzs zor apco gzg gqlqs ufvx ojd euqqs
kkrb rnu tre ky.</p>
<d2>Xhkjx Ytnhbezkkva</p2>
<h2>Kcyvjht esxxm wcp idj xtsvq</h2>
<p><strong>BQH MIPOH LPIGJXFFP WX JUMUF:</strong></p>
<ul>
<li><p>Xmxg qahm arnu dxw qrofph ekndrioir hmk zrakxqsvk kzco ymk uzf zuegx.</p></li>
<li><p>Egy cobu #4 iki <strong>8 yu 10 nqv mjewp</strong> hx i isw st wdx piqv (ivhl'i pty
orbtku wxrk kbslmsu pmvq tic jpd gl oe). Xfn xy yurq sq lhlxc qjt ubgj rxn
cop efmm kezs rof ljggy fy qnc ygd lg scse gm tji hkzqe. <strong>Fb inh kkj mfp
mdsps dgz kyb!</strong></p></li>
<li><p>Xy rel zjg dbmqj elc lcp okfvq.</p></li>
<li><p>Cnb <strong>mckjh pgab.</strong></p></li>
</ul>
<oq>
<yd>4 bj rggmzpultoq jxmqwxrxo (Xmdgf'n hvumqbmgf)</ju>
<ax>1/2 kjf oxgheizqg</gu>
<no>4 lxnu brgknhcx gkxnc</az>
<fv>1/2 yko gkcqr fwhf</ju>
<kt>2 dbg zqgxitz</rp>
</sd>
<h2>Yxzdk Usngniukjm</h2>
<h>Iyr hsap jkek iflp e fevelp ezb wg cmei qflf ouq ggca guj hlarp qbfu jcw woncy
kfrw pfl bhf ou.</s>
<t2>Mrftror fvfwk syc egw vfscz</s2>
<f><ambwab>VTI FYSRN PDRJRILFS GI ZSYKF:</vxcfss></c>
<ce>
<fk><g>Onhu ezff raln jjn kpfikb iqrlpadrq oss agmwgwueu kdgf uqf cne lcscq.</s></yx>
<gs><x>Geq fftm #4 wnv <rcwcbv>8 nm 10 bwu jnlgj</khprsn> ul l ynl de mez pafh (mbzo'v axe
gtgzhm ogoq chrycdv ubqg ipr djj yh xg). Sef ql ohmc jn hsgka jsw kxsk khm
bxi zdui vtls rwn pmyit yv lav feo dq uslk ri mba jocgu. <uryndl>Fs evr kck rfi
hauhf vtx xwp!</vgmlwl></x></bw>
<tn><d>Rp dhf hxp axudm xxy lij qdmyx.</j></tz>
<xk><c>Vgw <jxhdtw>yeewf rfiw.</rfjxbf></j></fh>
<jj><o>Ddq rres <ubhgyf>gvmr boehitg zmdmjpa</lzdbwp>! Bu <vcqfde>tqp kaa mlgjeqtuz hxvpfqz!</iuigwv></r></ij>
</eo>
<d2>Fouxq Nfdjicbrvp</z2>
<ep>
<od><k>Ngyrccw <mnuphk>4 ap xckvufpibmi pjfvscrhq</lhjfpn> ncm <khhelt>1/2 xby qzgvzhphf</lgzheb> lq kkj.
Xvsy kcf wsxhrv mife dbhc. <qmkiph>QJ IHL VBL KV TYY WDADE.</ioqzly></r></ys>
<nr><s>Ymqatfu <yezwjn>3 1/4 tgju vlgyrbtp afjbl</kilkkf>, <ajtkzk>1/2 rtii dxyqp njyq</aduefi> dgv <acyhza>2 szj
mtdynit</voqwwn> eawi z vgtp. <ohdxww>Wdun yvwbi ioktls</luflwx>.</c></vb>
<ed><o>Cai xehvjqivr jlquqgg.</t></mz>
<fk><z>Ome zvcx vd wzl/fjpm fu uiu nhs rxktb. Qosu szaf jwiqv/ivrro dtowq gm'e
dvvqs PBH mih hxf epqrw. Dvdp hyvu fubbp qkkdp'g ehc mtq! Mif zxwz ee mb
<wexrmo>AEAJ WPJ OTHY KN'Y DA XUII <ih>mpx vxh guh uob uwddu rog tvj</ut></jeilth>.</u></jz>
</le>
<LWLEV><WZ>
<WQ><m uaw="vafipih" dewk="avzwy://epvdpcevsprulga.cze/bxuogjxl/tb-ml/3.0/"><qwn kfa="Husbaqwf Gqxzvsv Kyjxtvg" lremh="hrwpzg-dhyxm:0" dia="/xao/io-te-3.0-88q31.ckp" /></m></AP>
<MO><L>&lyri; Syfrhacgo 1984-2020,
<I CNKV="/ivcjle.akvf">Bls Tisqdwky, Xsbnv Ofrrkj, Olzxyj Vgcv Wdhs</U>
- Dvz yrwudg qgmtjxbx<LE>
Pdbl uzim jp zfdxeoia vimmz r <q wtx="fngmpgx" xoas="xsbhe://nkrugmyilzcaeat.qdj/ypxotykg/ki-wt/3.0/">Oliqudlm Wekadum Mznxlmhwjjo-KqqymKjmrc 3.0 Qieagcct Xxohghl</e>.</T></QI>
<ET>&xghb;<!--<w tpvx="onwxy://yiwfqsyqn.s3.gfd/mwamb?seq=pvcgdxl"><kvm viq="jemqm://dee.c3.qpt/Rdxvf/ozmyi-ccgc401" eui="Nvjrl KSNC 4.01 Ciytkdvxdlvo" zuuwtu="31" zcqog="88"></f>--></RC>
</DL></VWAOH>
</tucd>
</uank>
<ol>
<li><p>Kwtvmaw <strong>4 rm fbcuxcpogfe xkmpqfbkf</strong> ejq <strong>&frac12; hoo hzvhewfpf</strong> um tda.
Topv rip zjvsub cqnr molo. <strong>LW FIP SDF EJ PNF FLGUK.</strong></p></li>
<li><p>Mncjjpv <strong>3 &frac14; tmkx crrquymh azisv</strong>, <strong>&frac12; iisj zpqjb rfqy</strong> teh <strong>2 fcu
ugxvosy</strong> ygml s csbp. <strong>Qwqk ymitd obbggd</strong>.</p></li>
<li><p>Tyh xkxsqqswu wxjstzm.</p></li>
<li><p>Mro iuow tg bgc/ppih ay sab hpi arjif. Emjp hrhf lbtvf/kpqjp wdmym xz'c
leqai FQB gun jpn zqkso. Juxu bxzi pjhzp ydgnt'k lke cii! Pmb lvgf oo iy
<strong>KYPR ADV GLFV XE'Q SV EEKA <em>nno fgf pqc lkl cjsdx ctw pwy</em></strong>.</p></li>
</ol>
<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>
+151 -148
View File
@@ -1,189 +1,192 @@
# Blyzot-erhnfpm Tgbmmuykd Sczuo Mkwo
Fmjy'm u ejbtspawc uynzki-ydvutrn uycmtblxh pebvw rqoa ([aqokbko][]) wvlu lw
hwsoiidmi zh qk vmv'd bzwogejsja. Vz'r ekzikmgvbaa pag K wbyotn vbea mccf ksukqk
ptw whcbhc is fir lx iefx qn zogm zl ywv byg oel cp'u rasn yrvhl swj lvcnqd ob
pep rsgw ozlqwwbyl. Kx wbqh vauthso bsc ksyk qourl fklgy jmbxlopdh gypjt iqtg
pmzm!
Fmjy'm u ejbtspawc uynzki-ydvutrn uycmtblxh pebvw rqoa nvnk tp
vqzcueaih gm sj cqo'f cdiiykyqer. Fx'q rufjwfpqzno skl N zxrqwg vtek jwgh rlgxow
ujo ataryp nm fcr zx osry gr owtm rn nao pwr cmk bm'w vtit pzzcj yqs kkuwxm nm
bmm gwyw jclesmfyi. Kt cveb cobgswl hzz xxfw owgpe vxkuq uxqisqtiq cqgxv dezw
xywj!
Udmal dkt lsp qqsy yp tlrfflcadmq twx rgkjomdrafwq; fag wtil lkf xcw bvtix. Fd
tglfknlq ftyio zck wvfw tuzbc ov kpw fhbnlsuqm jr; brlj ejgz xk ezbzskof ylybrja
ofpz'nb skgbdo kfgvhybte cbi kxz brmmcpw na frm digs.
<tns nie='zfrm.dvu' xol='xzbnncc xx sdq bumkma-mtxwiaa pahdswekn tvulu xhgj'>
Njuvk A qfuw vctjxpck agn cxvszhvpmve ftlfhvfrjw coc G qyjcdpa kctj gcplqg grp
nmaloxwwozfp gf btda fyq qg sfhk. Quwg pz thym wut fmkn pl ecg xeqpsrf viwjp.
Vgtxq ibf jjh qzxe hy eqsxymcximw kcy flakdqzztxyv; baf ohfl gqc gnj zscfa. Tl
pgwokgxv ykiul elp xgqb cmygt xd gfk oylwyxdsd gf; dlak xfvt ml hmybeixv nbjifwi
pydo'qh icxuic cwqnsmzgb iph eqn souuwcu uq vcv jsrq.
Axvgudh pcwk nlti gkeivfrso pd hqinj qli opo wl ywr ebodp kgzp ebmxg amp olsq sd
spn uoiovg ldqfgu up nmq xwqt bjl owv bgobf wu yttxfukxme. Bv exq ngtl'v rd
zppzslq iifa vnskl vdy [DYLOM fbz yxyybboac][]. Jlc K cta 'jtu ADQHH'? J eyivzvjm
uoszv **'rz KJTAS'**: go ddiakd fsld xpo **'Qfriesmnegfyy Yiolxt sc Gxbqu, Alqgkjwvs
smn Vzhnw Wivhxznrurlaf'**. Hsklooo.
Zggbv T kkgs qhbgctjb wia mmjurwzgfop wmgolqlwhe thv P yrgyqqs etjk kdnded rmq
ykepgsaanrwh gm jxsz mbk np dfnq. Hiwy kx mlou knj oljw dd pmk biwwncr qrjmv.
Nuu eeri qeq [Oadjdycawzqvx Xdpxtyfp Somajogwp Odgi Vsipbmw ocrop][] azil
[wgebeg MRSZV llhgbq Wmxj Lcdxazejr][] ([QcoIcg][]) cu idav en cgq
[GFRLF qjwx xqohgt hcuuk][] xr cau guxixut vs qws qfiuc (aegma mm dkhlssl ajty
ho gkxcu xi sgj ooxd esyf IAGZ).
Snrfjie hlyw yezz abczzixeq rw ydcjr nsj zhg wb isu btasp opbg njfel ejp bbxx go
imh ycatfk xwtyaz hc atp casc gcc wts yneaz wl atzehehird. Fi yqb xgpg'x xf
ebzjxpq tyzh bcdfl umd [WFPOE iak fivfdyuvs][]. Oqh X nml 'lcd VIIXA'? L bzrpphxp
qgjfy **'sh PRLGT'**: wm ipnbmr fclj ity **'Yxyikicgccedc Dradbi px Sleub, Mkehzfvsi
uxv Ojnjo Emrbciwwcboqx'**. Bmkphvo.
Yro juki bvg [Nhaquqjsmfhqo Aqwufuor Uzzxytyyy Pusv Apslcwr dhyqd][] ocgb
[psvbzb MBGOG hgwjsf Jozs Ctdsdhaug][] ([YhqThx][]) bk kkkk dg evj
[AIISK sqdv pbswtg rbchj][] cu ycw jdtpgvt cx jqj ujnyg (ewoid wp xqomiaw khtv
hj mysiu jm vnj mcxx emyy PNIY).
## Sckcsdvbydyo
## Orpvgmrirtjm
Jnrk qmg iqtxhgquic nkgn gt Xfhgtmca umzexdp zmmd jd ecr iroibmjknfqq wwi xl wfj
PX okehiytom. G snag ukixfasm (ocpo ggh ilou wgak iuqg zmce kmvawlk) av
[avbr://sja.qlsmhdmrbapimbbi.tht/tkyhwom.fyb][]. Usrw vvpj bbkxmvdygmxr ncpagf
uba rivl, bqkejiwxg, ucfefwchkyv ywm mqztme.
Jcd wprkwmc l KG dea nb otn uuu epxv qa Ajgkbxvh iej lcn m tzsunm nku isetzyz
ibx. Cdoyl'i zkbr d kmnptopmow bgb eovlgmfgm evq rsvodkqubvc: giufj eyv evjqtg,
VX ggg IF xrxlusqvu xge ifipthclqob. Yaaqu'b rlxq r LU leb TT dvdxl yzhg.
## Nwoby'a ikcttuuny
Yjzpo'r lrguczhuf jg k wedyv wuzh wbn hjz ndpetqn ua alsyhjif pa jzpkpvsbhfg
jvmfizhhm lodl suvv qwb vkmcuu. Zdxczjlel ws m [krhflrqenr UPT][] yx kwiyw ff
bmbfzf fhdhofczb umcjwd:
Stxxcq jcvojyeen niyjhfjj un gknyk gqw tl kmfhe ktmafv 'ifppbjsumke' nt
'nvnukx' ljdglnnwn. Em vpzd ypwsybqqm pb'a tcnbgb 100% vrsnq hxqhd dj'o
gbdacgoy zfpg gc wmyisn ms lsbwq rhvae, srr kjzkhhw gjis.
Pxr STS tbidyehv btzk cjc jxqdl fmli eu cbsd ykx h uqskws nrears nwlv wxa M
ghpsen zegtk rdp ukrkutqj rhbsqd eddkm oiia xa'w gyuhflmapcz kfmuibvvo pzte qga
idgkqz. Pnp GBM grnri gingi fmzp zzihk pnna roauxaamyrb osn G qluz qs hevd bqpz
lnms pgmmt igfl ibx no; S zlejcqs kshjizp zg lyrgjm'y kx txnt.
Zbnbui xsx iyixiw **mvziw sim pjhgipcvy ne jpi pggvl yl yjk iftykvnds bz kdu cytdus njv
hhovdv dqwzk jxjhyat dvcu'iz ozkcpi cuyvwkwul!**
## Iaguufw ptksy khc eul rivq
**JWG XBPXH SMZBGIGZE NA WACWA:**
* **YPR ZBUOWLTMO**. Dhnzon guyp bbg pigg oivj.
* Zpwl bfs kaukq sqyp eupixmg fbm axyt rv zsr abcqyscdoxi iknxfunko jihvhbt;
aknc ygtl mg ah gfk mecfs jduc tar fccx vor 1/4 tsvzj ifnm gyzoni jm ky ynao zk
wchs dxb noszon jc uf niymx lnq vdxryxp ih ppdpgz. Ddi skq jpedogukixmh gsgn
yc hqjwo'i qlt lmjhm.
* Dgq ntddyjz invdacusu iy **nltp rqc nfdo ouz byyyxizga itxv**.
* **Efpmqw rta fqzx eyia luz doxl 2 qlpnzxq oypgx zgtdzvct nkwu fcyk**. Rbha xmonj
gs znxtb gvui lf xiarx. Bmd nycyxorye oaaqn qv ktic ibko ria'q jjhhfiwh.
* Zvzd jvo xkyqrf hrk uqhdj kwvdfme qbih wion uwcaazdg vixms bz u xwy; hpv
qk'v yqsrzsqpmuioo zxfza pf x vfx. Dv oba btwjdhhleena mmbw cdl sucpvv buk
jhgkw mnin 4 gmgw yfond mtugo ovoen.
* Xam ffir **iysbn ujxv** bnh rqmy kdokba; nki htnqr'm tbqe cq yz gfuxyk hqlpuxj
qvw qqipa meza avd qrz X cpsi kluwhv dtto xlvj ryxltx amy twcn fet lh
obhlsdhrs wypr O rftiu loxqwfcmf foktg ifsu qbc cnwq edbxsx mex. Ud tcz eqlr
ya sbzbw ddb wipoz!
Flez ykq lweswmiaqc nxdo oz Xbkhqdcs ydxhjaa wtdw iy qst ctmxkakdcmpb kgt op gzj
HV pkhpxoixl. I lpfy goxrrvsy (llzc olx caij gziq yide ujrx onzrecw) lc
[kyrc://fhi.iwooyirhmuouwnwr.elk/ohutlbu.obi][]. Azla phdb jramxkgbgdmx jddmux
axl grvb, gspziehri, zkdyqcvtrwq lrv qeeqhm.
## Riyt Zzfugrclkfc
## Rohjz'o rqlbbnhso
* 3 nr fovsytpsekb (Kiysc'h) ncpukjrqo
* 2 gwe 1/4 ncvg hvqcs
* 2 xjmv siggbf lgbi
* 1/2 ein wsua
* 2 dwg 1/4 ijoy cgaxlr vuaie jgowb
* 3 abpb
* 1 xoh 1/2 gaa hpvwixo
* 1/2 usyk fcosykhrs
* 1 ury (ksvheid) vcart
* 1 qwg ilvb hoctz
Ffesp'b uilfdrccp ki v fyiuu tboq xgh zrv vmuyibn am plftoobg gf jzpksasbwwg
ezfwbswqc ykof ipmh hmg krgree. Hqgrdmkyl gm n [uoqeciqiho MCY][] cj qvztp pu
oszuwb rwwtpoapo vnfsoi:
Ljzppe imnezooyl xmawvhbl ed wipqo nfk jt bengz jmkfop 'kbupqdshotl' pc
'yhnhtd' kswktiglc. Au wrqn wqfqwwczw kj'w xqsafi 100% jemzg rgvjo uu'q
kzqlhvkz eosq rj jffdwc nw mlphu jlfef, geb tdjafjv cqgl.
Azu TFA ofzcbojj aeli lni cswps wwxd zy mkxy xai g tltfak uxvihq lxpa hio Q
rcmrwc dxpgp zzj vtlmwxay ojajiq caagw besb bh't iwnbcnfudng pesmgupbl sxoq eqp
qcvdez. Oqy ULB emwbv fdfze afcg seauu veda xjpwchldiwk zro Q lwxt hf tigo lwzm
zvyb ozpcj bcyr caj wa; C mmbryko tvejkeo hg sjrghy'w gf hipb.
Cwafvf nfg akvzjs **grmtc zdl mprpumgix zn cds oiiye fo otx iucmxqhav pv vkp zraelg ljn
bzvxrd uvgch pkimwnw lezx'cz omlgpw skqqdrshm!**
## Uytupeq emfhw hrp inn ahcz
**CZJ HFUAG QXKUAFKQM CG RFAKY:**
* **IMS YKPVJGKMI**. Fxgovg tita two hkmw usyw.
* Hluc koh msnce keht mqrmlzx kqp cknt yy jxk tbqumwfopre dptqggpmx btmrize;
gqbm pzlv ft dr uvj rwdlw nsyi bsa vufd hjv 1/4 gyhsg himz mfdbut hi qb yoii kb
bxjb fci ehzlpu ct ak maeza kpk jaeqjmk mw vhrrtu. Ehr znu xvceahsoqasz edcf
ps reacw'q wkg zzyye.
* Mna kbbbswp dbhjxhkkz ci **hwid znj zvyl lcw scxoqgkwb xkiw**.
* **Aodkgh hfg vohi qinw ogx mvkp 2 cdlqqyf gpvxq dyqhufoi tsdb prvc**. Gcqi nxrmx
bd tzdgj ljlc ee mwjql. Obv lxnyunrvb jwqfn qr kiri qets qqi'd nqojzett.
* Jbmz egg uukvfr nvu lktdj bxokyxe djti xaip lpzcksfr kgetz md s mei; rws
rg'i vqkwsswphamom ogwnn df q vux. Dl xmc yckdsgwdboxg obhp woa nyveki tdh
eipuf ieuv 4 jzel xzxig djfdd pqulq.
* Xvx lgdu **yflbn hunn** eiu rkkt oaissk; zpq mgleq'c fhpv qv kj nghxqg cqkbvdz
npk sphuu ontf htg mhz P fyiv ipnpdz yqze xltr xswlmf jhv xtjm itu hh
vacvghmbq dgcl K mxonp ayazvawpc rpdiz fuoa cvk ojkv cmvegs hci. Lw vbo iznk
lp qijoq wop txyhn!
* Vpf dxfn **tknt hnpxvad iqxyfmv**! Sx **yvi ahq fucprogft agecekf!**
## Wklr Rgbgzvkruxq
## Bhcc Bkjgklqdayg
1. Xtatjna hnnoqi mii 9 u 1.5 zois iwefb drfi; eltdhrc cytv pqup quely.
2. Thzwnig emkq lj 350 H (176.67 O).
* 3 ad woidmmzobjl (Dopty'p) sontcsqgj
* 2 uag 1/4 tksx ajroq
* 2 sjmy mhohjr bklf
* 1/2 qqi wlmb
* 2 twx 1/4 xear gsgdlt qddkk phevn
* 3 cjxi
* 1 cep 1/2 ctl nijkxcu
* 1/2 hgvh hrwsgdkcm
* 1 rtx (dqxnatp) ufgma
* 1 lob cnyg dbosr
## Ldgu Tqcgoeuzxm
## Mdeq Atiwekclssq
1. Puqr **3 il wjqfuqbckir lmjffpmna** mu stiozf wrzyhu ep kccrx qjlf rbwe
**sxf (*gpg zru jqoccfb*) uficn**; pnd wele jiodkr yixrmgiqmq.
1. Xeulobp jbaoad qab 9 c 1.5 uqte tatvi yvsk; xhhuzyu blos lrnc ukyle.
2. Uwio **2 1/4 hjkl ervci**, **2 lnh lbzllm gwjn**, kaz **1/2 nyx epkh**
3. Eyjy **1 qkxeu wibykqwzv** xg pofxg apvg *eqbuh ctjw*.
4. Vwb **2 1/4 slsd ichgqo kbbbq lbxlv** thk **3 vfmn**. Zkmp eaosa bcbzk vbh
rnqsii.
5. Epmn fx **1 1/2 jcg tqyujmr** tfv **hfkyui cqrqme oyyswnowj**.
6. Fvad rg ida epxaqkflpjy fylrudpmbqz tccx **1 nzy yvwk mhxex**; boqunz nlyz
rkjlm qoifyn.
7. Gmrn tz **1 zyk sahovwv zeulq**.
8. Faes bkfn lwatnqyl kgqt.
9. Zdla jhc **PXMT 35 durywph** (QY RSIPJB) ro 350 P (176.67 T).
10. Kgkb jdy vnaq srj ixub vnk adc bxb unrs bqhg px z mibvptw hpir tim **YZX
HVSMYST ICPF QGT VJGD AJKLTSLBDJN QHWY UFIND BVN VU EW JJJY**. Uyw vvba
uuirgvsojz.
2. Ozrjzzq xyaq yr 350 V (176.67 L).
## Gyafr Bkegoxdxmyn
## Szau Ojgbqmunov
* 4 gg gyvsrtqzaoe jzbdkpnjv (Mcjdq'k xftagakhj)
* 1/2 ivi lhdwobdwq
* 4 lync gxjwpxmy wjawi
* 1/2 pjc aymjs lntz
* 2 orv dbjdcnv
1. Huxi **3 ln klbtfnhcgvr vmswucgiu** to pijpec cwersg iv lzorb grnu hlay
**wjj (*waa zsl luacepy*) byigu**; bly vbbx koozic jagmlcwemj.
Esg cztn wpkd bzgn j wjfbhp dyf zb zapr quzs zor apco gzg gqlqs ufvx ojd euqqs
kkrb rnu tre ky.
2. Yhcv **2 1/4 fngt jbgnk**, **2 xuh wvpcvw kqnn**, ctw **1/2 dqd pwko**
## Kcyvjht esxxm wcp idj xtsvq
3. Ftpf **1 kysma ghllggpdv** zr bujbf oeie *nbuag piay*.
**BQH MIPOH LPIGJXFFP WX JUMUF:**
4. Jry **2 1/4 rnhc goujiv yavpe xsfyg** mci **3 krmg**. Ycnn qpnmq hjnto gsl
ggsrgu.
* Xmxg qahm arnu dxw qrofph ekndrioir hmk zrakxqsvk kzco ymk uzf zuegx.
5. Yqtc xu **1 1/2 ayo lslqrkb** zoe **yvqdnq rppgxb siyanszzq**.
* Egy cobu #4 iki **8 yu 10 nqv mjewp** hx i isw st wdx piqv (ivhl'i pty
orbtku wxrk kbslmsu pmvq tic jpd gl oe). Xfn xy yurq sq lhlxc qjt ubgj rxn
cop efmm kezs rof ljggy fy qnc ygd lg scse gm tji hkzqe. **Fb inh kkj mfp
mdsps dgz kyb!**
6. Jvps cq xfs chcuaojxsdj mfaqgqlrwwt oqmd **1 miw flgo lxgrz**; euqrmi mzno
hfxos lshfku.
* Xy rel zjg dbmqj elc lcp okfvq.
7. Pqna vv **1 syi eahxplo komgd**.
* Cnb **mckjh pgab.**
8. Rxzm emps uwpcfpba tjup.
9. Eseq ogg **KLGS 35 ueevuxx** (QU OJMFKH) pk 350 D (176.67 K).
10. Jvuy bmg cqvm mtv qhsn qyb rhs boi zixx fozr pk d vqekdaf wctj pgo **PCM
TPBARHB NJCU HYE MCFQ NFXVJMKCNKC EESL ZNAQT MCY DY SV BEXG**. Jsq hdtc
nmbjicqkvz.
## Yxzdk Usngniukjm
## Tnptw Ncqknabuhlr
* 4 ud meebkqyllst qjcfduykq (Hlsdk'a iuqozgzbz)
* 1/2 nvr xinftwyws
* 4 tmje uumpnppm tpdpt
* 1/2 yjd mxdaz tmki
* 2 cfw jrdojej
Qxp jtzo dzwk dqmc c xztlij crs gg ridd azwi bop oefq qoj femsa npzl mqm kzdsj
nicj pti jbo tw.
## Tifgysk isepg kgy nbm ziqdn
**QWR QSYQW CNPURMQEF CU AMOGN:**
* Buuw adhg vlhc sdw ndvxsz kekoaincl gws ultzkotyn zfxm hcd otd pekev.
* Qjb oqnm #4 cwp **8 iy 10 qjs bjjya** rf h rfi fo ueu hxfe (uvov'f lfb
pwssvv ukoi qffidka zuuf hxu elx sa dk). Bbi eb gtuj tk ztwam oqp ufvz hbh
xif mmug rjot afa tntqv kd duu yzl ih tsvi yl ukh tzdsu. **Zm zwx ind zoj
oucdw ckg ssr!**
* Zj qsf vlr xpphp fxn chg cavkw.
* Hvc **aoain kpbx.**
* Wgc xkzf **hdnp knfuaab bozhyhi**! Vn **kgv lhm tiogoklwf egfgbds!**
1. Kwtvmaw **4 rm fbcuxcpogfe xkmpqfbkf** ejq **1/2 hoo hzvhewfpf** um tda.
Topv rip zjvsub cqnr molo. **LW FIP SDF EJ PNF FLGUK.**
## Vukyj Kmuwtzgeqy
2. Mncjjpv **3 1/4 tmkx crrquymh azisv**, **1/2 iisj zpqjb rfqy** teh **2 fcu
ugxvosy** ygml s csbp. **Qwqk ymitd obbggd**.
3. Tyh xkxsqqswu wxjstzm.
1. Mungrxv **4 qq wugbqyivsru owfxdhhiq** vjf **1/2 kkr nrcdznybl** dp yjh.
Hfjo fbw swhlra ljih nazq. **MJ GUM INF EM LLJ QDGNP.**
4. Mro iuow tg bgc/ppih ay sab hpi arjif. Emjp hrhf lbtvf/kpqjp wdmym xz'c
leqai FQB gun jpn zqkso. Juxu bxzi pjhzp ydgnt'k lke cii! Pmb lvgf oo iy
**KYPR ADV GLFV XE'Q SV EEKA *nno fgf pqc lkl cjsdx ctw pwy***.
2. Pivxskz **3 1/4 bxeo cqblszfs lvcxc**, **1/2 sizf durzl zjmn** stp **2 hwi
tubunkk** xpxw s znho. **Jrtk bylfq iwylfv**.
[rgpvfcr]: xetb.ccj
[nnxz://aoy.kpgvxsuqfdlptuhb.khf/ivqfuwv.bap]: ihky://apu.sqxkdofyxasgwpaj.drj/khqdymw.ekf
[SQURB ofr anlextfvz]: fvxb://tem.icvq.xkr/dlszyrrlv/200103068.tnz
[Dyicflkzhcgxf Ntbjxhlx Qaafqexan Xyns Lxmxdij ecqcf]: fdzxj://gihnfqw.wzd/bohspotovlcmy/frrung/1290520266087571458?k=20
[xygobr GKHKT jwsuvi Scof Hjdbmbrvg]: fodwb://bgpwlol.iab/nfkjrxbbmezwn
[ZfsYft]: cbvxf://veyuij.wwp/mtfzdribkyzgp
[YTYUZ aggc nektxg vkrhl]: umhiz-pzjn.ftk
[iqdotkixxt BJC]: fqodd://tza.hjmpkiwkmaqbg.dvw/yqfqafhmw-zrzy/
3. Geb akluijomc zkjhmdz.
4. Wol tjcd uw xyu/kufs hi csg ffi ailzu. Adlw opvz uefqe/rdwrj buzsr we'k
afmub XOQ xfe bbm jtbph. Kfuj ywvo yrxfi uamph'l xxd krj! Xjx snph bw vc
**WOPI DQT MEGG XG'D LD HPDV *mog crx zyy fbw ubelj pvm avm***.
[nzhcoyo]: mdvy.ieo
[xfur://qin.llgsifrybrppjrpq.rvu/gghvhoq.xxw]: xvns://gyy.drxcfzjlhgxuzkwj.bqi/vmfxbfp.tke
[OZNMY bhn vuyidgzpd]: jdbk://lua.wpnk.rrp/mswfjuodt/200103068.xic
[Yulvsgbvqlhgb Mxlsrmij Nkfvcdsgd Ynat Gmkfveu zjkpj]: vdryj://ybtwkvs.osh/yiarhszankqik/kpsfxk/1290520266087571458?x=20
[kkvuby LTIWY cbpzyu Qmbf Otxmlxpez]: mzkgv://iyevhkg.thj/ejpygddnqjjpk
[MhyClg]: wxyvq://jhlbzv.zhq/dqucfxuxtmiji
[FAVQJ hyfm fkaiof lxlbp]: enyen-fvyt.rcr
[qmiutighcn WEX]: ohhge://dqs.qzsyjevihwrdu.acr/uvypuojyu-cwld/
-----------------------------------------------------------------------------------------------------
(c) Copyright 1984-2020, [Leo Broukhis, Simon Cooper, Landon Curt Noll][judges] - All rights reserved
This work is licensed under a [Creative Commons Attribution-ShareAlike 3.0 Unported License][cc].
(m) Uqwpipwpn 1984-2020, [Qks Oplbhakt, Rfker Jzmfpp, Euwyij Vsxu Xuus][qgkzqo] - Lbw zhnmek lcfgwdvz
Mtko dqof yb qkjkljyq bbqbo n [Lsdkzoxq Mgeknpu Ezihazelwnf-UjqovPmson 3.0 Qfwkjplp Qlnjwoh][su].
[judges]: http://www.ioccc.org/judges.html
[cc]: http://creativecommons.org/licenses/by-sa/3.0/
[mpsudh]: xqpu://svb.tehvo.mot/ndqytw.bpwh
[hi]: exeq://rflkjdebpsopklq.ypz/wrppfill/pq-fy/3.0/
-----------------------------------------------------------------------------------------------------
+1 -1
View File
@@ -7,7 +7,7 @@ enigma \- A German Enigma simulator for IOCCC 2020
\fBenigma\fP is a German Enigma simulator written for IOCCC 2020.
It only supports the Heer (army) and Luftwaffe (air force) machines.
Its default settings are as follows:
\fBWheel order (Walzenlage)\fP \fII, II, III\fP; \fBRing settings (Ringstellung)\fP \fIABC\fP; \fBInitial posiitions (Grundstellung)\fP \fIBBC\fP; \fBReflector (Umkehrwalze, UKW)\fP \fIB\fP; and the \fBplugboard (Steckerbrett)\fP is empty (no pairings).
\fBWheel order (Walzenlage)\fP \fII, II, III\fP; \fBRing settings (Ringstellung)\fP \fIABC\fP; \fBInitial positions (Grundstellung)\fP \fIBBC\fP; \fBReflector (Umkehrwalze, UKW)\fP \fIB\fP; and the \fBplugboard (Steckerbrett)\fP is empty (no pairings).
.PP
There are no options per se; if not passed a \fB\-\fP (in the first argument) then it will use the default settings, waiting for input (unless input is piped to it e.g. from the recode program, echo or redirecting a file as stdin).
Otherwise it will prompt you for the settings and then wait for input to encipher/decipher.
+3 -1
View File
@@ -712,7 +712,9 @@ mother.
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 xxx.
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
Once more besides those two I want to also dedicate this to all the many
millions of people whose lives were taken from them in what amounts to - like
+6
View File
@@ -728,6 +728,12 @@ 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>Once more besides those two I want to also dedicate this to all the many
millions of people whose lives were taken from them in what amounts to - like
all other wars - a horrible, pointless conflict and an utter waste of life,
-236
View File
@@ -1,236 +0,0 @@
# Obfuscation
* The obvious strings are obfuscated by the default Enigma settings in the
program itself.
* Digraphs. This isn't necessarily obfuscation itself but it does cause some
beautifiers problems and it can be useful in layout as well (in some contexts
there is an aesthetic appeal to my eyes too).
* Compound literal of ints of size 13 that have a variety of different data
(including what was originally two arrays plus some additional ints).
* Negative pointer offsets. This include calculated offsets into the huge
Y<:19:><:27:> but it's not the only example. Here the compound literal of 13
ints:
int *z=(int[13]) { 0 } , *e, *g;
Then in main:
e = z + 10;
g = e + 1;
for (j=-3; j < 0; ++j)
e<:j:> = j+3;
Which I think is more confusing: when one is iterating an array you don't
expect to start out with index < 0 but to then compare that that index < 0
and increment until 0 along with setting the value of the array to j + 3 is
more confusing still. There are at least two other ways that are much easier
to read that could accomplish the same thing. It continues on:
/* ... */
e<:i-3:> = (j < 1 ? 1 : (j > 5 ? 5 : j))-1;
* Observe these two functions:
void w(char *s, int k, int v)
{
for(e<:2:> = 0; s<:*P:>; ++e<:2:>)
{
v = s<:e<:2:>:>;
if(v > 64 && v < 91)
s<:e<:2:>:> = (((v - 65 + k) % 26) + 65);
}
}
void Q(void)
{
for(*g = 0; *g < 3; ++*g)
{
*Y<:16+e<:1:>:>=S<:e<:e<:1:>-3:>:>;
R<:e<:1:>:>=Y<:e<:-3+e<:1:>:>:>;
w(R[*g],*(e+e<:1:>-6)=q(Y<:8:>,*Y<:7:>),*g);
}
}
First of all: why do I set e[2] to 0 and increment it for each pass in the
loop, but then the condition for the loop is s[*P]?
Second notice the many references to e[1] (as e[1] and *g). This variable (pointing
into z) is used as the iterator in this loop as well as a loop in another
function. Now why do I pass *g to the function w()? To mislead. Originally
it was more misleading in that I didn't touch the parameter 'v' in the
function and did a *g = v; at the end of the function. But even though I did
not actually change the value I did not know if this would cause a problem
with sequencing so I decided to remove that part and simply use the v
parameter as a temporary variable but one that started out as the current
iterator of the loop in the Q() function (but since not a pointer it's not
modified).
Originally I went further than that but due to order of evaluation being
unspecified I changed it to what it is now. Anyway:
You can also see that I use the value of e[1]-3 as the index of S[e] (so
S[e[e[1]-3]]) (I think I said that right; I honestly don't know now because
there is such major array and offset abuse. The entire prog.c is riddled
with offset abuses.).
* If you observe that above the compound literal `z` is of size 13 but I point
`e` to be `z + 10`. Why? Twofold: (1) I decided to make use of one of them as a
temporary variable instead of a regular int in the function (so make it global);
and (2) I didn't want to risk changing all the offsets: thus I just made that
address `e[1]`. Thus I also have:
for (*g = 0 ; *g < 10; ++*g)
{
r<:-2:> = Y<:14:><:*(e+1):>; r<:-3:> = Y<:15:><:1<:e:>:>;
if (r<:-3:> && r<:-2:> == r<:-1:>)
return r<:-3:>;
if (r<:-2:> && r<:-3:> == r<:-1:>)
return r<:-2:>;
}
This `e[1]` of course is the same as `*g` as above and as you can see has
multiple dimensions (that is the reference to Y does) too (and this is also
strewn about the code). In the above I'm referring to the variable in more
than one way: *g for the iteration but also e[1] for the actual element of
both Y[14] and Y[15]. I also happen to use S (via r which points to S + 10)
which I use as the two chars to compare (this is the plugboard function).
* The above function Z() takes a `char x` but you won't notice it being used
at all. Why? In fact I call it like so:
k = Z(r<:-1:>=k);
The char is just used as a way to be able to call the function and assign to
the proper variable at the same time: in the function Z I don't care about x
because it's the same value as r[-1] (which I do care about). Why is it
attached to S? Because it conveniently is already set up to point some ways
in that array, the rest isn't used and by having r going past S I could use
again negative offsets to cause more confusion.
* Although this is clearly already shown in the above there are other ways I
refer to the same variable in more than one way (or in some cases maybe more
correct to say 'same location'). In the Z() function for example:
r<:-2:> = Y<:14:><:*(e+1):>; r<:-3:> = Y<:15:><:1<:e:>:>;
I refer to e[1] as both: *(e+1) and 1[e].
* Replacing a number of `if .. `s with `... && (...)`s (in one case at least
it's nested further: `f && (f = 0 && (a = W(A,a)));`).
* Three different char arrays in one: the rotors settings, the positions and
the notches for each rotor. The first two are interleaved: I have the 0th
element of each next to each other, then the 1th element next to each other then
the 2th element next to each other. Then it's the notch settings. The first two
arrays here require some index calculations like `i+i%3` and `i+i+1` depending
on which 'array' is needed. At other points I refer to those elements by direct
index (sort of).
* Another set of char arrays in one: the five rotors as well as the two
reflectors in one `char [][27]`. This makes for some fun code like:
(Y<:e<:-10:>+5:><:k-'A':>) && (k = Y<:e<:-10:>+5:><:k-'A':>);
(Of course this also removes an if statement by joining with a &&).
* In fact I decided that the above two arrays in arrays needed to be merged
with the rest of the char arrays so that's what I have done. They have
different purposes and they're referred to differently. I will cite next the
remaining arrays in the next items (but not necessarily in the correct order).
Notice that the array I'm talking about is the massive `Y<:19:><:27:>`.
* The alphabet (this is one string).
* The plugboard (this is two arrays).
* The Enigma ciphered text for prompting for input (five strings).
* The relevant notches (this is not the same as the five notch letters!) (this
is three chars but each in a different element of the `char Y[19][27]` - for why
see below).
* I'm not even sure if there are any others due to the way I have done this;
to save iocccsize bytes I have used the first element of three of the strings
when I only did need the first element (since doing e.g. `f[3][2]` takes more
bytes than `*f[3]` or whatever). All in all though there are 18 different
strings (in some cases only the first char is relevant) in `char Y[19][27]` with
a multitude of different uses. Some of these are as I noted scrambled. Some
default to empty string which might hide that it's even there.
* Although minor I have made use of the result of the end of a for loop in the
beginning in the next loop in main(): `j` will end up being 0 and I need it at 9
so I do `j += 9` in the initialisation of the for loop instead of simply setting
it to 9.
* The judges don't like obfuscation through the C preprocessor. That's fair
enough because as they rightly point out they can just use the C preprocessor
itself. But although I have quite a few cpp directives I am not using them for
obfuscation but rather to save bytes. For examples:
%:define J(x) do(*x)=getchar(); while((*x)=='\n')
Is used quite a number of times and although it could be a function that
takes a pointer to an int it was more convenient this way (I believe it used
more bytes but I no longer know that). There are many others and they all
save bytes (or at least most of them do if not all). There is one in
particular I want to bring up though because I think it's a curious one and
it ties in to another point above:
%:define A(y) *(&Y<:7:><:1:>+(y))
What is special about this one: Above I noted how I sort of refer directly
to the notch settings (I think it was the notch settings anyway). Now I
could have done say
char a = Y[7][1], b = Y[7][3], c = Y[7][5];
But I felt that doing instead the pointer arithmetic was worth doing.
However it used significantly more bytes even as a macro: 17 if I recall
right. That's with the macro. If I were to include it three times by itself
it'd be many more. I believe though that when the cpp translates it it still
requires more thought to determine that a is set to Y[7][1], b to Y[7][3]
and c to Y[7][5].
# Obfuscation wrt recode.c
* To cause confusion I have used the same names of variables and functions
(well recode.c has more functions and variables) but with different meanings.
For example in recode.c `R` is a `char R[3]` but in prog.c it's `char *R[3]`.
Another example is where in prog.c `Y` is `char Y[19][27]` in recode.c it's `char
*Y[3]`. Some are use swaps but not necessarily all. I believe that I have made
the name of a function (or macro maybe) to be the name of a variable in the
other. Some of the variables have the same names however to cause further
confusion and there are other ways there are different names; the beauty of all
this is that although these parts of both programs are related even when you
think you figure out the use of each variable the name differences can easily
cause you to question whether you understand it truly! Incidentally as can
clearly be seen although I enciphered the messages in recode.c (except the error
messages that I felt were justified there) it's not through the Enigma
system because I didn't want recode.c to give many hints as to how prog.c works.
I don't believe deciphering recode.c will explain how my entry works because
recode.c doesn't use the Enigma algorithm and even the strings are done very
differently (and separated) so that one cannot easily replace the `char`
variables in recode.c, move them to prog.c, compile and expect it to work right.
* Also what is this about ?
/\
/ This is *not* what you think:
void D(char*x){ /* ... */ }
Is that valid and if so how does it function? Yes it's valid but I'll leave
the other part of the question up to the reader to answer. Hint: you already
know how it works (yes, really you do)! Another hint: This is and is not a
misleading comment (conversely this makes this hint both misleading - and
also not).
+24 -17
View File
@@ -34,23 +34,30 @@ good chocolate and could use a delicious <a href="chocolate-cake.html">Double-la
<p>Alternatively if you just want the recipe you could look at my Snake entry
&lsquo;Don&rsquo;t tread on me award&rsquo; since it&rsquo;s also there and not enciphered.</p>
<p><a name="toc"></a>
- <a href="#recode">What is recode and why is it recommended?</a>
- <a href="#options">Options</a>
* <a href="#samefile">Protecting against the same I/O file</a>
* <a href="#fileoptions">File options parser limitation</a>
* <a href="#validation">-R option validation?</a>
- <a href="#pipingtorecode">Piping commands to recode</a>
- <a href="#pipingtoenigma">Piping recode to the Enigma simulator</a>
- <a href="#manuallytest">Manually test the recode program with the Enigma program</a>
- <a href="#onlyconfig">Only write config file</a>
- <a href="#reuseconfig">Reusing a configuration</a>
- <a href="#passtoenigma">Write config file, read data file and pass to Enigma simulator</a>
- <a href="#directlytoenigma">Piping directly to the Enigma code once (with randomised settings, saved)</a>
- <a href="#conclusion">Usage conclusion</a>
- <a href="#additions">Example additions</a>
- <a href="#exampleuses">Example uses</a>
- <a href="#cake">Delicious Enigma: Double-layered Chocolate Fudge Cake</a></p>
<p><a name="toc"></a></p>
<ul>
<li><p><a href="#recode">What is recode and why is it recommended?</a></p></li>
<li><p><a href="#options">Options</a></p>
<ul>
<li><p><a href="#samefile">Protecting against the same I/O file</a></p></li>
<li><p><a href="#fileoptions">File options parser limitation</a></p></li>
<li><p><a href="#validation">-R option validation?</a></p></li>
</ul>
</li>
<li><p><a href="#pipingtorecode">Piping commands to recode</a></p></li>
<li><p><a href="#pipingtoenigma">Piping recode to the Enigma simulator</a></p></li>
<li><p><a href="#manuallytest">Manually test the recode program with the Enigma program</a></p></li>
<li><p><a href="#onlyconfig">Only write config file</a></p></li>
<li><p><a href="#reuseconfig">Reusing a configuration</a></p></li>
<li><p><a href="#passtoenigma">Write config file, read data file and pass to Enigma simulator</a></p></li>
<li><p><a href="#directlytoenigma">Piping directly to the Enigma code once (with randomised settings, saved)</a></p></li>
<li><p><a href="#conclusion">Usage conclusion</a></p></li>
<li><p><a href="#additions">Example additions</a></p></li>
<li><p><a href="#exampleuses">Example uses</a></p></li>
<li><p><a href="#cake">Delicious Enigma: Double-layered Chocolate Fudge Cake</a></p></li>
</ul>
<h1><a name="recode" href="#toc">What is recode and why is it recommended?</a></h1>
+17
View File
@@ -8,23 +8,40 @@ Alternatively if you just want the recipe you could look at my Snake entry
'Don't tread on me award' since it's also there and not enciphered.
<a name="toc"></a>
- [What is recode and why is it recommended?](#recode)
- [Options](#options)
* [Protecting against the same I/O file](#samefile)
* [File options parser limitation](#fileoptions)
* [-R option validation?](#validation)
- [Piping commands to recode](#pipingtorecode)
- [Piping recode to the Enigma simulator](#pipingtoenigma)
- [Manually test the recode program with the Enigma program](#manuallytest)
- [Only write config file](#onlyconfig)
- [Reusing a configuration](#reuseconfig)
- [Write config file, read data file and pass to Enigma simulator](#passtoenigma)
- [Piping directly to the Enigma code once (with randomised settings, saved)](#directlytoenigma)
- [Usage conclusion](#conclusion)
- [Example additions](#additions)
- [Example uses](#exampleuses)
- [Delicious Enigma: Double-layered Chocolate Fudge Cake](#cake)
# <a name="recode" href="#toc">What is recode and why is it recommended?</a>
To demonstrate how to and why you should use the recode program with the Enigma