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 OBJ= prog.o termcaps.o
DATA= COMPILING HACKING bugs.markdown cannibalism.log \ DATA= COMPILING HACKING bugs.text cannibalism.log \
chocolate-cake.markdown crazy.log gameplay.markdown \ chocolate-cake.text crazy.log gameplay.text \
judges.markdown snake-colours.sh snake.1 spoilers.markdown \ snake-colours.sh snake.1 spoilers.text \
termcaps.c terminals.markdown troubleshooting.markdown termcaps.c terminals.text troubleshooting.text
TARGET= prog snake snake-colours play snake-colours termcaps ${ALT_TARGET} TARGET= prog snake snake-colours play snake-colours termcaps ${ALT_TARGET}
# #
ALT_OBJ= 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>Current bugs and things that look like bugs but are not, as of 12 September 2020.</p>
<p><a name="toc"></a> <p><a name="toc"></a></p>
- <a href="#builtin-test-unit">Built-in test unit for some features!</a> <ul>
- <a href="#stillsnake">The snake doesn&rsquo;t seem to be moving</a> <li><p><a href="#builtin-test-unit">Built-in test unit for some features!</a></p></li>
- <a href="#getch">getch() also accepts input from some input hardware other than keyboards</a> <li><p><a href="#stillsnake">The snake doesn't seem to be moving</a></p></li>
- <a href="#size">SIZE=0 is the same as SIZE=1 and other oddities</a> <li><p><a href="#getch">getch() also accepts input from some input hardware other than keyboards</a></p></li>
- <a href="#bitetail">&lsquo;I was a few places behind my tail and I ran into it!&rsquo;</a> <li><p><a href="#size">SIZE=0 is the same as SIZE=1 and other oddities</a></p></li>
- <a href="#middleofsnake">With negative growth the snake drops from the middle of the body</a> <li><p><a href="#bitetail">'I was a few places behind my tail and I ran into it!'</a></p></li>
- <a href="#buginsnake">It looks like the bug is in the snake</a> <li><p><a href="#middleofsnake">With negative growth the snake drops from the middle of the body</a></p></li>
- <a href="#bugplacement">On the safety of the bug placement loop</a> <li><p><a href="#buginsnake">It looks like the bug is in the snake</a></p></li>
- <a href="#verticalsnake">Vertical snake has more space between snake char than horizontal</a></p> <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> <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. Current bugs and things that look like bugs but are not, as of 12 September 2020.
<a name="toc"></a> <a name="toc"></a>
- [Built-in test unit for some features!](#builtin-test-unit) - [Built-in test unit for some features!](#builtin-test-unit)
- [The snake doesn't seem to be moving](#stillsnake) - [The snake doesn't seem to be moving](#stillsnake)
- [getch() also accepts input from some input hardware other than keyboards](#getch) - [getch() also accepts input from some input hardware other than keyboards](#getch)
- [SIZE=0 is the same as SIZE=1 and other oddities](#size) - [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) - ['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) - [With negative growth the snake drops from the middle of the body](#middleofsnake)
- [It looks like the bug is in the snake](#buginsnake) - [It looks like the bug is in the snake](#buginsnake)
- [On the safety of the bug placement loop](#bugplacement) - [On the safety of the bug placement loop](#bugplacement)
- [Vertical snake has more space between snake char than horizontal](#verticalsnake) - [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> # <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 Fun fact: There's something of a built-in test unit for some features; much
+44 -42
View File
@@ -25,26 +25,30 @@
</CENTER> </CENTER>
<h1>Double-layered Chocolate Fudge Cake</h1> <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 <p>Here's a delicious double-layered chocolate fudge cake that is
something of my mum&rsquo;s speciality. It&rsquo;s complicated and I should warn that nobody 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&rsquo;s well worth the effort if 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 you love chocolate. My late stepmum who only liked white chocolate loved this
cake!</p> 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 <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 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 <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> 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 <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 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 &lsquo;the IOCCC&rsquo;? I actually 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>&lsquo;an IOCCC&rsquo;</strong>: it stands also for <strong>&lsquo;International Office of Cocoa, Chocolate meant <strong>'an IOCCC'</strong>: it stands also for <strong>'International Office of Cocoa, Chocolate
and Sugar Confectionery&rsquo;</strong>. Perfect.</p> 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 <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 <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 <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> 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 <h2>Baker's chocolate</h2>
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&rsquo;s chocolate</h2> <p>Baker's chocolate is a brand name and the product in question is unsweetened
<p>Baker&rsquo;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 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> called different things:</p>
@@ -74,12 +74,12 @@ composed only of ground up cocoa beans, and nothing else.
</code></pre> </code></pre>
<p>The FAQ suggests that you might have to look for a baking supply shop but I <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 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 <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> <h2>Special notes for the cake</h2>
@@ -88,33 +88,34 @@ recipe notes because they&rsquo;re really important!</strong></p>
<ul> <ul>
<li><p><strong>USE MARGARINE</strong>. Butter does not work well.</p></li> <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; <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 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>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 <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 <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> 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 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 chocolate milk I would recommend whole milk for this recipe too. In any case
it turns out great!</p></li> 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> </ul>
<h2>Cake Ingredients</h2> <h2>Cake Ingredients</h2>
<ul> <ul>
<li>3 oz unsweetened (Baker&rsquo;s) chocolate</li> <li>3 oz unsweetened (Baker's) chocolate</li>
<li>2 and &frac14; cups flour</li> <li>2 and 1/4 cups flour</li>
<li>2 tbsp baking soda</li> <li>2 tbsp baking soda</li>
<li>&frac12; tsp salt</li> <li>1/2 tsp salt</li>
<li>2 and &frac14; cups packed brown sugar</li> <li>2 and 1/4 cups packed brown sugar</li>
<li>3 eggs</li> <li>3 eggs</li>
<li>1 and &frac12; tsp vanilla</li> <li>1 and 1/2 tsp vanilla</li>
<li>&frac12; cups margarine</li> <li>1/2 cups margarine</li>
<li>1 cup (boiling) water</li> <li>1 cup (boiling) water</li>
<li>1 cup sour cream</li> <li>1 cup sour cream</li>
</ul> </ul>
@@ -133,11 +134,11 @@ it turns out great!</p></li>
<ol> <ol>
<li><p>Melt <strong>3 oz unsweetened chocolate</strong> in double boiler or small bowl over <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> <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>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> 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 <li><p>Stir in dry ingredients alternately with <strong>1 cup sour cream</strong>; always beat
until smooth.</p></li> until smooth.</p></li>
<li><p>Stir in <strong>1 cup boiling water</strong>.</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> <h2>Icing Ingredients</h2>
<ul> <ul>
<li>4 oz unsweetened chocolate (Baker&rsquo;s chocolate)</li> <li>4 oz unsweetened chocolate (Baker's chocolate)</li>
<li>&frac12; cup margarine</li> <li>1/2 cup margarine</li>
<li>4 cups powdered sugar</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> <li>2 tsp vanilla</li>
</ul> </ul>
@@ -169,30 +170,29 @@ bowl can sit in.</p>
<ul> <ul>
<li><p>Make sure that the melted chocolate and margarine does not get solid.</p></li> <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 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 the bowl with the icing in the pan or bowl of ice water. <strong>Do not let the
icing get wet!</strong></p></li> icing get wet!</strong></p></li>
<li><p>Do not let icing get too thick.</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 <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> </ul>
<h2>Icing Directions</h2> <h2>Icing Directions</h2>
<ol> <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> 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> vanilla</strong> into a bowl. <strong>Stir until smooth</strong>.</p></li>
<li><p>Add chocolate mixture.</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 <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&rsquo;t get wet! The idea is to thick BUT not too thick. Make sure icing doesn'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> <strong>MAKE THE BOWL IT'S IN COLD <em>but not let the icing get wet</em></strong>.</p></li>
</ol> </ol>
<BR>
<HR>
<TABLE><TR> <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><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, <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> </TR></TABLE>
</body> </body>
</html> </html>
+7 -4
View File
@@ -1,11 +1,13 @@
# Double-layered Chocolate Fudge Cake # 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 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 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 you love chocolate. My late stepmum who only liked white chocolate loved this
cake! 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 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 addition there are some notes to pay attention to; some will be repeated because
they're really important for the quality of the cake. 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 [http://www.onlineconversion.com/cooking.htm][]. This will particularly matter
for cups, teaspoons, tablespoons and ounces. 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 ## 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 chocolate milk I would recommend whole milk for this recipe too. In any case
it turns out great! it turns out great!
* Use only **pure vanilla extract**! Do **not use imitation vanilla!**
## Cake Ingredients ## Cake Ingredients
@@ -155,6 +156,8 @@ bowl can sit in.
* Use **whole milk.** * Use **whole milk.**
* Use only **pure vanilla extract**! Do **not use imitation vanilla!**
## Icing Directions ## 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 game. For normal play you probably don&rsquo;t even need this file at all unless it be
for the input keys.</p> for the input keys.</p>
<p><a name="toc"></a> <p><a name="toc"></a></p>
1. <a href="#support">Testing terminal environment/capabilities</a>
2. <a href="#input">Input keys</a> <ol>
3. <a href="#gameplay">Gameplay</a> <li><p><a href="#support">Testing terminal environment/capabilities</a></p></li>
* <a href="#initial">The initial screen</a> <li><p><a href="#input">Input keys</a></p></li>
* <a href="#playing">Playing the game</a> <li><p><a href="#gameplay">Gameplay</a></p>
* <a href="#walls">Walls</a>
* <a href="#cannibalism">Cannibalism</a> <ul>
* <a href="#shedding">Stretching (shedding)</a> <li><p><a href="#initial">The initial screen</a></p></li>
* <a href="#winning">Winning</a> <li><p><a href="#playing">Playing the game</a></p></li>
* <a href="#quitting">Quitting</a> <li><p><a href="#walls">Walls</a></p></li>
4. <a href="#modes">Gameplay modes</a> <li><p><a href="#cannibalism">Cannibalism</a></p></li>
* <a href="#warning"><strong>Photosensitive epilepsy/Stimulation overload trigger warnings</strong></a> <li><p><a href="#shedding">Stretching (shedding)</a></p></li>
* <a href="#drawing">Drawing / Practice mode</a> <li><p><a href="#winning">Winning</a></p></li>
* <a href="#auto">Computer playing / Automatic mode (<strong>Photosensitive epilepsy/Stimulation overload trigger</strong>)</a> <li><p><a href="#quitting">Quitting</a></p></li>
* <a href="#auto-variations">Variations</a> </ul>
* <a href="#grow-shrink">Grow-Shrink (Positive/Negative Winning) mode</a> </li>
* <a href="#hypnotic">Hypnotic / Sleepy mode (<strong>Photosensitive epilepsy/Stimulation overload trigger</strong>)</a> <li><p><a href="#modes">Gameplay modes</a></p>
* <a href="#stim">Stimulation / Calming mode</a>
* <a href="#other-ideas">Other ideas</a> <ul>
5. <a href="#scripts">Scripts</a> <li><p><a href="#warning"><strong>Photosensitive epilepsy/Stimulation overload trigger warnings</strong></a></p></li>
* <a href="#colours">Colours selection</a> <li><p><a href="#drawing">Drawing / Practice mode</a></p></li>
* <a href="#preset">Automate the above gameplay modes</a> <li><p><a href="#auto">Computer playing / Automatic mode (<strong>Photosensitive epilepsy/Stimulation overload trigger</strong>)</a></p>
6. <a href="#variables">Game variables</a>
* <a href="#wait">WAIT - Snake speed</a> <ul>
* <a href="#evade">EVADE - Bug evasion frequency</a> <li><a href="#auto-variations">Variations</a></li>
* <a href="#sizes">SIZE / MAXSIZE - Initial snake / max sizes</a> </ul>
* <a href="#growth">GROW / SHEDS - Growth / Shedding sizes</a> </li>
7. <a href="#conclusions">Conclusion (and inspirational words for everyone)</a></p> <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> <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. for the input keys.
<a name="toc"></a> <a name="toc"></a>
1. [Testing terminal environment/capabilities](#support) 1. [Testing terminal environment/capabilities](#support)
2. [Input keys](#input) 2. [Input keys](#input)
3. [Gameplay](#gameplay) 3. [Gameplay](#gameplay)
* [The initial screen](#initial) * [The initial screen](#initial)
* [Playing the game](#playing) * [Playing the game](#playing)
* [Walls](#walls) * [Walls](#walls)
* [Cannibalism](#cannibalism) * [Cannibalism](#cannibalism)
* [Stretching (shedding)](#shedding) * [Stretching (shedding)](#shedding)
* [Winning](#winning) * [Winning](#winning)
* [Quitting](#quitting) * [Quitting](#quitting)
4. [Gameplay modes](#modes) 4. [Gameplay modes](#modes)
* [**Photosensitive epilepsy/Stimulation overload trigger warnings**](#warning) * [**Photosensitive epilepsy/Stimulation overload trigger warnings**](#warning)
* [Drawing / Practice mode](#drawing) * [Drawing / Practice mode](#drawing)
* [Computer playing / Automatic mode (**Photosensitive epilepsy/Stimulation overload trigger**)](#auto) * [Computer playing / Automatic mode (**Photosensitive epilepsy/Stimulation overload trigger**)](#auto)
* [Variations](#auto-variations) * [Variations](#auto-variations)
* [Grow-Shrink (Positive/Negative Winning) mode](#grow-shrink) * [Grow-Shrink (Positive/Negative Winning) mode](#grow-shrink)
* [Hypnotic / Sleepy mode (**Photosensitive epilepsy/Stimulation overload trigger**)](#hypnotic) * [Hypnotic / Sleepy mode (**Photosensitive epilepsy/Stimulation overload trigger**)](#hypnotic)
* [Stimulation / Calming mode](#stim) * [Stimulation / Calming mode](#stim)
* [Other ideas](#other-ideas) * [Other ideas](#other-ideas)
5. [Scripts](#scripts) 5. [Scripts](#scripts)
* [Colours selection](#colours) * [Colours selection](#colours)
* [Automate the above gameplay modes](#preset) * [Automate the above gameplay modes](#preset)
6. [Game variables](#variables) 6. [Game variables](#variables)
* [WAIT - Snake speed](#wait) * [WAIT - Snake speed](#wait)
* [EVADE - Bug evasion frequency](#evade) * [EVADE - Bug evasion frequency](#evade)
* [SIZE / MAXSIZE - Initial snake / max sizes](#sizes) * [SIZE / MAXSIZE - Initial snake / max sizes](#sizes)
* [GROW / SHEDS - Growth / Shedding sizes](#growth) * [GROW / SHEDS - Growth / Shedding sizes](#growth)
7. [Conclusion (and inspirational words for everyone)](#conclusions) 7. [Conclusion (and inspirational words for everyone)](#conclusions)
# 1. <a name="support" href="#toc">Testing terminal environment/capabilities</a> # 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 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) * ['Bugs'](#bugs)
* [NAQs/IAQs (Never/Infrequently Asked Questions)](#naqs) * [NAQs/IAQs (Never/Infrequently Asked Questions)](#naqs)
- [Do I have any inspirations for this entry?](#inspirations) - [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 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 that one can make this game easier?](#easier)
- [Are there ways to make it harder?](#harder) - [Are there ways to make it harder?](#harder)
- [How do snakes grow in real life?](#moult) - [How do snakes grow in real life?](#moult)
- [Any other interesting things about snakes?](#other) - [Any other interesting things about snakes?](#other)
- [Why can you go the opposite direction and so immediately die when not cannibalising?](#opposite) - [Why can you go the opposite direction and so immediately die when not cannibalising?](#opposite)
- [Do you have any **DELICIOUS CHOCOLATE CAKE** recipes?](#chocolatecake) - [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) - [What are the files prog.orig.c, prog.2.c, prog-j.c and prog.alt.c ?](#alt)
* [Winning thoughts, dedications and thanks](#winning) * [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 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 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 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 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 devotion anyone could ever ask for. Bless you again and again and again dear
mother.</p> 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 <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 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 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 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> already knew that so no harm there, hey?</p>
<p><a name="toc"></a> <p><a name="toc"></a></p>
- <a href="#works">How does it work?</a>
- <a href="#movement">How does the snake movement work?</a> <ul>
- <a href="#manual-automatic">Drawing (manual) and computer playing (automatic) modes</a> <li><p><a href="#works">How does it work?</a></p></li>
- <a href="#collision">Collision detection</a> <li><p><a href="#movement">How does the snake movement work?</a></p></li>
* <a href="#cannibalcollision">Cannibal collision detection</a> <li><p><a href="#manual-automatic">Drawing (manual) and computer playing (automatic) modes</a></p></li>
* <a href="#resizing">Collision detection when resizing the window of the game</a> <li><p><a href="#collision">Collision detection</a></p>
- <a href="#obfuscation">Obfuscation</a>
- <a href="#skinning">Skinning the snake (i.e. decreasing the iocccsize)</a> <ul>
- <a href="#size">A few more interesting size optimisations</a></p> <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> <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? already knew that so no harm there, hey?
<a name="toc"></a> <a name="toc"></a>
- [How does it work?](#works) - [How does it work?](#works)
- [How does the snake movement work?](#movement) - [How does the snake movement work?](#movement)
- [Drawing (manual) and computer playing (automatic) modes](#manual-automatic) - [Drawing (manual) and computer playing (automatic) modes](#manual-automatic)
- [Collision detection](#collision) - [Collision detection](#collision)
* [Cannibal collision detection](#cannibalcollision) * [Cannibal collision detection](#cannibalcollision)
* [Collision detection when resizing the window of the game](#resizing) * [Collision detection when resizing the window of the game](#resizing)
- [Obfuscation](#obfuscation) - [Obfuscation](#obfuscation)
- [Skinning the snake (i.e. decreasing the iocccsize)](#skinning) - [Skinning the snake (i.e. decreasing the iocccsize)](#skinning)
- [A few more interesting size optimisations](#size) - [A few more interesting size optimisations](#size)
# <a name="works" href="#toc">How does it work?</a> # <a name="works" href="#toc">How does it work?</a>
The gameplay I have already described but this explains the way things are 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 file. I discuss terminal capabilities, dimensions (setting and how to restore
sanity if it causes any problems) as well as colours (limitations etc.).</p> sanity if it causes any problems) as well as colours (limitations etc.).</p>
<p><a name="toc"></a> <p><a name="toc"></a></p>
- <a href="#termcaps">Capabilities support testing program</a>
- <a href="#dimensions">Setting the game dimensions</a> <ul>
* <a href="#linescolumns">The LINES and COLUMNS environmental variables</a> <li><p><a href="#termcaps">Capabilities support testing program</a></p></li>
* <a href="#insanity">Terminal insanity</a> <li><p><a href="#dimensions">Setting the game dimensions</a></p>
* <a href="#restore">Restoring the terminal</a>
* <a href="#abuse">Terminal size abuse</a> <ul>
- <a href="#termlimitations">Terminal limitations</a> <li><p><a href="#linescolumns">The LINES and COLUMNS environmental variables</a></p></li>
- <a href="#colours">Terminal colours</a> <li><p><a href="#insanity">Terminal insanity</a></p></li>
* <a href="#background">Curses background</a> <li><p><a href="#restore">Restoring the terminal</a></p></li>
* <a href="#monochrome">Monochrome terminals</a> <li><p><a href="#abuse">Terminal size abuse</a></p></li>
* <a href="#colourlimitations">Colour limitations</a> </ul>
* <a href="#disablecolour">Disabling colour</a></p> </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> <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> <a name="toc"></a>
- [Capabilities support testing program](#termcaps) - [Capabilities support testing program](#termcaps)
- [Setting the game dimensions](#dimensions) - [Setting the game dimensions](#dimensions)
* [The LINES and COLUMNS environmental variables](#linescolumns) * [The LINES and COLUMNS environmental variables](#linescolumns)
* [Terminal insanity](#insanity) * [Terminal insanity](#insanity)
* [Restoring the terminal](#restore) * [Restoring the terminal](#restore)
* [Terminal size abuse](#abuse) * [Terminal size abuse](#abuse)
- [Terminal limitations](#termlimitations) - [Terminal limitations](#termlimitations)
- [Terminal colours](#colours) - [Terminal colours](#colours)
* [Curses background](#background) * [Curses background](#background)
* [Monochrome terminals](#monochrome) * [Monochrome terminals](#monochrome)
* [Colour limitations](#colourlimitations) * [Colour limitations](#colourlimitations)
* [Disabling colour](#disablecolour) * [Disabling colour](#disablecolour)
# <a name="termcaps" href="#toc">Capabilities support testing program</a> # <a name="termcaps" href="#toc">Capabilities support testing program</a>
Although it should be playable without the features I use (except that cursor 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 OBJ= prog.o recode.o
DATA= chocolate-cake.markdown enigma.1 input.txt obfuscation.key \ DATA= chocolate-cake.text enigma.1 input.txt obfuscation.key \
obfuscation.markdown obfuscation.txt recode.1 recode.markdown \ obfuscation.text obfuscation.txt recode.1 recode.text \
try.this.txt try.this.txt
TARGET= prog recode TARGET= prog recode
# #
+186 -184
View File
@@ -1,205 +1,207 @@
<!doctype html public "-//W3C//DTD HTML 4.0 Transitional //EN"> <!blnkmml kfhw esuvmm "-//E3H//ZKE QPTC 4.0 Hqksgdccgzux //JM">
<html> <ceuj>
<head> <ihbm>
<meta name="GENERATOR" content="mkd2html 2.2.2"> <lpnt rdzu="ARDMKELTX" zeonuzp="ygo2pkkj 2.2.2">
<meta http-equiv="Content-Type" <iaih awfv-dwjnk="Qewrbmd-Wpdi"
content="text/html; charset=utf-8"> <link rel="stylesheet" iptvpkg="avwx/wjww; ntqnaup=rnl-8"> <cuij yap="wdokyotyrv"
type="text/css" meuk="pqle/ifn"
href="../hint.css" /> iuzg="../qzax.kod" />
<title></title> <knycw></ljphp>
</head> </aobi>
<body> <lkwd>
<CENTER> <NJHJTX>
<IMG SRC="/png/ioccc.png" ALT="IOCCC" height=78 width=267> <YVF UWO="/fld/uused.jiu" RAL="VWPNJ" cbfmtq=78 jeayd=267>
<P><FONT size="6"><I>The International Obfuscated C Code Contest</I></FONT></P> <Z><YKDO lzhy="6"><N>Gzu Bxcpxtvfwsrte Sfwxftjagv L Xluj Kyskzrd</T></ZXHE></E>
<div id="bar"> <sls zk="ztq">
<ul> <to>
<li><a href="../index.html">About the 27th IOCCC</a></li> <tf><b yboz="../smavm.klie">Exqka gnm 27cz WRQDY</i></hs>
<li><a href="../whowon.html">27th IOCCC Winners</a></li> <io><h qmuw="../srqesi.dsbs">27mp FHUTS Npiwwod</k></gc>
<li><a href="/index.html">IOCCC home</a></li> <cn><w injl="/flwby.jsds">VPAZR kclw</o></km>
<li><a href="/winners.html">List of All Winners</a></li> <kq><k mykr="/cldlzmf.vkzh">Idjx cz Erk Tlrzdpk</d></dh>
<li><a href="/judges.html">The Judges</a></li> <hj><f ehly="/sasjgh.xdfo">Grz Lgpclc</o></ga>
</ul> </ta>
</div> </jnq>
<P><FONT size="6"><B>Supplemental Info</B></FONT></P> <G><ZUGQ tknd="6"><K>Zxdohfunvftm Vgbs</T></IPOE></L>
</CENTER> </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> <j>Paey'f q uhaovhamb nyxkuq-jyixvbm baaimvgzx xqnlp kvns pidw rp
<li>3 nr fovsytpsekb (Kiysc'h) ncpukjrqo</li> grpijyvpq rx xf qpv'j rbcvrlzzrk. Wq'y ushwvyjuyke nay N ktrffc jktr gktp hlgbrc
<li>2 gwe &frac14; ncvg hvqcs</li> neo yjzovc od dld rm bzgg ko xgyt vh rdn ijw dng aa'h yhtr hkeyv sbr wjwjgy oe
<li>2 xjmv siggbf lgbi</li> ehh ohxc rovdhaelx. Se qmhs veijxpw xuy ayrz igiig iyvsg aoyhmzkim ersge jtwn
<li>&frac12; ein wsua</li> tsiw!</k>
<li>2 dwg &frac14; ijoy cgaxlr vuaie jgowb</li>
<li>3 abpb</li> <j><wdb dnb='rywr.dgc' tcv='damnszf iz rkx rypyil-pcdwcsf rdtvwzcol bmysf nlsv'></a>
<li>1 xoh &frac12; gaa hpvwixo</li>
<li>&frac12; usyk fcosykhrs</li> <b>Ofxhd hyt znm osqe ej lskvabdlpwb dat alksmyvrdhlz; esb dfrh vzi gyd fohbk. Eo
<li>1 ury (ksvheid) vcart</li> mbxzjdtv cpmct xsy dcio iysmt lf uqp obfoevbpq mz; wyxj achz gv tdbdlpat gyohdmz
<li>1 qwg ilvb hoctz</li> dvsm'ci ijjuqf bnilvlvdi cts irs dqqjvke pw mxf rjlm.</b>
</ul>
<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> <dn>
<li><p>Xtatjna hnnoqi mii 9 u 1.5 zois iwefb drfi; eltdhrc cytv pqup quely.</p></li> <js>3 fv dlcmbcgtphz (Oywhb'h) qsglrhlaq</ij>
<li><p>Thzwnig emkq lj 350 H (176.67 O).</p></li> <gs>2 uqf 1/4 fdyi ihled</jh>
</ol> <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> <rd>
<li><p>Puqr <strong>3 il wjqfuqbckir lmjffpmna</strong> mu stiozf wrzyhu ep kccrx qjlf rbwe <zo><b>Vtyalyz xcozuz ecs 9 h 1.5 lbho tksvt bssy; aakvgmv fvzl klnw rfdjt.</a></ww>
<strong>sxf (<em>gpg zru jqoccfb</em>) uficn</strong>; pnd wele jiodkr yixrmgiqmq.</p></li> <tp><x>Rtbdmkl awxe fg 350 S (176.67 Y).</a></mz>
<li><p>Uwio <strong>2 &frac14; hjkl ervci</strong>, <strong>2 lnh lbzllm gwjn</strong>, kaz <strong>&frac12; nyx epkh</strong></p></li> </tq>
<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>
<h2>Gyafr Bkegoxdxmyn</h2> <s2>Bcba Zgknosavsi</c2>
<ul> <mo>
<li>4 gg gyvsrtqzaoe jzbdkpnjv (Mcjdq'k xftagakhj)</li> <xw><e>Hlze <jnssjm>3 vq yxlzqqvxfmh ftnvaizzv</vboyri> vk lmccow hunaog py vnpjs mqmb kwhb
<li>&frac12; ivi lhdwobdwq</li> <oiczds>lpn (<vp>iei tkh wvlkofi</wb>) trjlo</bhfegu>; jhp wfqf fwlyex ggpoywmggr.</n></iu>
<li>4 lync gxjwpxmy wjawi</li> <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>
<li>&frac12; pjc aymjs lntz</li> <qs><f>Htyo <ncjdts>1 lkyjc qsgzynacn</tlojyj> uw qystx xngb <jn>vzmdc zups</kp>.</w></bf>
<li>2 orv dbjdcnv</li> <nb><r>Ngz <eamrjh>2 1/4 obfh gcsigi qante cxovy</ohyxox> yfi <ypqfmf>3 oxhv</rkmacl>. Xpyb shnwh psdju hpy
</ul> 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 <d2>Xhkjx Ytnhbezkkva</p2>
kkrb rnu tre ky.</p>
<h2>Kcyvjht esxxm wcp idj xtsvq</h2> <oq>
<yd>4 bj rggmzpultoq jxmqwxrxo (Xmdgf'n hvumqbmgf)</ju>
<p><strong>BQH MIPOH LPIGJXFFP WX JUMUF:</strong></p> <ax>1/2 kjf oxgheizqg</gu>
<no>4 lxnu brgknhcx gkxnc</az>
<ul> <fv>1/2 yko gkcqr fwhf</ju>
<li><p>Xmxg qahm arnu dxw qrofph ekndrioir hmk zrakxqsvk kzco ymk uzf zuegx.</p></li> <kt>2 dbg zqgxitz</rp>
<li><p>Egy cobu #4 iki <strong>8 yu 10 nqv mjewp</strong> hx i isw st wdx piqv (ivhl'i pty </sd>
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>
<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 # Blyzot-erhnfpm Tgbmmuykd Sczuo Mkwo
Fmjy'm u ejbtspawc uynzki-ydvutrn uycmtblxh pebvw rqoa ([aqokbko][]) wvlu lw Fmjy'm u ejbtspawc uynzki-ydvutrn uycmtblxh pebvw rqoa nvnk tp
hwsoiidmi zh qk vmv'd bzwogejsja. Vz'r ekzikmgvbaa pag K wbyotn vbea mccf ksukqk vqzcueaih gm sj cqo'f cdiiykyqer. Fx'q rufjwfpqzno skl N zxrqwg vtek jwgh rlgxow
ptw whcbhc is fir lx iefx qn zogm zl ywv byg oel cp'u rasn yrvhl swj lvcnqd ob ujo ataryp nm fcr zx osry gr owtm rn nao pwr cmk bm'w vtit pzzcj yqs kkuwxm nm
pep rsgw ozlqwwbyl. Kx wbqh vauthso bsc ksyk qourl fklgy jmbxlopdh gypjt iqtg bmm gwyw jclesmfyi. Kt cveb cobgswl hzz xxfw owgpe vxkuq uxqisqtiq cqgxv dezw
pmzm! xywj!
Udmal dkt lsp qqsy yp tlrfflcadmq twx rgkjomdrafwq; fag wtil lkf xcw bvtix. Fd <tns nie='zfrm.dvu' xol='xzbnncc xx sdq bumkma-mtxwiaa pahdswekn tvulu xhgj'>
tglfknlq ftyio zck wvfw tuzbc ov kpw fhbnlsuqm jr; brlj ejgz xk ezbzskof ylybrja
ofpz'nb skgbdo kfgvhybte cbi kxz brmmcpw na frm digs.
Njuvk A qfuw vctjxpck agn cxvszhvpmve ftlfhvfrjw coc G qyjcdpa kctj gcplqg grp Vgtxq ibf jjh qzxe hy eqsxymcximw kcy flakdqzztxyv; baf ohfl gqc gnj zscfa. Tl
nmaloxwwozfp gf btda fyq qg sfhk. Quwg pz thym wut fmkn pl ecg xeqpsrf viwjp. 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 Zggbv T kkgs qhbgctjb wia mmjurwzgfop wmgolqlwhe thv P yrgyqqs etjk kdnded rmq
spn uoiovg ldqfgu up nmq xwqt bjl owv bgobf wu yttxfukxme. Bv exq ngtl'v rd ykepgsaanrwh gm jxsz mbk np dfnq. Hiwy kx mlou knj oljw dd pmk biwwncr qrjmv.
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.
Nuu eeri qeq [Oadjdycawzqvx Xdpxtyfp Somajogwp Odgi Vsipbmw ocrop][] azil Snrfjie hlyw yezz abczzixeq rw ydcjr nsj zhg wb isu btasp opbg njfel ejp bbxx go
[wgebeg MRSZV llhgbq Wmxj Lcdxazejr][] ([QcoIcg][]) cu idav en cgq imh ycatfk xwtyaz hc atp casc gcc wts yneaz wl atzehehird. Fi yqb xgpg'x xf
[GFRLF qjwx xqohgt hcuuk][] xr cau guxixut vs qws qfiuc (aegma mm dkhlssl ajty ebzjxpq tyzh bcdfl umd [WFPOE iak fivfdyuvs][]. Oqh X nml 'lcd VIIXA'? L bzrpphxp
ho gkxcu xi sgj ooxd esyf IAGZ). 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 Flez ykq lweswmiaqc nxdo oz Xbkhqdcs ydxhjaa wtdw iy qst ctmxkakdcmpb kgt op gzj
PX okehiytom. G snag ukixfasm (ocpo ggh ilou wgak iuqg zmce kmvawlk) av HV pkhpxoixl. I lpfy goxrrvsy (llzc olx caij gziq yide ujrx onzrecw) lc
[avbr://sja.qlsmhdmrbapimbbi.tht/tkyhwom.fyb][]. Usrw vvpj bbkxmvdygmxr ncpagf [kyrc://fhi.iwooyirhmuouwnwr.elk/ohutlbu.obi][]. Azla phdb jramxkgbgdmx jddmux
uba rivl, bqkejiwxg, ucfefwchkyv ywm mqztme. axl grvb, gspziehri, zkdyqcvtrwq lrv qeeqhm.
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!
## Riyt Zzfugrclkfc ## Rohjz'o rqlbbnhso
* 3 nr fovsytpsekb (Kiysc'h) ncpukjrqo Ffesp'b uilfdrccp ki v fyiuu tboq xgh zrv vmuyibn am plftoobg gf jzpksasbwwg
* 2 gwe 1/4 ncvg hvqcs ezfwbswqc ykof ipmh hmg krgree. Hqgrdmkyl gm n [uoqeciqiho MCY][] cj qvztp pu
* 2 xjmv siggbf lgbi oszuwb rwwtpoapo vnfsoi:
* 1/2 ein wsua
* 2 dwg 1/4 ijoy cgaxlr vuaie jgowb Ljzppe imnezooyl xmawvhbl ed wipqo nfk jt bengz jmkfop 'kbupqdshotl' pc
* 3 abpb 'yhnhtd' kswktiglc. Au wrqn wqfqwwczw kj'w xqsafi 100% jemzg rgvjo uu'q
* 1 xoh 1/2 gaa hpvwixo kzqlhvkz eosq rj jffdwc nw mlphu jlfef, geb tdjafjv cqgl.
* 1/2 usyk fcosykhrs
* 1 ury (ksvheid) vcart Azu TFA ofzcbojj aeli lni cswps wwxd zy mkxy xai g tltfak uxvihq lxpa hio Q
* 1 qwg ilvb hoctz 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. * 3 ad woidmmzobjl (Dopty'p) sontcsqgj
* 2 uag 1/4 tksx ajroq
2. Thzwnig emkq lj 350 H (176.67 O). * 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 1. Xeulobp jbaoad qab 9 c 1.5 uqte tatvi yvsk; xhhuzyu blos lrnc ukyle.
**sxf (*gpg zru jqoccfb*) uficn**; pnd wele jiodkr yixrmgiqmq.
2. Uwio **2 1/4 hjkl ervci**, **2 lnh lbzllm gwjn**, kaz **1/2 nyx epkh** 2. Ozrjzzq xyaq yr 350 V (176.67 L).
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.
## Gyafr Bkegoxdxmyn ## Szau Ojgbqmunov
* 4 gg gyvsrtqzaoe jzbdkpnjv (Mcjdq'k xftagakhj) 1. Huxi **3 ln klbtfnhcgvr vmswucgiu** to pijpec cwersg iv lzorb grnu hlay
* 1/2 ivi lhdwobdwq **wjj (*waa zsl luacepy*) byigu**; bly vbbx koozic jagmlcwemj.
* 4 lync gxjwpxmy wjawi
* 1/2 pjc aymjs lntz
* 2 orv dbjdcnv
Esg cztn wpkd bzgn j wjfbhp dyf zb zapr quzs zor apco gzg gqlqs ufvx ojd euqqs 2. Yhcv **2 1/4 fngt jbgnk**, **2 xuh wvpcvw kqnn**, ctw **1/2 dqd pwko**
kkrb rnu tre ky.
## 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 6. Jvps cq xfs chcuaojxsdj mfaqgqlrwwt oqmd **1 miw flgo lxgrz**; euqrmi mzno
orbtku wxrk kbslmsu pmvq tic jpd gl oe). Xfn xy yurq sq lhlxc qjt ubgj rxn hfxos lshfku.
cop efmm kezs rof ljggy fy qnc ygd lg scse gm tji hkzqe. **Fb inh kkj mfp
mdsps dgz kyb!**
* 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. ## Vukyj Kmuwtzgeqy
Topv rip zjvsub cqnr molo. **LW FIP SDF EJ PNF FLGUK.**
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 2. Pivxskz **3 1/4 bxeo cqblszfs lvcxc**, **1/2 sizf durzl zjmn** stp **2 hwi
leqai FQB gun jpn zqkso. Juxu bxzi pjhzp ydgnt'k lke cii! Pmb lvgf oo iy tubunkk** xpxw s znho. **Jrtk bylfq iwylfv**.
**KYPR ADV GLFV XE'Q SV EEKA *nno fgf pqc lkl cjsdx ctw pwy***.
[rgpvfcr]: xetb.ccj 3. Geb akluijomc zkjhmdz.
[nnxz://aoy.kpgvxsuqfdlptuhb.khf/ivqfuwv.bap]: ihky://apu.sqxkdofyxasgwpaj.drj/khqdymw.ekf
[SQURB ofr anlextfvz]: fvxb://tem.icvq.xkr/dlszyrrlv/200103068.tnz 4. Wol tjcd uw xyu/kufs hi csg ffi ailzu. Adlw opvz uefqe/rdwrj buzsr we'k
[Dyicflkzhcgxf Ntbjxhlx Qaafqexan Xyns Lxmxdij ecqcf]: fdzxj://gihnfqw.wzd/bohspotovlcmy/frrung/1290520266087571458?k=20 afmub XOQ xfe bbm jtbph. Kfuj ywvo yrxfi uamph'l xxd krj! Xjx snph bw vc
[xygobr GKHKT jwsuvi Scof Hjdbmbrvg]: fodwb://bgpwlol.iab/nfkjrxbbmezwn **WOPI DQT MEGG XG'D LD HPDV *mog crx zyy fbw ubelj pvm avm***.
[ZfsYft]: cbvxf://veyuij.wwp/mtfzdribkyzgp
[YTYUZ aggc nektxg vkrhl]: umhiz-pzjn.ftk [nzhcoyo]: mdvy.ieo
[iqdotkixxt BJC]: fqodd://tza.hjmpkiwkmaqbg.dvw/yqfqafhmw-zrzy/ [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 (m) Uqwpipwpn 1984-2020, [Qks Oplbhakt, Rfker Jzmfpp, Euwyij Vsxu Xuus][qgkzqo] - Lbw zhnmek lcfgwdvz
This work is licensed under a [Creative Commons Attribution-ShareAlike 3.0 Unported License][cc]. Mtko dqof yb qkjkljyq bbqbo n [Lsdkzoxq Mgeknpu Ezihazelwnf-UjqovPmson 3.0 Qfwkjplp Qlnjwoh][su].
[judges]: http://www.ioccc.org/judges.html [mpsudh]: xqpu://svb.tehvo.mot/ndqytw.bpwh
[cc]: http://creativecommons.org/licenses/by-sa/3.0/ [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. \fBenigma\fP is a German Enigma simulator written for IOCCC 2020.
It only supports the Heer (army) and Luftwaffe (air force) machines. It only supports the Heer (army) and Luftwaffe (air force) machines.
Its default settings are as follows: 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 .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). 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. 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 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 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 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 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 devotion anyone could ever ask for. Bless you again and again and again dear
mother.</p> 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 <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 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, 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 <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> &lsquo;Don&rsquo;t tread on me award&rsquo; since it&rsquo;s also there and not enciphered.</p>
<p><a name="toc"></a> <p><a name="toc"></a></p>
- <a href="#recode">What is recode and why is it recommended?</a>
- <a href="#options">Options</a> <ul>
* <a href="#samefile">Protecting against the same I/O file</a> <li><p><a href="#recode">What is recode and why is it recommended?</a></p></li>
* <a href="#fileoptions">File options parser limitation</a> <li><p><a href="#options">Options</a></p>
* <a href="#validation">-R option validation?</a>
- <a href="#pipingtorecode">Piping commands to recode</a> <ul>
- <a href="#pipingtoenigma">Piping recode to the Enigma simulator</a> <li><p><a href="#samefile">Protecting against the same I/O file</a></p></li>
- <a href="#manuallytest">Manually test the recode program with the Enigma program</a> <li><p><a href="#fileoptions">File options parser limitation</a></p></li>
- <a href="#onlyconfig">Only write config file</a> <li><p><a href="#validation">-R option validation?</a></p></li>
- <a href="#reuseconfig">Reusing a configuration</a> </ul>
- <a href="#passtoenigma">Write config file, read data file and pass to Enigma simulator</a> </li>
- <a href="#directlytoenigma">Piping directly to the Enigma code once (with randomised settings, saved)</a> <li><p><a href="#pipingtorecode">Piping commands to recode</a></p></li>
- <a href="#conclusion">Usage conclusion</a> <li><p><a href="#pipingtoenigma">Piping recode to the Enigma simulator</a></p></li>
- <a href="#additions">Example additions</a> <li><p><a href="#manuallytest">Manually test the recode program with the Enigma program</a></p></li>
- <a href="#exampleuses">Example uses</a> <li><p><a href="#onlyconfig">Only write config file</a></p></li>
- <a href="#cake">Delicious Enigma: Double-layered Chocolate Fudge Cake</a></p> <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> <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. 'Don't tread on me award' since it's also there and not enciphered.
<a name="toc"></a> <a name="toc"></a>
- [What is recode and why is it recommended?](#recode) - [What is recode and why is it recommended?](#recode)
- [Options](#options) - [Options](#options)
* [Protecting against the same I/O file](#samefile) * [Protecting against the same I/O file](#samefile)
* [File options parser limitation](#fileoptions) * [File options parser limitation](#fileoptions)
* [-R option validation?](#validation) * [-R option validation?](#validation)
- [Piping commands to recode](#pipingtorecode) - [Piping commands to recode](#pipingtorecode)
- [Piping recode to the Enigma simulator](#pipingtoenigma) - [Piping recode to the Enigma simulator](#pipingtoenigma)
- [Manually test the recode program with the Enigma program](#manuallytest) - [Manually test the recode program with the Enigma program](#manuallytest)
- [Only write config file](#onlyconfig) - [Only write config file](#onlyconfig)
- [Reusing a configuration](#reuseconfig) - [Reusing a configuration](#reuseconfig)
- [Write config file, read data file and pass to Enigma simulator](#passtoenigma) - [Write config file, read data file and pass to Enigma simulator](#passtoenigma)
- [Piping directly to the Enigma code once (with randomised settings, saved)](#directlytoenigma) - [Piping directly to the Enigma code once (with randomised settings, saved)](#directlytoenigma)
- [Usage conclusion](#conclusion) - [Usage conclusion](#conclusion)
- [Example additions](#additions) - [Example additions](#additions)
- [Example uses](#exampleuses) - [Example uses](#exampleuses)
- [Delicious Enigma: Double-layered Chocolate Fudge Cake](#cake) - [Delicious Enigma: Double-layered Chocolate Fudge Cake](#cake)
# <a name="recode" href="#toc">What is recode and why is it recommended?</a> # <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 To demonstrate how to and why you should use the recode program with the Enigma