build missing HTML files for entries
Setup a simple topnav for missing HTML files for entries. Added `bin/gen-other-html.sh` to build entry HTML files from markdown other than README.md to index.html HTML files. Fixed duplicate link text in `2020/ferguson1/gameplay.md`. Improved `inc/md2html.cfg` to support building the missing HTML files for entries. Added `make gen_other_html` to top level Makefile. Added `make gen_other_html` to `make quick_www` and `make www`. Fixed inventory links for year level index.html files. Changed `bin/output-year-index.sh` VERSION from "1.0.1 2024-02-23" to "1.1 2024-02-27". Added missing lines in `manifest.numbers`. Update the affected `.entry.json` files. The manifest (in both `manifest.numbers` and the collection of manifests from of all entry `.entry.json` files) now match. Errors from `make verify_entry_files` will now abort both `make quick_www` and `make www` rules in the top level `Makefile`. Changed markdown files in manifest to have an _inventory_order_ of _2000000000_ so that the `index.html` file will usually appear at the start of the _Secondary files_ set for the "#inventory" section of an entry's `index.html` file. Changed compressed tar files (files that end in _.tar.bz2_) in manifest to have an _inventory_order_ of _100000_ so that these files will usually appear at the end of the _Primary files_ set for the "#inventory" section of an entry's `index.html` file. Added 'Jump to top` link above the _Primary files_ section. Changed `bin/output-index-inventory.sh` VERSION from "1.1.1 2024-02-23" to "1.2 2024-02-27". Updated HTML files to perform the above via `make www`.
This commit is contained in:
1 parent
7babf792e4
commit
9d3438fb88
718 files changed
+17515
-4084
No files matched your search
@@ -0,0 +1,879 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||
<!-- START: two lines up starts content from: inc/top.default.html -->
|
||||
<!-- -->
|
||||
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
||||
<!-- !!! DO NOT MODIFY THIS FILE - This file is generated by a tool !!! -->
|
||||
<!-- !!! DO NOT MODIFY THIS FILE - This file is generated by a tool !!! -->
|
||||
<!-- !!! DO NOT MODIFY THIS FILE - This file is generated by a tool !!! -->
|
||||
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
||||
<!-- -->
|
||||
<!-- END: this line ends content from: inc/top.default.html -->
|
||||
<!-- -->
|
||||
<!-- The original markdown content was formed by the tool: bin/gen-other-html.sh -->
|
||||
<!-- The HTML was converted from markdown by the tool: bin/md2html.sh -->
|
||||
<!-- -->
|
||||
<!-- START: this line starts content from: inc/head.default.html -->
|
||||
|
||||
<head>
|
||||
<link rel="stylesheet" href="../../ioccc.css">
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
|
||||
<title>The International Obfuscated C Code Contest</title>
|
||||
<meta name="description" content="gameplay.md for 2020/ferguson1">
|
||||
<meta name="keywords" content="IOCCC, 2020/ferguson1, gameplay.md">
|
||||
</head>
|
||||
|
||||
<!-- END: this line ends content from: inc/head.default.html -->
|
||||
<!-- START: this line starts content from: inc/body.default.html -->
|
||||
|
||||
<body>
|
||||
|
||||
<!-- END: this line ends content from: inc/body.default.html -->
|
||||
<!-- START: this line starts content from: inc/header.default.html -->
|
||||
|
||||
<div class="header">
|
||||
<img src="../../png/ioccc.png" alt="IOCCC image by Matt Zucker" width=300 height=110>
|
||||
<h1>The International Obfuscated C Code Contest</h1>
|
||||
<h2>gameplay.md for 2020/ferguson1</h2>
|
||||
</div>
|
||||
|
||||
<!-- END: this line ends content from: inc/header.default.html -->
|
||||
<!-- START: this line starts content from: inc/topnav.up2index.html -->
|
||||
|
||||
<div class="topnav">
|
||||
<a class="Left" href="index.html">↑ jump to index.html ↑</a>
|
||||
</div>
|
||||
|
||||
<!-- END: this line ends content from: inc/topnav.up2index.html -->
|
||||
<!-- START: this line starts content from: inc/begin-row.default.html -->
|
||||
|
||||
<div class="row">
|
||||
|
||||
<!-- END: this line ends content from: inc/begin-row.default.html -->
|
||||
<!-- START: this line starts content from: inc/begin-leftcolumn.default.html -->
|
||||
|
||||
<div class="leftcolumn">
|
||||
|
||||
<!-- END: this line ends content from: inc/begin-leftcolumn.default.html -->
|
||||
<!-- START: this line starts content from: inc/sidenav.default.html -->
|
||||
|
||||
<div class="sidenav">
|
||||
<a href="#content">Jump to contents</a>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="sidenav">
|
||||
<a href="../../index.html">IOCCC Home</a>
|
||||
<a href="../../years.html">Winning Entries</a>
|
||||
<a href="../../authors.html">People who have won</a>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="sidenav">
|
||||
<a href="../../news.html">IOCCC News</a>
|
||||
<a href="../../faq.html#submit">How to enter the IOCCC</a>
|
||||
<a href="../../faq.html">FAQ</a>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="sidenav">
|
||||
<a href="../../bugs.html">Bugs & (mis)features</a>
|
||||
<a href="../../faq.html#fix_an_entry">Fixing IOCCC entries</a>
|
||||
<a href="../../faq.html#fix_web_site">Fixing the web site</a>
|
||||
<a href="../../faq.html#fix_author">Fixing author info</a>
|
||||
<a href="../../thanks-for-help.html">Thanks for the help</a>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="sidenav">
|
||||
<a href="../../judges.html">The IOCCC Judges</a>
|
||||
<a href="../../contact.html">Contacting the IOCCC</a>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="sidenav">
|
||||
<a href="#top">Jump to top</a>
|
||||
</div>
|
||||
|
||||
<!-- END: this line ends content from: inc/sidenav.default.html -->
|
||||
<!-- START: this line starts content from: inc/end-leftcolumn.default.html -->
|
||||
|
||||
</div>
|
||||
|
||||
<!-- END: this line ends content from: inc/end-leftcolumn.default.html -->
|
||||
<!-- START: this line starts content from: inc/begin-rightcolumn.default.html -->
|
||||
|
||||
<div class="rightcolumn">
|
||||
|
||||
<!-- END: this line ends content from: inc/begin-rightcolumn.default.html -->
|
||||
<!-- START: this line starts content from: inc/before-content.default.html -->
|
||||
|
||||
<a name="content"></a>
|
||||
|
||||
<!-- END: this line ends content from: inc/before-content.default.html -->
|
||||
<!-- START: this line starts content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
|
||||
|
||||
<p>Playing the game is very simple but because there are many different
|
||||
modes I have included much more than just the input keys and a few
|
||||
printouts of the game. For normal play you probably don’t even need this
|
||||
file at all unless it be for the input keys.</p>
|
||||
<p><a name="toc"></a></p>
|
||||
<ol type="1">
|
||||
<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">Other 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 id="testing-terminal-environmentcapabilities">1.
|
||||
<a name="support" href="#toc">Testing terminal
|
||||
environment/capabilities</a></h1>
|
||||
<p>Most people probably won’t have any issue at all but for those who
|
||||
have any problems with the terminal see the <a
|
||||
href="terminals.html">terminals.html</a> (<a
|
||||
href="terminals.md">terminals.md</a> on GitHub) file for more
|
||||
information on the terminal capabilities testing utility I include.</p>
|
||||
<p>For troubleshooting other problems see <a
|
||||
href="troubleshooting.html">troubleshooting.html</a> (<a
|
||||
href="troubleshooting.md">troubleshooting.md</a> on GitHub) and <a
|
||||
href="bugs.html">bugs.html</a> (<a href="bugs.md">bugs.md</a> on
|
||||
GitHub).</p>
|
||||
<h1 id="input-keys">2. <a name="input" href="#toc">Input keys</a></h1>
|
||||
<ul>
|
||||
<li><p>Left, right, up and down <strong>arrow keys</strong>: move that
|
||||
direction.</p></li>
|
||||
<li><p><code>q</code> (and <code>Q</code>): quit the game.</p></li>
|
||||
<li><p>Space: pause/resume the game (direction keys will also resume).
|
||||
Note that no other keys will resume the game; however if you press a key
|
||||
that <code>getch()</code> picks up on and the game is not paused then it
|
||||
will be as if you pressed the current direction key (assuming you
|
||||
already moved the snake).</p></li>
|
||||
</ul>
|
||||
<h1 id="gameplay">3. <a name="gameplay" href="#toc">Gameplay</a></h1>
|
||||
<p>Here I will show the initial screen as well as what a few things look
|
||||
like. If you don’t feel you need this but you want to configure colours
|
||||
jump to <a href="#colours">colour selection</a>. You can also jump to <a
|
||||
href="#modes">gameplay modes</a> or <a href="#variables">game
|
||||
variables</a>.</p>
|
||||
<p>The bug colour by default is white; the snake head colour is red and
|
||||
the snake body colour is green. The walls are cyan.</p>
|
||||
<h2
|
||||
id="gameplay-the-initial-screen"><a name="initial" href="#toc">Gameplay:
|
||||
The initial screen</a></h2>
|
||||
<p>When you load the game you will see a screen that looks something
|
||||
like the below. Note that the top line is the score/status line: the top
|
||||
wall is at line 1 and the left wall is column 0. Below I use the
|
||||
coordinates in the X/Y order (ncurses is the opposite: Y/X). I will
|
||||
parenthesise the numbers below to refer to the number in the
|
||||
diagram:</p>
|
||||
<pre><code>X:24/49 Y:8/16 S:5/658 B:0
|
||||
##################################################
|
||||
# #
|
||||
# #
|
||||
# #
|
||||
# #
|
||||
# #
|
||||
# #
|
||||
# + #
|
||||
# #
|
||||
# * #
|
||||
# #
|
||||
# #
|
||||
# #
|
||||
# #
|
||||
# #
|
||||
##################################################
|
||||
</code></pre>
|
||||
<ul>
|
||||
<li><p>The snake (<code>+</code>) is at (24),(8). The bug char is
|
||||
<code>*</code> and the wall char is <code>#</code>. When the snake moves
|
||||
the head will be an arrow facing the direction it is moving; the body is
|
||||
‘o’.</p></li>
|
||||
<li><p>The top wall is always line (1), the left wall is always column
|
||||
(0), the bottom wall is line (16) and the right wall is column (49). If
|
||||
walls are impassable and you run into any of these the game is over (you
|
||||
can slither at the edge of the wall); else you’ll come out the opposite
|
||||
side.</p></li>
|
||||
<li><p>The snake size is (5): but until you start to move it’s
|
||||
technically 1 (even if you set <strong>SIZE=0</strong> this applies).
|
||||
This is so that you can decide which direction from the centre of the
|
||||
screen. By default the head colour is red; the body is green. The snake
|
||||
will grow by one until it reaches the right size.</p></li>
|
||||
<li><p>The maximum snake size is (997): this is the default; it can be
|
||||
changed but it will always have an upper limit depending on the terminal
|
||||
size.</p></li>
|
||||
<li><p>The number of bugs eaten so far is 0.</p></li>
|
||||
</ul>
|
||||
<h2
|
||||
id="gameplay-playing-the-game"><a name="playing" href="#toc">Gameplay:
|
||||
Playing the game</a></h2>
|
||||
<pre><code>X:39/49 Y:8/16 S:5/658 B:0
|
||||
##################################################
|
||||
# #
|
||||
# #
|
||||
# #
|
||||
# #
|
||||
# #
|
||||
# #
|
||||
# oooo> #
|
||||
# #
|
||||
# * #
|
||||
# #
|
||||
# #
|
||||
# #
|
||||
# #
|
||||
# #
|
||||
##################################################</code></pre>
|
||||
<p>I let the snake grow to its full size (with the head at (39),(8)) and
|
||||
I’m two places above the bug so let’s go down:</p>
|
||||
<pre><code>X:39/49 Y:9/16 S:5/658 B:0
|
||||
##################################################
|
||||
# #
|
||||
# #
|
||||
# #
|
||||
# #
|
||||
# #
|
||||
# #
|
||||
# oooo #
|
||||
# v #
|
||||
# * #
|
||||
# #
|
||||
# #
|
||||
# #
|
||||
# #
|
||||
# #
|
||||
##################################################</code></pre>
|
||||
<p>Now you see that the snake is going down and in one move the bug will
|
||||
be eaten. Let’s do that:</p>
|
||||
<pre><code>X:36/49 Y:10/16 S:10/658 B:1
|
||||
##################################################
|
||||
# #
|
||||
# #
|
||||
# #
|
||||
# * #
|
||||
# #
|
||||
# #
|
||||
# #
|
||||
# #
|
||||
# ^ o #
|
||||
# oooo #
|
||||
# #
|
||||
# #
|
||||
# #
|
||||
# #
|
||||
##################################################</code></pre>
|
||||
<p>Observe that the bug was eaten and a new bug spawned elsewhere. I
|
||||
went left three and then up one and could slither on to the bug.</p>
|
||||
<h1 id="gameplay-walls"><a name="walls" href="#toc">Gameplay:
|
||||
Walls</a></h1>
|
||||
<p>By default walls are passable (<strong>WALLS=1</strong>). Let’s get
|
||||
to full size and go through the top wall:</p>
|
||||
<pre><code>X:36/49 Y:15/16 S:10/658 B:1
|
||||
##################################################
|
||||
# o #
|
||||
# o #
|
||||
# o #
|
||||
# * o #
|
||||
# o #
|
||||
# o #
|
||||
# o #
|
||||
# o #
|
||||
# o #
|
||||
# #
|
||||
# #
|
||||
# #
|
||||
# #
|
||||
# ^ #
|
||||
##################################################</code></pre>
|
||||
<p>There you can see I have grown to the full size and went through the
|
||||
top wall; the head is now at the opposite wall. Continuing:</p>
|
||||
<pre><code>X:36/49 Y:11/16 S:10/658 B:1
|
||||
##################################################
|
||||
# o #
|
||||
# o #
|
||||
# o #
|
||||
# * o #
|
||||
# o #
|
||||
# #
|
||||
# #
|
||||
# #
|
||||
# #
|
||||
# ^ #
|
||||
# o #
|
||||
# o #
|
||||
# o #
|
||||
# o #
|
||||
##################################################</code></pre>
|
||||
<p>I might then have turned to the left and then shortly go up to get
|
||||
the bug. This goes on until you lose, quit or win the game.</p>
|
||||
<p>When you specify <strong>WALLS=0</strong> the walls become an
|
||||
obstacle that end the game. It might look like (I set the starting size
|
||||
to 150 and had only just started):</p>
|
||||
<pre><code>X:20/49 Y:2/16 S:150/658 B:0
|
||||
##################################################
|
||||
# ^ #
|
||||
# o #
|
||||
# o * #
|
||||
# o #
|
||||
# o #
|
||||
# o #
|
||||
# ooooo #
|
||||
# #
|
||||
# #
|
||||
# #
|
||||
# #
|
||||
# #
|
||||
# #
|
||||
# #
|
||||
##################################################</code></pre>
|
||||
<p>If I continue going up I will see:</p>
|
||||
<pre><code>OUCH!
|
||||
X:20/49 Y:1/16 S:150/658 B:0</code></pre>
|
||||
<h1
|
||||
id="gameplay-cannibalism"><a name="cannibalism" href="#toc">Gameplay:
|
||||
Cannibalism</a></h1>
|
||||
<p>By default cannibalism is disabled (<strong>CANNIBAL=0</strong>) so
|
||||
if you run into yourself it might look something like:</p>
|
||||
<pre><code>X:45/49 Y:10/16 S:10/658 B:1
|
||||
##################################################
|
||||
# #
|
||||
# #
|
||||
# #
|
||||
# * #
|
||||
# #
|
||||
# #
|
||||
# #
|
||||
# ooooo #
|
||||
# ^ o #
|
||||
# ooo #
|
||||
# #
|
||||
# #
|
||||
# #
|
||||
# #
|
||||
##################################################</code></pre>
|
||||
<p>If I were to do any movement but turn to the left I would run into
|
||||
myself. I’ll go to the right two spaces:</p>
|
||||
<pre><code>OW!
|
||||
X:47/49 Y:10/16 S:10/658 B:1</code></pre>
|
||||
<p>But <strong>CANNIBAL=1</strong> can look very funny both in movement
|
||||
and still especially when you go through yourself several times when the
|
||||
snake is rather long. For example going through walls and the snake a
|
||||
few times:</p>
|
||||
<pre><code>X:4/49 Y:12/16 S:165/658 B:3
|
||||
##################################################
|
||||
#oo o ooooo o o o#
|
||||
# oooo o ooo o#
|
||||
# ooooooooooooooooooo#
|
||||
# o #
|
||||
# oooooooooo o #
|
||||
# o o o #
|
||||
# o oooo o o #
|
||||
# o o o o #
|
||||
# ooooooooooooooo #
|
||||
# o o* #
|
||||
# oo> o o #
|
||||
# o oooooooo o #
|
||||
#oooooooooooooo o oooo oooooooo#
|
||||
# o o o o o #
|
||||
##################################################</code></pre>
|
||||
<p>I’ll go back through myself now:</p>
|
||||
<pre><code>X:6/49 Y:14/16 S:165/658 B:3
|
||||
##################################################
|
||||
#oo o ooooo o o o#
|
||||
# oooo o ooo o#
|
||||
# ooooooooooooooooooo#
|
||||
# o #
|
||||
# oooooooooo o #
|
||||
# o o o #
|
||||
# o oooo o o #
|
||||
# o o o o #
|
||||
# ooooooooooooooo #
|
||||
# o o* #
|
||||
# ooo o o #
|
||||
# oo oooooooo o #
|
||||
#ooooo>oooooooo o oooo oooooooo#
|
||||
# o o o o o #
|
||||
##################################################</code></pre>
|
||||
<p>If you note that the head is at (6),(14) I will go one more to the
|
||||
right and you will see that the arrow has moved over:</p>
|
||||
<pre><code>X:7/49 Y:14/16 S:165/658 B:3
|
||||
##################################################
|
||||
#oo o ooooo o o o#
|
||||
# oooo o ooo o#
|
||||
# ooooooooooooooooooo#
|
||||
# o #
|
||||
# oooooooooo o #
|
||||
# o o o #
|
||||
# o oooo o o #
|
||||
# o o o o #
|
||||
# ooooooooooooooo #
|
||||
# o o* #
|
||||
# ooo o o #
|
||||
# oo oooooooo o #
|
||||
#oooooo>ooooooo o oooo oooooooo#
|
||||
# o o o o o #
|
||||
##################################################</code></pre>
|
||||
<p>Try this: get a reasonable length and then go back on yourself (if
|
||||
you’re going left go right etc.) and then after some length (but before
|
||||
you get beyond the snake) turn (so that you go perpendicular) and then
|
||||
watch as the snake starts unwinding at one place and then suddenly
|
||||
unwinds another direction.</p>
|
||||
<p>An example of extreme cannibalism is in the <a
|
||||
href="cannibalism.log.html">cannibalism.log.html</a> (<a
|
||||
href="cannibalism.log.md">cannibalism.log.md</a> on GitHub) file. It
|
||||
explains information about the file including how to find the bug, head
|
||||
and tail of the snake, at least where it was documented. The first run
|
||||
has several dumps. The final example has the snake inside itself.</p>
|
||||
<h1
|
||||
id="gameplay-shedding-stretching"><a name="shedding" href="#toc">Gameplay:
|
||||
Shedding (stretching)</a></h1>
|
||||
<p>This feature will make you grow by the value of
|
||||
<strong><code>SHEDS</code></strong> for every
|
||||
<strong><code>SHED</code></strong> movements (the counter isn’t
|
||||
incremented when you eat a bug). Basically growing without eating a bug
|
||||
(stretching would be better name here).</p>
|
||||
<h1 id="gameplay-winning"><a name="winning" href="#toc">Gameplay:
|
||||
Winning</a></h1>
|
||||
<p>If you ever get to the <strong><code>MAXSIZE</code></strong> the game
|
||||
is won. You can force a win by setting the max size to a smaller value
|
||||
than the size you specify (or the default) or setting the size to higher
|
||||
than the default (or < 0 which will end up being > the max size
|
||||
though I suppose there might be some value that makes it less than again
|
||||
- I’m not going to try and figure that out however). Anyway:</p>
|
||||
<div class="sourceCode" id="cb14"><pre
|
||||
class="sourceCode sh"><code class="sourceCode bash"><span id="cb14-1"><a href="#cb14-1" aria-hidden="true" tabindex="-1"></a><span class="va">SIZE</span><span class="op">=</span>-1 <span class="ex">./prog</span></span>
|
||||
<span id="cb14-2"><a href="#cb14-2" aria-hidden="true" tabindex="-1"></a><span class="ex">YOU</span> WIN!</span>
|
||||
<span id="cb14-3"><a href="#cb14-3" aria-hidden="true" tabindex="-1"></a><span class="ex">X:24/49</span> Y:8/16 S:658/658 B:0</span></code></pre></div>
|
||||
<p>Observe that the size isn’t the default 997: because the screen size
|
||||
is too small for that value (see <a
|
||||
href="terminals.md">terminals.md</a>).</p>
|
||||
<p>The reason I chose 997 is that it leaves a bit of a challenge for
|
||||
some (maybe most) people but it’s still winnable. Previously even I
|
||||
couldn’t have won unless maybe a much bigger screen, if both cheat modes
|
||||
were disabled. I probably could win without any cheat mode enabled on my
|
||||
24” monitor but I probably would need at least one cheat mode on my 16”
|
||||
laptop (I don’t need both enabled). I don’t think I need either for
|
||||
997.</p>
|
||||
<p>The beauty though is the game can be winnable by anyone since you can
|
||||
define the max size to win. Games are meant to be fun: who enjoys games
|
||||
that can never be won? Very few probably do and those who do enjoy them
|
||||
it probably are games that are relaxing and stimulating (which
|
||||
admittedly this game can be - but still I want it to be winnable
|
||||
too).</p>
|
||||
<p>Another reason I chose 997: it’s prime and the judges love prime
|
||||
numbers. Actually, this is the main reason for the number: I had changed
|
||||
it down to 1000 but then it occurred to me that there are prime numbers
|
||||
close to 1000 so why not choose one instead (that was less than 1000)?
|
||||
And so I did. Another fun fact: at the default starting size and growth
|
||||
size of 5 the number of bugs needed before the game is won is 199 - also
|
||||
a prime!</p>
|
||||
<h1 id="gameplay-quitting"><a name="quitting" href="#toc">Gameplay:
|
||||
Quitting</a></h1>
|
||||
<p>If you wish to quit you can hit ‘q’ (case-insensitive). For
|
||||
example:</p>
|
||||
<pre><code>X:24/49 Y:8/16 S:5/658 B:0</code></pre>
|
||||
<h1 id="gameplay-modes">4. <a name="modes" href="#toc">Gameplay
|
||||
modes</a></h1>
|
||||
<p>Here I list a number of different modes of play. In the <a
|
||||
href="bugs.html">bugs.html</a> (<a href="bugs.md">bugs.md</a> on GitHub)
|
||||
file I even show how there’s a built-in test unit for some modes! There
|
||||
are certainly other modes that could be imagined: the modes below
|
||||
happened over time and some were simply an accidental discovery or
|
||||
something I thought of by a chance; others were thought out from the
|
||||
beginning but were improved over time.</p>
|
||||
<p>The <a href="play.sh">play.sh</a> script sets up some of these
|
||||
automatically; I describe it after the modes below.</p>
|
||||
<h2
|
||||
id="photosensitive-epilepsystimulation-overload-trigger-warnings"><a name="warning" href="#toc">Photosensitive
|
||||
epilepsy/Stimulation overload trigger warnings</a></h2>
|
||||
<p>If you have <strong>photosensitive epilepsy please be
|
||||
careful</strong> especially with low values for both
|
||||
<strong><code>WAIT</code></strong> and
|
||||
<strong><code>EVADE</code></strong>. It appears that the <a
|
||||
href="https://www.epilepsysociety.org.uk/photosensitive-epilepsy#.Xjgpwi2ZOgQ">number
|
||||
of hertz (flashes) per second triggering seizures</a> is wide but
|
||||
depending on the variables it easily can be in the range.</p>
|
||||
<p>There are different patterns and lights flashing at different speeds
|
||||
so please exercise caution. This could trigger seizures and <strong>it
|
||||
might also be too much stimulation for some people.</strong></p>
|
||||
<p><strong>Please be careful of these if these types of things have ever
|
||||
affected you or if you have any form of epilepsy. Thank
|
||||
you.</strong></p>
|
||||
<h2
|
||||
id="gameplay-mode-drawing-practice-mode"><a name="drawing" href="#toc">Gameplay
|
||||
mode: Drawing / Practice mode</a></h2>
|
||||
<p>If you want to draw the snake wherever you like on the screen you can
|
||||
do this by modifying the wait time (for input) to -1 (or any value <
|
||||
0): then the snake does not move until you press a movement key. For
|
||||
example:</p>
|
||||
<div class="sourceCode" id="cb16"><pre
|
||||
class="sourceCode sh"><code class="sourceCode bash"><span id="cb16-1"><a href="#cb16-1" aria-hidden="true" tabindex="-1"></a><span class="va">WAIT</span><span class="op">=</span>-1 <span class="ex">./prog</span></span></code></pre></div>
|
||||
<p>When you eat a bug the snake will grow and you can draw more. If you
|
||||
want to make it so you can go through yourself:</p>
|
||||
<div class="sourceCode" id="cb17"><pre
|
||||
class="sourceCode sh"><code class="sourceCode bash"><span id="cb17-1"><a href="#cb17-1" aria-hidden="true" tabindex="-1"></a><span class="va">WAIT</span><span class="op">=</span>-1 <span class="va">CANNIBAL</span><span class="op">=</span>1 <span class="ex">./prog</span></span></code></pre></div>
|
||||
<p>If you don’t want to start out so small (i.e. you want to be able to
|
||||
draw more quickly) you can just set the size to a bigger number (and you
|
||||
could do the same with growth and moult/shed):</p>
|
||||
<div class="sourceCode" id="cb18"><pre
|
||||
class="sourceCode sh"><code class="sourceCode bash"><span id="cb18-1"><a href="#cb18-1" aria-hidden="true" tabindex="-1"></a><span class="va">SIZE</span><span class="op">=</span>50 <span class="va">CANNIBAL</span><span class="op">=</span>1 <span class="va">WAIT</span><span class="op">=</span>-1 <span class="ex">./prog</span></span></code></pre></div>
|
||||
<p>Do note that although you’re a bigger size you still grow one
|
||||
movement at a time.</p>
|
||||
<p>Okay but then if you get too many bugs the drawing will be over. If
|
||||
this proves to be a problem simply do:</p>
|
||||
<div class="sourceCode" id="cb19"><pre
|
||||
class="sourceCode sh"><code class="sourceCode bash"><span id="cb19-1"><a href="#cb19-1" aria-hidden="true" tabindex="-1"></a><span class="va">SIZE</span><span class="op">=</span>100 <span class="va">CANNIBAL</span><span class="op">=</span>1 <span class="va">WAIT</span><span class="op">=</span>-1 <span class="va">GROW</span><span class="op">=</span>0 <span class="ex">./prog</span></span></code></pre></div>
|
||||
<p>Or something like that (maybe make the size bigger but that’s up to
|
||||
you). You could also set the max size to be the highest possible by
|
||||
saying</p>
|
||||
<div class="sourceCode" id="cb20"><pre
|
||||
class="sourceCode sh"><code class="sourceCode bash"><span id="cb20-1"><a href="#cb20-1" aria-hidden="true" tabindex="-1"></a><span class="va">MAXSIZE</span><span class="op">=</span>-1</span></code></pre></div>
|
||||
<p>Which I’ve done in the <a href="play.sh">play.sh</a> script.</p>
|
||||
<p>I discuss how this mode works in [spoilers.markdown][].</p>
|
||||
<p>Here’s an example run where I spelt ‘SNAKE’. As you can see it’s far
|
||||
from perfect: the snake after all does not leave gaps and the game does
|
||||
not support diagonal movement and I also made a mistake and had to
|
||||
modify what I was aiming for. But you can consider this mode drawing or
|
||||
practice mode.</p>
|
||||
<pre><code> oooooooooo ooooo o oo ooooo
|
||||
o o oo o oo o ooo o
|
||||
oooo o oo ooooooo oooo ooooo
|
||||
o o ooo oo o ooo o
|
||||
oooo o oo ooo oooooooo> </code></pre>
|
||||
<h2
|
||||
id="gameplay-mode-computer-playing-automatic-mode-photosensitive-epilepsystimulation-overload-trigger"><a name="auto" href="#toc">Gameplay
|
||||
mode: Computer playing / Automatic mode (Photosensitive
|
||||
epilepsy/Stimulation overload trigger)</a></h2>
|
||||
<p><strong>Photosensitive epilepsy/stimulation overload trigger
|
||||
warning:</strong> For those who have epilepsy or are susceptible to
|
||||
stimulation overload from flashing lights please do be careful with this
|
||||
mode. Depending on your susceptibility this could very well trigger
|
||||
seizures or other discomforts and I wouldn’t want that to happen to
|
||||
anyone. This mode has a lot of flashing of different colours and
|
||||
depending on the exact parameters you specify it could easily be in the
|
||||
trigger range for epilepsy but potentially stimulation overload too.</p>
|
||||
<p>If you’re still here you can create this effect like:</p>
|
||||
<div class="sourceCode" id="cb22"><pre
|
||||
class="sourceCode sh"><code class="sourceCode bash"><span id="cb22-1"><a href="#cb22-1" aria-hidden="true" tabindex="-1"></a><span class="va">WAIT</span><span class="op">=</span>0 <span class="va">WALLS</span><span class="op">=</span>1 <span class="va">CANNIBAL</span><span class="op">=</span>1 <span class="ex">./prog</span></span></code></pre></div>
|
||||
<p>As long as the bug evades you’ll find that the snake is growing
|
||||
because it’s actually eating bugs; the computer is actually playing the
|
||||
game by itself! You can still move the snake though it won’t seem like
|
||||
you have much control over it. If you pause the game you can see that
|
||||
it’s bigger (you probably will be able to even without pausing it).</p>
|
||||
<p>Basically the snake is moving so fast that because the bug evades the
|
||||
bug will inevitably move in the snake path’s and therefore be eaten.</p>
|
||||
<p>You might find it goes quicker if you set the evade count to a lower
|
||||
value for example 1. Or you might not. But as long as the bug moves the
|
||||
computer can play by itself.</p>
|
||||
<p>Quick tests suggest that bigger dimensions it gets bigger quicker.
|
||||
But it also seems to take longer for it to get a bug as it gets longer.
|
||||
I believe these happen because the bug has to find a X and Y coordinate
|
||||
that’s not occupied and so with fewer available it has a harder time
|
||||
finding a place in that one line.</p>
|
||||
<h3
|
||||
id="computer-player-variations"><a name="auto-variations" href="#toc">Computer
|
||||
player variations</a></h3>
|
||||
<p>Here’s how to make the bug move every time the snake moves:</p>
|
||||
<div class="sourceCode" id="cb23"><pre
|
||||
class="sourceCode sh"><code class="sourceCode bash"><span id="cb23-1"><a href="#cb23-1" aria-hidden="true" tabindex="-1"></a><span class="va">CANNIBAL</span><span class="op">=</span>1 <span class="va">WALLS</span><span class="op">=</span>1 <span class="va">WAIT</span><span class="op">=</span>0 <span class="va">EVADE</span><span class="op">=</span>1 <span class="ex">./prog</span></span></code></pre></div>
|
||||
<h4 id="help-the-computer-win-fairly-quickly">Help the computer win
|
||||
fairly quickly</h4>
|
||||
<p>If you want to see the game ‘win’ try something like:</p>
|
||||
<div class="sourceCode" id="cb24"><pre
|
||||
class="sourceCode sh"><code class="sourceCode bash"><span id="cb24-1"><a href="#cb24-1" aria-hidden="true" tabindex="-1"></a><span class="va">CANNIBAL</span><span class="op">=</span>1 <span class="va">WALLS</span><span class="op">=</span>1 <span class="va">WAIT</span><span class="op">=</span>0 <span class="va">EVADE</span><span class="op">=</span>1 <span class="va">MAXSIZE</span><span class="op">=</span>10 <span class="ex">./prog</span></span></code></pre></div>
|
||||
<h4 id="negative-growth-shrink-automatic-mode">Negative growth (Shrink)
|
||||
Automatic mode</h4>
|
||||
<p>Here’s a fun one I just thought of (a long time after these other
|
||||
modes were thought of):</p>
|
||||
<div class="sourceCode" id="cb25"><pre
|
||||
class="sourceCode sh"><code class="sourceCode bash"><span id="cb25-1"><a href="#cb25-1" aria-hidden="true" tabindex="-1"></a><span class="va">WAIT</span><span class="op">=</span>0 <span class="va">EVADE</span><span class="op">=</span>1 <span class="va">GROW</span><span class="op">=</span>-1 <span class="va">SIZE</span><span class="op">=</span>9 <span class="va">MAXSIZE</span><span class="op">=</span>10 <span class="va">CANNIBAL</span><span class="op">=</span>1 <span class="ex">./prog</span></span></code></pre></div>
|
||||
<p>What you’ll see is that first the snake will get to the size of 9 -
|
||||
whether it shows to be 10 characters depends on whether or not it gets a
|
||||
bug before it can get to that length - and then it’ll start shrinking
|
||||
until it’s just the head then the head again (i.e. 1 then 0 in size) and
|
||||
then win! This is also in the <a href="play.sh">play.sh</a> script.</p>
|
||||
<h4 id="adjusting-the-timespeed">Adjusting the time/speed</h4>
|
||||
<p>Of course you can also do something like:</p>
|
||||
<div class="sourceCode" id="cb26"><pre
|
||||
class="sourceCode sh"><code class="sourceCode bash"><span id="cb26-1"><a href="#cb26-1" aria-hidden="true" tabindex="-1"></a><span class="va">WAIT</span><span class="op">=</span>5 <span class="va">WALLS</span><span class="op">=</span>1 <span class="va">CANNIBAL</span><span class="op">=</span>1 <span class="ex">./prog</span></span></code></pre></div>
|
||||
<p>Which although might not seem like it is significantly slower.</p>
|
||||
<h4 id="moving-the-snake-about-to-create-patterns">Moving the snake
|
||||
about to create patterns</h4>
|
||||
<p>If you press different direction keys in some pattern you will see a
|
||||
pattern form too (entirely dependent on how fast you react, what keys
|
||||
you press and I suppose also how much the bug moves and the chance of
|
||||
being eaten also).</p>
|
||||
<h4 id="other-ideas">Other ideas</h4>
|
||||
<p>Here’s an idea: how many moves is needed to make it possible to have
|
||||
some sort of success in catching bugs? Obviously the dimensions will
|
||||
affect this value.</p>
|
||||
<p>How long will it take for the snake to run into itself? For instance
|
||||
by doing:</p>
|
||||
<div class="sourceCode" id="cb27"><pre
|
||||
class="sourceCode sh"><code class="sourceCode bash"><span id="cb27-1"><a href="#cb27-1" aria-hidden="true" tabindex="-1"></a><span class="va">WAIT</span><span class="op">=</span>0 <span class="ex">./prog</span></span></code></pre></div>
|
||||
<p>On my 13” MacBook Pro (replaced later by a 16”) at the default
|
||||
settings going horizontally the snake ran into itself at:</p>
|
||||
<pre><code>OW!
|
||||
X:57/156 Y:20/41 S:155/997 B:30</code></pre>
|
||||
<p>What if you set the size to a high value? The lowest? There are bound
|
||||
to be other games to play with this feature!</p>
|
||||
<h2
|
||||
id="gameplay-mode-grow-shrink-mode-positive-and-negative-winning"><a name="grow-shrink" href="#toc">Gameplay
|
||||
mode: Grow-Shrink mode (Positive and Negative Winning)</a></h2>
|
||||
<p>In this mode you’re simultaneously growing and shrinking but because
|
||||
the max size is unsigned you can win both by shrinking to the point of
|
||||
losing your body or growing to the full size directly. This is how it
|
||||
works:</p>
|
||||
<p>You have a negative shedding growth and a positive growth size:
|
||||
negative and positive winning. Depending on the parameters specified it
|
||||
might go one way over the other. Try:</p>
|
||||
<div class="sourceCode" id="cb29"><pre
|
||||
class="sourceCode sh"><code class="sourceCode bash"><span id="cb29-1"><a href="#cb29-1" aria-hidden="true" tabindex="-1"></a><span class="va">SIZE</span><span class="op">=</span>150 <span class="va">SHEDS</span><span class="op">=</span>-5 <span class="va">GROW</span><span class="op">=</span>10 <span class="va">SHED</span><span class="op">=</span>50 <span class="va">MAXSIZE</span><span class="op">=</span>250 <span class="ex">./prog</span></span></code></pre></div>
|
||||
<p>What this does is set the size to 150 (to make it not go down so
|
||||
quickly) and then for each bug you eat it adds 5 to the size; for every
|
||||
50 moves (that you don’t get the bug) you shrink by 5. You will find
|
||||
that at times you might only decrease in size but then at other times -
|
||||
depending on size of screen and how lucky you are with where the bug is
|
||||
relative to where it last was - you might be growing. Combining this
|
||||
with the drawing mode could be interesting but I never actually tried
|
||||
it.</p>
|
||||
<p>The parameters above were chosen after playing with the mode a bit to
|
||||
find a value that wouldn’t take that much time but still would pose a
|
||||
challenge. One could reverse it so that one shrinks more than
|
||||
growing.</p>
|
||||
<p>The <a href="crazy.log.html">crazy.log.html</a> (<a
|
||||
href="crazy.log.md">crazy.log.md</a> on GitHub) file has several screen
|
||||
dumps with this idea.</p>
|
||||
<p>You could also have it so that eating a bug makes you shrink and
|
||||
moving so many moves you grow. I tried this and for me it was far more
|
||||
fun. The <a href="play.sh">play.sh</a> also has this mode:</p>
|
||||
<div class="sourceCode" id="cb30"><pre
|
||||
class="sourceCode sh"><code class="sourceCode bash"><span id="cb30-1"><a href="#cb30-1" aria-hidden="true" tabindex="-1"></a><span class="va">SIZE</span><span class="op">=</span>100 <span class="va">SHEDS</span><span class="op">=</span>5 <span class="va">GROW</span><span class="op">=</span>-10 <span class="va">SHED</span><span class="op">=</span>50 <span class="va">MAXSIZE</span><span class="op">=</span>250 <span class="ex">./prog</span></span></code></pre></div>
|
||||
<p>Obviously there are many other variations. The <a
|
||||
href="play.sh">play.sh</a> script has some of them (the above is option
|
||||
5; others are 4, 15 and 16 but only options 4 and 5 are called Grow /
|
||||
Shrink).</p>
|
||||
<h2
|
||||
id="hypnotic-sleepy-mode-photosensitive-epilepsystimulation-overload-trigger"><a name="hypnotic" href="#toc">Hypnotic
|
||||
/ Sleepy mode (<strong>Photosensitive epilepsy/Stimulation overload
|
||||
trigger</strong>)</a></h2>
|
||||
<p><strong>Photosensitive epilepsy/stimulation overload trigger
|
||||
warning:</strong> For those who have epilepsy or are susceptible to
|
||||
stimulation overload from flashing lights and patterns please do be
|
||||
careful with this mode. Depending on your susceptibility this could very
|
||||
well trigger seizures or other discomforts and I wouldn’t want that to
|
||||
happen to anyone. The default wait time is 231ms, the typical range of
|
||||
seizures is 3 to 30 flashes per seconds (but can be higher) and that
|
||||
means that at <strong>EVADE=1</strong> every 231ms there will be a flash
|
||||
in addition to the snake moving too.</p>
|
||||
<p>Anyway this might sound absurd but it can be somewhat hypnotic by
|
||||
doing:</p>
|
||||
<div class="sourceCode" id="cb31"><pre
|
||||
class="sourceCode sh"><code class="sourceCode bash"><span id="cb31-1"><a href="#cb31-1" aria-hidden="true" tabindex="-1"></a><span class="va">EVADE</span><span class="op">=</span>1 <span class="va">CANNIBAL</span><span class="op">=</span>1 <span class="ex">./prog</span></span></code></pre></div>
|
||||
<p>And just moving the snake about not trying to catch any bugs - just
|
||||
let whatever happens happen.</p>
|
||||
<h2
|
||||
id="gameplay-mode-stimulation-calming-mode"><a name="stim" href="#toc">Gameplay
|
||||
mode: Stimulation / Calming mode</a></h2>
|
||||
<p>If you just need something to stimulate your mind to keep you calm or
|
||||
simply you want to play a game without having to worry about winning or
|
||||
losing you can set the growth size to 0 and then just move the snake
|
||||
round and round eating bugs until you want to quit. You can enable
|
||||
cannibalism so that you don’t have to worry about even running into
|
||||
yourself and losing:</p>
|
||||
<div class="sourceCode" id="cb32"><pre
|
||||
class="sourceCode sh"><code class="sourceCode bash"><span id="cb32-1"><a href="#cb32-1" aria-hidden="true" tabindex="-1"></a><span class="va">GROW</span><span class="op">=</span>0 <span class="va">CANNIBAL</span><span class="op">=</span>1 <span class="ex">./prog</span></span></code></pre></div>
|
||||
<h2
|
||||
id="gameplay-mode-expansibility"><a name="expansibility" href="#toc">Gameplay
|
||||
mode: Expansibility</a></h2>
|
||||
<p>As I was writing this document and the game modes I have thought of
|
||||
other game modes (they were added) and I have come back to this document
|
||||
to add more modes. That’s the beauty of the variables I have
|
||||
implemented: together with the imagination and even just chance
|
||||
different modes of play can be devised. The drawing mode was a happy
|
||||
chance of how the <code>timeout()</code> function works for example.</p>
|
||||
<p>As a person who was heavily involved in MUD development and design I
|
||||
know very well how games need to be fun and have different options, not
|
||||
be too easy but not be too hard either. And a game developer who does
|
||||
not play their games is a game developer who is detached from their
|
||||
player base and the wants and needs are therefore disregarded if even
|
||||
heard. I have played this game a lot for this reason as well as I simply
|
||||
enjoy it and thinking up new modes.</p>
|
||||
<h1 id="scripts">5. <a name="scripts" href="#toc">Scripts</a></h1>
|
||||
<p>The following scripts are provided to simplify and automate some of
|
||||
the things this file discusses as well as allowing to easily change the
|
||||
colours.</p>
|
||||
<h2
|
||||
id="colours-selection-snake-colours"><a name="colours" href="#toc">Colours
|
||||
selection: snake-colours</a></h2>
|
||||
<p>To do this use the <a href="snake-colours">snake-colours</a> script
|
||||
like so:</p>
|
||||
<div class="sourceCode" id="cb33"><pre
|
||||
class="sourceCode sh"><code class="sourceCode bash"><span id="cb33-1"><a href="#cb33-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./snake-colours</span></span></code></pre></div>
|
||||
<p>If you want to pass in specific variables you can do that too
|
||||
e.g.:</p>
|
||||
<div class="sourceCode" id="cb34"><pre
|
||||
class="sourceCode sh"><code class="sourceCode bash"><span id="cb34-1"><a href="#cb34-1" aria-hidden="true" tabindex="-1"></a><span class="va">CANNIBAL</span><span class="op">=</span>1 <span class="ex">./snake-colours</span></span></code></pre></div>
|
||||
<p>The script will prompt you for the colour of the walls, snake head,
|
||||
body and the bug.</p>
|
||||
<h2
|
||||
id="automate-the-above-gameplay-modes"><a name="preset" href="#toc">Automate
|
||||
the above gameplay modes</a></h2>
|
||||
<p>The <a href="play.sh">play.sh</a> script has the gameplay modes
|
||||
described in this file and is menu based (there might be differences and
|
||||
some of the modes I include a variation). The script tests the terminal
|
||||
(allowing you to continue even if problems are detected), prompts you if
|
||||
you want to select colours (like those in snake-colours above) and then
|
||||
gives you a list of game modes to play. You can pass in the game
|
||||
variables but note that if you pass in a variable that the mode you
|
||||
choose uses then the script will override what you pass in.</p>
|
||||
<p>To use you can do something like:</p>
|
||||
<div class="sourceCode" id="cb35"><pre
|
||||
class="sourceCode sh"><code class="sourceCode bash"><span id="cb35-1"><a href="#cb35-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./play.sh</span></span></code></pre></div>
|
||||
<p>Or to make it so walls are an obstacle:</p>
|
||||
<div class="sourceCode" id="cb36"><pre
|
||||
class="sourceCode sh"><code class="sourceCode bash"><span id="cb36-1"><a href="#cb36-1" aria-hidden="true" tabindex="-1"></a><span class="va">WALLS</span><span class="op">=</span>0 <span class="ex">./play.sh</span></span></code></pre></div>
|
||||
<h1 id="notes-about-some-of-the-game-variables">6.
|
||||
<a name="variables" href="#toc">Notes about some of the game
|
||||
variables</a></h1>
|
||||
<p>The game variables can be used for a variety of things including
|
||||
different gameplay modes (as shown above) but here are some general
|
||||
notes about a few of them.</p>
|
||||
<h2 id="wait-snake-speed"><a name="wait" href="#toc">WAIT: Snake
|
||||
speed</a></h2>
|
||||
<p>Besides the different game modes, if you find it too fast/slow you
|
||||
can change it to a value that’s better for you. Remember it’s a wait
|
||||
time so if you want the snake to move slower you have to increase the
|
||||
wait time!</p>
|
||||
<h2 id="evade-bug-evasion-frequency"><a name="evade" href="#toc">EVADE:
|
||||
Bug evasion frequency</a></h2>
|
||||
<p>For every <strong><code>EVADE</code></strong> snake movements the bug
|
||||
will try and find a new place to occupy. It might be very close to it
|
||||
and I do not ensure it’s a new place at all.</p>
|
||||
<p>Each time the bug is placed the counter will be reset whether from
|
||||
eating the bug or not reaching it in time. Default 300 moves.</p>
|
||||
<p>This can help you get out of a trap but it can also sometimes make it
|
||||
harder.</p>
|
||||
<h2
|
||||
id="size-maxsize-initial-max-snake-sizes"><a name="sizes" href="#toc">SIZE
|
||||
/ MAXSIZE: Initial / Max snake sizes</a></h2>
|
||||
<p>997 might be a bit high for many people. Or maybe you don’t have
|
||||
enough time. Or you’re not in the mood to lose. Or you want to get close
|
||||
to a size you were last time but quickly. It might be in conjunction
|
||||
with drawing mode.</p>
|
||||
<p>Note on snake size: there’s a stated size (in the score line) which
|
||||
is what the snake will ‘populate’ in the snake arrays and the visible
|
||||
size: as I have discussed here and there the snake doesn’t grow
|
||||
immediately so it takes time before the snake is visibly that many
|
||||
characters. In other words just because it says SIZE 29 doesn’t mean it
|
||||
will instantly be 29 characters on the screen.</p>
|
||||
<h2
|
||||
id="grow-sheds-growth-shedding-sizes"><a name="growth" href="#toc">GROW
|
||||
/ SHEDS : Growth / Shedding sizes</a></h2>
|
||||
<p>Similar to the initial size. Notice that the above point on size
|
||||
applies here: it will take the number of movements before it is ‘its
|
||||
full size’.</p>
|
||||
<h1 id="conclusion-and-inspirational-words-for-everyone">7.
|
||||
<a name="conclusions" href="#toc">Conclusion (and inspirational words
|
||||
for everyone)</a></h1>
|
||||
<p>I believe that this file has given more than enough information for
|
||||
anyone to get an idea of what is possible with my implementation of
|
||||
Snake. I realise also that most people won’t have read this far and
|
||||
that’s quite all right; I’m very thorough and pay attention to details
|
||||
obsessively. Creating this game was a delight and I am quite proud of
|
||||
what I have done.</p>
|
||||
<p>Thank you for whatever level of attention you felt you could or
|
||||
wanted to give and enjoy it in whatever way you see fit!</p>
|
||||
<p><strong>Much more importantly is that Snake aside I hope I have
|
||||
demonstrated how with the imagination and creativity almost anything is
|
||||
possible.</strong> This is something <strong>that applies in our world
|
||||
in every way and <em>everyone</em> can do something amazing if they
|
||||
believe in themselves!</strong> I would have never thought this the case
|
||||
for me years ago but I know it’s true now. <strong>Believe in yourself.
|
||||
Always.</strong></p>
|
||||
<table>
|
||||
<colgroup>
|
||||
<col style="width: 100%" />
|
||||
</colgroup>
|
||||
<tbody>
|
||||
<tr class="odd">
|
||||
<td>(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].</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td>[judges]: https://www.ioccc.org/judges.html [cc]:
|
||||
http://creativecommons.org/licenses/by-sa/3.0/</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<!-- END: this line ends content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
|
||||
<!-- START: this line starts content from: inc/after-content.default.html -->
|
||||
|
||||
<!-- END: this line ends content from: inc/after-content.default.html -->
|
||||
<!-- START: this line starts content from: inc/end-rightcolumn.default.html -->
|
||||
|
||||
</div>
|
||||
|
||||
<!-- END: this line ends content from: inc/end-rightcolumn.default.html -->
|
||||
<!-- START: this line starts content from: inc/end-row.default.html -->
|
||||
|
||||
</div>
|
||||
|
||||
<!-- END: this line ends content from: inc/end-row.default.html -->
|
||||
<!-- START: this line starts content from: inc/footer.default.html -->
|
||||
|
||||
<div class="footer">
|
||||
<hr>
|
||||
<h2>Coda</h2>
|
||||
<p><a href="https://validator.w3.org/nu/?doc=#">Nu HTML check this web page</a></p>
|
||||
<p><a href="#top">Jump to top</a> <a href="#content">Jump to Content</a> <a href="#inventory">Jump to Inventory</a></p>
|
||||
</div>
|
||||
|
||||
<!-- END: this line ends content from: inc/footer.default.html -->
|
||||
<!-- START: this line starts content from: inc/bottom.default.html -->
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
<!-- END: this line ends content from: inc/bottom.default.html -->
|
||||
Reference in new issue
Block a user