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
@@ -9,14 +9,6 @@
|
||||
{ "author_handle" : "Anthony_C_Howe" }
|
||||
],
|
||||
"manifest" : [
|
||||
{
|
||||
"file_path" : "index.html",
|
||||
"inventory_order" : 10,
|
||||
"OK_to_edit" : false,
|
||||
"display_as" : "html",
|
||||
"display_via_github" : false,
|
||||
"entry_text" : "entry home page"
|
||||
},
|
||||
{
|
||||
"file_path" : "ant.c",
|
||||
"inventory_order" : 20,
|
||||
@@ -81,6 +73,14 @@
|
||||
"display_via_github" : false,
|
||||
"entry_text" : "download entry source"
|
||||
},
|
||||
{
|
||||
"file_path" : "index.html",
|
||||
"inventory_order" : 2000000000,
|
||||
"OK_to_edit" : false,
|
||||
"display_as" : "html",
|
||||
"display_via_github" : false,
|
||||
"entry_text" : "entry home page"
|
||||
},
|
||||
{
|
||||
"file_path" : ".entry.json",
|
||||
"inventory_order" : 4294967295,
|
||||
|
||||
+2
-1
@@ -172,9 +172,9 @@ https://creativecommons.org/licenses/by-sa/4.0/</p>
|
||||
|
||||
<h1 id="inventory-for-1993ant"><a name="inventory"></a>Inventory for
|
||||
1993/ant</h1>
|
||||
<p><a href="#top">Jump to top</a></p>
|
||||
<h2 id="primary-files">Primary files</h2>
|
||||
<ul>
|
||||
<li><a href="index.html">index.html</a> - entry home page</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1993/ant/ant.c">ant.c</a>
|
||||
- entry source</li>
|
||||
@@ -201,6 +201,7 @@ source</li>
|
||||
</ul>
|
||||
<h2 id="secondary-files">Secondary files</h2>
|
||||
<ul>
|
||||
<li><a href="index.html">index.html</a> - entry home page</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1993/ant/.entry.json">.entry.json</a>
|
||||
- description of entry in JSON</li>
|
||||
|
||||
@@ -9,14 +9,6 @@
|
||||
{ "author_handle" : "Christopher_Mills" }
|
||||
],
|
||||
"manifest" : [
|
||||
{
|
||||
"file_path" : "index.html",
|
||||
"inventory_order" : 10,
|
||||
"OK_to_edit" : false,
|
||||
"display_as" : "html",
|
||||
"display_via_github" : false,
|
||||
"entry_text" : "entry home page"
|
||||
},
|
||||
{
|
||||
"file_path" : "cmills.c",
|
||||
"inventory_order" : 20,
|
||||
@@ -57,6 +49,14 @@
|
||||
"display_via_github" : false,
|
||||
"entry_text" : "download entry source"
|
||||
},
|
||||
{
|
||||
"file_path" : "index.html",
|
||||
"inventory_order" : 2000000000,
|
||||
"OK_to_edit" : false,
|
||||
"display_as" : "html",
|
||||
"display_via_github" : false,
|
||||
"entry_text" : "entry home page"
|
||||
},
|
||||
{
|
||||
"file_path" : ".entry.json",
|
||||
"inventory_order" : 4294967295,
|
||||
|
||||
@@ -207,9 +207,9 @@ https://creativecommons.org/licenses/by-sa/4.0/</p>
|
||||
|
||||
<h1 id="inventory-for-1993cmills"><a name="inventory"></a>Inventory for
|
||||
1993/cmills</h1>
|
||||
<p><a href="#top">Jump to top</a></p>
|
||||
<h2 id="primary-files">Primary files</h2>
|
||||
<ul>
|
||||
<li><a href="index.html">index.html</a> - entry home page</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1993/cmills/cmills.c">cmills.c</a>
|
||||
- entry source</li>
|
||||
@@ -227,6 +227,7 @@ entry source</li>
|
||||
</ul>
|
||||
<h2 id="secondary-files">Secondary files</h2>
|
||||
<ul>
|
||||
<li><a href="index.html">index.html</a> - entry home page</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1993/cmills/.entry.json">.entry.json</a>
|
||||
- description of entry in JSON</li>
|
||||
|
||||
@@ -9,14 +9,6 @@
|
||||
{ "author_handle" : "David_Gibson" }
|
||||
],
|
||||
"manifest" : [
|
||||
{
|
||||
"file_path" : "index.html",
|
||||
"inventory_order" : 10,
|
||||
"OK_to_edit" : false,
|
||||
"display_as" : "html",
|
||||
"display_via_github" : false,
|
||||
"entry_text" : "entry home page"
|
||||
},
|
||||
{
|
||||
"file_path" : "dgibson.c",
|
||||
"inventory_order" : 20,
|
||||
@@ -105,6 +97,14 @@
|
||||
"display_via_github" : false,
|
||||
"entry_text" : "download entry source"
|
||||
},
|
||||
{
|
||||
"file_path" : "index.html",
|
||||
"inventory_order" : 2000000000,
|
||||
"OK_to_edit" : false,
|
||||
"display_as" : "html",
|
||||
"display_via_github" : false,
|
||||
"entry_text" : "entry home page"
|
||||
},
|
||||
{
|
||||
"file_path" : ".entry.json",
|
||||
"inventory_order" : 4294967295,
|
||||
|
||||
@@ -192,9 +192,9 @@ https://creativecommons.org/licenses/by-sa/4.0/</p>
|
||||
|
||||
<h1 id="inventory-for-1993dgibson"><a name="inventory"></a>Inventory for
|
||||
1993/dgibson</h1>
|
||||
<p><a href="#top">Jump to top</a></p>
|
||||
<h2 id="primary-files">Primary files</h2>
|
||||
<ul>
|
||||
<li><a href="index.html">index.html</a> - entry home page</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1993/dgibson/dgibson.c">dgibson.c</a>
|
||||
- entry source</li>
|
||||
@@ -230,6 +230,7 @@ entry source</li>
|
||||
</ul>
|
||||
<h2 id="secondary-files">Secondary files</h2>
|
||||
<ul>
|
||||
<li><a href="index.html">index.html</a> - entry home page</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1993/dgibson/.entry.json">.entry.json</a>
|
||||
- description of entry in JSON</li>
|
||||
|
||||
@@ -9,14 +9,6 @@
|
||||
{ "author_handle" : "E_Jay_Berkenbilt" }
|
||||
],
|
||||
"manifest" : [
|
||||
{
|
||||
"file_path" : "index.html",
|
||||
"inventory_order" : 10,
|
||||
"OK_to_edit" : false,
|
||||
"display_as" : "html",
|
||||
"display_via_github" : false,
|
||||
"entry_text" : "entry home page"
|
||||
},
|
||||
{
|
||||
"file_path" : "ejb.c",
|
||||
"inventory_order" : 20,
|
||||
@@ -73,6 +65,14 @@
|
||||
"display_via_github" : false,
|
||||
"entry_text" : "download entry source"
|
||||
},
|
||||
{
|
||||
"file_path" : "index.html",
|
||||
"inventory_order" : 2000000000,
|
||||
"OK_to_edit" : false,
|
||||
"display_as" : "html",
|
||||
"display_via_github" : false,
|
||||
"entry_text" : "entry home page"
|
||||
},
|
||||
{
|
||||
"file_path" : ".entry.json",
|
||||
"inventory_order" : 4294967295,
|
||||
|
||||
@@ -0,0 +1,151 @@
|
||||
<!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="hanoi.md for 1993/ejb">
|
||||
<meta name="keywords" content="IOCCC, 1993/ejb, hanoi.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>hanoi.md for 1993/ejb</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 -->
|
||||
|
||||
<h1 id="the-towers-of-hanoi-puzzle">The Towers of Hanoi puzzle</h1>
|
||||
<p>The Towers of Hanoi is a puzzle consisting of three posts and several
|
||||
rings of various sizes. The initial configuration of the game is that
|
||||
all the rings are stacked in decreasing order of size on one post. The
|
||||
object of the game is to move all the rings from one post to another
|
||||
subject to two rules: only one ring can be moved at a time, and at no
|
||||
time can one ring be placed on top of a smaller ring. The number of
|
||||
steps necessary to solve this puzzle is exponential in the number
|
||||
rings.</p>
|
||||
|
||||
<!-- 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 -->
|
||||
+2
-1
@@ -204,9 +204,9 @@ https://creativecommons.org/licenses/by-sa/4.0/</p>
|
||||
|
||||
<h1 id="inventory-for-1993ejb"><a name="inventory"></a>Inventory for
|
||||
1993/ejb</h1>
|
||||
<p><a href="#top">Jump to top</a></p>
|
||||
<h2 id="primary-files">Primary files</h2>
|
||||
<ul>
|
||||
<li><a href="index.html">index.html</a> - entry home page</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1993/ejb/ejb.c">ejb.c</a>
|
||||
- entry source</li>
|
||||
@@ -228,6 +228,7 @@ source</li>
|
||||
</ul>
|
||||
<h2 id="secondary-files">Secondary files</h2>
|
||||
<ul>
|
||||
<li><a href="index.html">index.html</a> - entry home page</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1993/ejb/.entry.json">.entry.json</a>
|
||||
- description of entry in JSON</li>
|
||||
|
||||
@@ -0,0 +1,269 @@
|
||||
<!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="patience.md for 1993/ejb">
|
||||
<meta name="keywords" content="IOCCC, 1993/ejb, patience.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>patience.md for 1993/ejb</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 -->
|
||||
|
||||
<h1 id="the-patience-puzzle">The Patience puzzle</h1>
|
||||
<p>The Patience puzzle, probably of Chinese origin, consists of an iron
|
||||
U-shaped piece and several rings that link around it. The physical shape
|
||||
of the puzzle is very difficult to describe verbally, but here is an
|
||||
attempt.</p>
|
||||
<p>This description of the puzzle is presented as a set of instructions
|
||||
for constructing the puzzle. Start with a flat piece of iron about 15
|
||||
centimeters long by about two centimeters wide. Drill six holes in the
|
||||
piece of iron. Through each hole, place a rod. The rod should have a
|
||||
diameter slightly less than that of the hole so that it can move freely.
|
||||
One end of the rod is like the head of a nail and is larger than the
|
||||
hole to prevent it from coming free. The other end is looped around a
|
||||
metal ring with a diameter of about five centimeters. This completely
|
||||
prevents the iron rod from separating from the base. Each rod, in
|
||||
addition to going through the iron base, goes through the ring at the
|
||||
end of the rod to its right. The only rod free of this restriction is
|
||||
the rightmost rod. What has been described so far is one of the two
|
||||
components of the puzzle.</p>
|
||||
<p>The other component is another iron rod shaped like a <code>U</code>.
|
||||
The <code>U</code> is as long from the tips to the base as the original
|
||||
piece of iron with the holes in it. The ends of the <code>U</code> are
|
||||
looped around another ring of about five centimeters in diameter. In the
|
||||
puzzle’s initial configuration, the <code>U</code> is placed through the
|
||||
rings so that it is held in place by the iron rods. Imagine starting
|
||||
with the <code>U</code> piece before the iron loop is placed at the end.
|
||||
Slide the legs of the <code>U</code> through the loops so that the iron
|
||||
rods securing the loops to the metal strip go up the center of the
|
||||
<code>U</code>. Placing the final ring at the ends of the <code>U</code>
|
||||
prevents it from coming out. The object of the puzzle is to free the
|
||||
<code>U</code>-shaped piece from the other piece.</p>
|
||||
<p>The following illustration (sideways) shows a three-ring case of this
|
||||
puzzle. If you look carefully, you can see that the first ring could be
|
||||
lifted over the edge of the <code>U</code> and slid down through the
|
||||
center of the <code>U</code>, thereby freeing the <code>U</code> from
|
||||
the first iron rod. The second ring can also be freed in the initial
|
||||
configuration since it is already over the rod for the first ring. The
|
||||
third ring cannot be moved, however, since it is blocked by the iron rod
|
||||
to which the first ring is attached. If the first first is removed, then
|
||||
the third ring is no longer blocked by the first ring’s iron rod and can
|
||||
be removed freely. The second ring, however cannot be moved if the first
|
||||
ring is gone because it will then be blocked by the first ring in its
|
||||
new position outside of the <code>U</code>.</p>
|
||||
<p>Here is an illustration of the three-ring case. The bottom of the
|
||||
puzzle is on the left-hand side of the page.</p>
|
||||
<pre><code>
|
||||
|
||||
|
||||
//==\\
|
||||
|| ||
|
||||
|| ||
|
||||
*****||** ||
|
||||
*** || ***||
|
||||
** || *||
|
||||
|\ ** || ||**
|
||||
| \ *** || || ***
|
||||
| \ *** | || ===
|
||||
| \ *** || // * \\
|
||||
| \ *** || || ** ||
|
||||
| | | ********** ||
|
||||
| | || || || ||
|
||||
| | || || || ||
|
||||
| | *****||** || \\ ||
|
||||
| | |\ | *** || ***|| ||
|
||||
|==| |=========-**-===-||-============//
|
||||
|==| |=========-**-===-||-===========//
|
||||
| | \| | *** || || ***
|
||||
| | *** || || ===
|
||||
| | ***| || // * \\
|
||||
| | *** || || ** ||
|
||||
| | ||********** ||
|
||||
| | || || || ||
|
||||
| | *****||** || \\ ||
|
||||
| | |\ | *** || ***|| ||
|
||||
|==| |=========-**-===-||-============//
|
||||
|==| |=========-**-===-||-===========//
|
||||
| | \| | *** || || ***
|
||||
| | *** || || ===
|
||||
| | ***| || // * \\
|
||||
| | *** || || ** ||
|
||||
| | ||********** ||
|
||||
| | || || || ||
|
||||
| | || || || ||
|
||||
| | | || || \\ ||
|
||||
| | |\ | || || ||
|
||||
|==| |================-||-============//
|
||||
|==| |================-||-===========//
|
||||
| | \| | || ||
|
||||
| | || ||
|
||||
| | || ||
|
||||
| | || ||
|
||||
\ | || ||
|
||||
\ | \\ ||
|
||||
\ | \\ ||
|
||||
\ | \\ ||
|
||||
\ | \\||
|
||||
\| \||</code></pre>
|
||||
<p>This puzzle takes other forms as well. One such puzzle is called
|
||||
“Spin-Out”. This puzzle consists of one plastic piece that encases
|
||||
another piece that can slide in and out of it. The movement of the
|
||||
smaller piece is restricted by discs that, when turned to one angle,
|
||||
lock the smaller piece inside the larger one and, when turned the other
|
||||
way, allow it to move. This puzzle is as difficult to describe as the
|
||||
first and, since I don’t have one in front of me, I will not attempt to
|
||||
describe it. The object of this puzzle is to free the smaller piece from
|
||||
the larger one. The other puzzle that is like this one consists of a
|
||||
cylinder with rods protruding from the top. The rods can be slid from
|
||||
the center to the edge of the cylinder constrained by a series of discs
|
||||
in the center. The discs have cuts in them that allow some rods to move
|
||||
and force others in one place based on the relative rotations of the
|
||||
discs. The object here is to move all the rods from the inside to the
|
||||
outside.</p>
|
||||
<p>What makes these puzzles similar is that the physical shapes of the
|
||||
puzzles put the same restrictions on the movement of the pieces.
|
||||
Specifically, there is always one piece that is free to move. The only
|
||||
other piece that is free to move is the second one that is still
|
||||
attached to the base it is trying to be freed from. In the case of the
|
||||
original puzzle, consider the rings numbered from 1 to 6 with ring 1
|
||||
being the one at the closed end of the <code>U</code>. Ring 1 can always
|
||||
be removed from or added to the <code>U</code>. In the initial state,
|
||||
when all rings are around the <code>U</code>, ring 2 is the other one
|
||||
that can be moved because it is second. If ring 1 is removed, then only
|
||||
two operations are possible: the restoration of ring 1 and the removal
|
||||
of ring 3. This is because ring 1 is always movable, and ring 3 is
|
||||
currently the second ring still attached to the <code>U</code>. This
|
||||
constraint leads to a recursive solution to the puzzle. Like the <a
|
||||
href="hanoi.md">Towers of Hanoi</a>, the number of steps to solve this
|
||||
puzzle is exponential in the number of rings.</p>
|
||||
|
||||
<!-- 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 -->
|
||||
+12
-15
@@ -184,25 +184,22 @@ Entries of 1993 - The 10th IOCCC</h1>
|
||||
<p><strong>Download IOCCC</strong> <a
|
||||
href="1993/ioccc.1993.tar.bz2">1993 entry source</a></p>
|
||||
<ul>
|
||||
<li><a href="1993/ant/index.html">1993/ant</a> - Best Utility</li>
|
||||
<li><a href="1993/cmills/index.html">1993/cmills</a> - Bill Gates
|
||||
Award</li>
|
||||
<li><a href="1993/dgibson/index.html">1993/dgibson</a> - Best Abuse of
|
||||
the C Preprocessor</li>
|
||||
<li><a href="1993/ejb/index.html">1993/ejb</a> - Best Obfuscated
|
||||
<li><a href="ant/index.html">1993/ant</a> - Best Utility</li>
|
||||
<li><a href="cmills/index.html">1993/cmills</a> - Bill Gates Award</li>
|
||||
<li><a href="dgibson/index.html">1993/dgibson</a> - Best Abuse of the C
|
||||
Preprocessor</li>
|
||||
<li><a href="ejb/index.html">1993/ejb</a> - Best Obfuscated
|
||||
Algorithm</li>
|
||||
<li><a href="1993/jonth/index.html">1993/jonth</a> - Most Obfuscated X
|
||||
<li><a href="jonth/index.html">1993/jonth</a> - Most Obfuscated X
|
||||
Program</li>
|
||||
<li><a href="1993/leo/index.html">1993/leo</a> - Best Game</li>
|
||||
<li><a href="1993/lmfjyh/index.html">1993/lmfjyh</a> - Most Versatile
|
||||
<li><a href="leo/index.html">1993/leo</a> - Best Game</li>
|
||||
<li><a href="lmfjyh/index.html">1993/lmfjyh</a> - Most Versatile
|
||||
Source</li>
|
||||
<li><a href="1993/plummer/index.html">1993/plummer</a> - Best One
|
||||
Liner</li>
|
||||
<li><a href="1993/rince/index.html">1993/rince</a> - Most Well
|
||||
Rounded</li>
|
||||
<li><a href="1993/schnitzi/index.html">1993/schnitzi</a> - Obfuscated
|
||||
<li><a href="plummer/index.html">1993/plummer</a> - Best One Liner</li>
|
||||
<li><a href="rince/index.html">1993/rince</a> - Most Well Rounded</li>
|
||||
<li><a href="schnitzi/index.html">1993/schnitzi</a> - Obfuscated
|
||||
Intelligence Award</li>
|
||||
<li><a href="1993/vanb/index.html">1993/vanb</a> - Most Irregular
|
||||
<li><a href="vanb/index.html">1993/vanb</a> - Most Irregular
|
||||
Expression</li>
|
||||
</ul>
|
||||
<p> <strong>Jump to:</strong> <a href="#">top</a></p>
|
||||
|
||||
@@ -9,14 +9,6 @@
|
||||
{ "author_handle" : "Jon_Thingvold" }
|
||||
],
|
||||
"manifest" : [
|
||||
{
|
||||
"file_path" : "index.html",
|
||||
"inventory_order" : 10,
|
||||
"OK_to_edit" : false,
|
||||
"display_as" : "html",
|
||||
"display_via_github" : false,
|
||||
"entry_text" : "entry home page"
|
||||
},
|
||||
{
|
||||
"file_path" : "jonth.c",
|
||||
"inventory_order" : 20,
|
||||
@@ -49,6 +41,14 @@
|
||||
"display_via_github" : false,
|
||||
"entry_text" : "download entry source"
|
||||
},
|
||||
{
|
||||
"file_path" : "index.html",
|
||||
"inventory_order" : 2000000000,
|
||||
"OK_to_edit" : false,
|
||||
"display_as" : "html",
|
||||
"display_via_github" : false,
|
||||
"entry_text" : "entry home page"
|
||||
},
|
||||
{
|
||||
"file_path" : ".entry.json",
|
||||
"inventory_order" : 4294967295,
|
||||
|
||||
@@ -165,9 +165,9 @@ https://creativecommons.org/licenses/by-sa/4.0/</p>
|
||||
|
||||
<h1 id="inventory-for-1993jonth"><a name="inventory"></a>Inventory for
|
||||
1993/jonth</h1>
|
||||
<p><a href="#top">Jump to top</a></p>
|
||||
<h2 id="primary-files">Primary files</h2>
|
||||
<ul>
|
||||
<li><a href="index.html">index.html</a> - entry home page</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1993/jonth/jonth.c">jonth.c</a>
|
||||
- entry source</li>
|
||||
@@ -182,6 +182,7 @@ source</li>
|
||||
</ul>
|
||||
<h2 id="secondary-files">Secondary files</h2>
|
||||
<ul>
|
||||
<li><a href="index.html">index.html</a> - entry home page</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1993/jonth/.entry.json">.entry.json</a>
|
||||
- description of entry in JSON</li>
|
||||
|
||||
@@ -9,14 +9,6 @@
|
||||
{ "author_handle" : "Leonid_A_Broukhis" }
|
||||
],
|
||||
"manifest" : [
|
||||
{
|
||||
"file_path" : "index.html",
|
||||
"inventory_order" : 10,
|
||||
"OK_to_edit" : false,
|
||||
"display_as" : "html",
|
||||
"display_via_github" : false,
|
||||
"entry_text" : "entry home page"
|
||||
},
|
||||
{
|
||||
"file_path" : "leo.c",
|
||||
"inventory_order" : 20,
|
||||
@@ -49,6 +41,14 @@
|
||||
"display_via_github" : false,
|
||||
"entry_text" : "download entry source"
|
||||
},
|
||||
{
|
||||
"file_path" : "index.html",
|
||||
"inventory_order" : 2000000000,
|
||||
"OK_to_edit" : false,
|
||||
"display_as" : "html",
|
||||
"display_via_github" : false,
|
||||
"entry_text" : "entry home page"
|
||||
},
|
||||
{
|
||||
"file_path" : ".entry.json",
|
||||
"inventory_order" : 4294967295,
|
||||
|
||||
+2
-1
@@ -212,9 +212,9 @@ https://creativecommons.org/licenses/by-sa/4.0/</p>
|
||||
|
||||
<h1 id="inventory-for-1993leo"><a name="inventory"></a>Inventory for
|
||||
1993/leo</h1>
|
||||
<p><a href="#top">Jump to top</a></p>
|
||||
<h2 id="primary-files">Primary files</h2>
|
||||
<ul>
|
||||
<li><a href="index.html">index.html</a> - entry home page</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1993/leo/leo.c">leo.c</a>
|
||||
- entry source</li>
|
||||
@@ -229,6 +229,7 @@ source</li>
|
||||
</ul>
|
||||
<h2 id="secondary-files">Secondary files</h2>
|
||||
<ul>
|
||||
<li><a href="index.html">index.html</a> - entry home page</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1993/leo/.entry.json">.entry.json</a>
|
||||
- description of entry in JSON</li>
|
||||
|
||||
@@ -9,14 +9,6 @@
|
||||
{ "author_handle" : "Jyrki_Holopainen" }
|
||||
],
|
||||
"manifest" : [
|
||||
{
|
||||
"file_path" : "index.html",
|
||||
"inventory_order" : 10,
|
||||
"OK_to_edit" : false,
|
||||
"display_as" : "html",
|
||||
"display_via_github" : false,
|
||||
"entry_text" : "entry home page"
|
||||
},
|
||||
{
|
||||
"file_path" : "lmfjyh.c",
|
||||
"inventory_order" : 20,
|
||||
@@ -57,6 +49,14 @@
|
||||
"display_via_github" : false,
|
||||
"entry_text" : "download entry source"
|
||||
},
|
||||
{
|
||||
"file_path" : "index.html",
|
||||
"inventory_order" : 2000000000,
|
||||
"OK_to_edit" : false,
|
||||
"display_as" : "html",
|
||||
"display_via_github" : false,
|
||||
"entry_text" : "entry home page"
|
||||
},
|
||||
{
|
||||
"file_path" : ".entry.json",
|
||||
"inventory_order" : 4294967295,
|
||||
|
||||
@@ -292,9 +292,9 @@ https://creativecommons.org/licenses/by-sa/4.0/</p>
|
||||
|
||||
<h1 id="inventory-for-1993lmfjyh"><a name="inventory"></a>Inventory for
|
||||
1993/lmfjyh</h1>
|
||||
<p><a href="#top">Jump to top</a></p>
|
||||
<h2 id="primary-files">Primary files</h2>
|
||||
<ul>
|
||||
<li><a href="index.html">index.html</a> - entry home page</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1993/lmfjyh/lmfjyh.c">lmfjyh.c</a>
|
||||
- entry source</li>
|
||||
@@ -312,6 +312,7 @@ entry source</li>
|
||||
</ul>
|
||||
<h2 id="secondary-files">Secondary files</h2>
|
||||
<ul>
|
||||
<li><a href="index.html">index.html</a> - entry home page</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1993/lmfjyh/.entry.json">.entry.json</a>
|
||||
- description of entry in JSON</li>
|
||||
|
||||
@@ -9,14 +9,6 @@
|
||||
{ "author_handle" : "Mark_Plummer" }
|
||||
],
|
||||
"manifest" : [
|
||||
{
|
||||
"file_path" : "index.html",
|
||||
"inventory_order" : 10,
|
||||
"OK_to_edit" : false,
|
||||
"display_as" : "html",
|
||||
"display_via_github" : false,
|
||||
"entry_text" : "entry home page"
|
||||
},
|
||||
{
|
||||
"file_path" : "plummer.c",
|
||||
"inventory_order" : 20,
|
||||
@@ -73,6 +65,14 @@
|
||||
"display_via_github" : false,
|
||||
"entry_text" : "download entry source"
|
||||
},
|
||||
{
|
||||
"file_path" : "index.html",
|
||||
"inventory_order" : 2000000000,
|
||||
"OK_to_edit" : false,
|
||||
"display_as" : "html",
|
||||
"display_via_github" : false,
|
||||
"entry_text" : "entry home page"
|
||||
},
|
||||
{
|
||||
"file_path" : ".entry.json",
|
||||
"inventory_order" : 4294967295,
|
||||
|
||||
@@ -262,9 +262,9 @@ https://creativecommons.org/licenses/by-sa/4.0/</p>
|
||||
|
||||
<h1 id="inventory-for-1993plummer"><a name="inventory"></a>Inventory for
|
||||
1993/plummer</h1>
|
||||
<p><a href="#top">Jump to top</a></p>
|
||||
<h2 id="primary-files">Primary files</h2>
|
||||
<ul>
|
||||
<li><a href="index.html">index.html</a> - entry home page</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1993/plummer/plummer.c">plummer.c</a>
|
||||
- entry source</li>
|
||||
@@ -288,6 +288,7 @@ entry source</li>
|
||||
</ul>
|
||||
<h2 id="secondary-files">Secondary files</h2>
|
||||
<ul>
|
||||
<li><a href="index.html">index.html</a> - entry home page</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1993/plummer/.entry.json">.entry.json</a>
|
||||
- description of entry in JSON</li>
|
||||
|
||||
@@ -9,14 +9,6 @@
|
||||
{ "author_handle" : "James_Bonfield" }
|
||||
],
|
||||
"manifest" : [
|
||||
{
|
||||
"file_path" : "index.html",
|
||||
"inventory_order" : 10,
|
||||
"OK_to_edit" : false,
|
||||
"display_as" : "html",
|
||||
"display_via_github" : false,
|
||||
"entry_text" : "entry home page"
|
||||
},
|
||||
{
|
||||
"file_path" : "rince.c",
|
||||
"inventory_order" : 20,
|
||||
@@ -105,6 +97,14 @@
|
||||
"display_via_github" : false,
|
||||
"entry_text" : "download entry source"
|
||||
},
|
||||
{
|
||||
"file_path" : "index.html",
|
||||
"inventory_order" : 2000000000,
|
||||
"OK_to_edit" : false,
|
||||
"display_as" : "html",
|
||||
"display_via_github" : false,
|
||||
"entry_text" : "entry home page"
|
||||
},
|
||||
{
|
||||
"file_path" : ".entry.json",
|
||||
"inventory_order" : 4294967295,
|
||||
|
||||
@@ -0,0 +1,212 @@
|
||||
<!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="design.md for 1993/rince">
|
||||
<meta name="keywords" content="IOCCC, 1993/rince, design.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>design.md for 1993/rince</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 -->
|
||||
|
||||
<h1 id="implementation-notes">Implementation notes</h1>
|
||||
<p>Due to the long time this has been slowly evolving, it’s hard to
|
||||
describe quite whether it’s been <code>implemented</code>. I think
|
||||
perhaps evolve is a better term. The basic concept behind the program is
|
||||
to describe a game as a simple, slightly cheaty, cellular automata
|
||||
system, with some of the transitions bound to key presses.</p>
|
||||
<p>For instance, assume you wish to make a boulder <code>o</code> roll
|
||||
off a hill <code>/</code> A standard automata would have 2 rules
|
||||
something like this:</p>
|
||||
<pre><code>
|
||||
o.. ...
|
||||
\.. --> 'o' .o. --> '.'
|
||||
... .\. </code></pre>
|
||||
<p>However, the system I devised, in order to keep things small and
|
||||
neat(!), was to define a 3x3 to 3x3 map (instead of the 3x3 to 1x1 shown
|
||||
above). Hence:</p>
|
||||
<pre><code> .o. ...
|
||||
.\. --> .\o
|
||||
... ...</code></pre>
|
||||
<p>This does of course have the odd problem with clashes. What if we
|
||||
want to roll two boulders down simultaneously towards the same square. I
|
||||
perform no buffering, and so this situation is just a ‘fight it out’ and
|
||||
let which ever transition has priority win. Such a case may produce the
|
||||
following change of maps (depending on which ‘roll’ transition is used
|
||||
first).</p>
|
||||
<pre><code> o.o ..o o..
|
||||
\./ changes to \o/ or to \o/
|
||||
... ... ...</code></pre>
|
||||
<p>I claim that it is possible to perform all of the 3x3 to 1x1
|
||||
transitions in a 3x3 to 3x3 based system. One other feature added in is
|
||||
a workaround for the ‘no buffering’ problem. If we define a space ship
|
||||
(as in the <a href="https://en.wikipedia.org/wiki/Space_Invaders">Space
|
||||
Invaders</a> example) to fly right, and we are ‘walking through’ our map
|
||||
from top-left to bottom-right, then it is easy to foresee a situation
|
||||
where our space ship would zip right as far as possible in only the one
|
||||
cycle of the automata. However, a similar leftwards-bound space ship
|
||||
would only move the required one square. For this reason I have two
|
||||
lists of transitions and apply them independently of each other; first
|
||||
top-left to bottom right, and the second in the reverse direction. This
|
||||
means that I can make any ‘object’ move by any amount in a single
|
||||
transition.</p>
|
||||
<p>Now comes the key important addition to make it ‘game’ worthy - the
|
||||
addition of external control by the user. This is done by requesting
|
||||
that some transitions are only valid when a certain key has been
|
||||
pressed. So for example, if we (an <code>@</code> symbol) wish to move
|
||||
right when the <code>l</code> key is hit we have a transition like:</p>
|
||||
<h2 id="key-l">Key: l</h2>
|
||||
<pre><code> * * * * * *
|
||||
* @ . * . @
|
||||
* * * * * *</code></pre>
|
||||
<p>Here I also use wildcards. On the match side (left) of the
|
||||
transition, an asterisk will match against any character. On the update
|
||||
side (right), an asterisk means ‘keep whatever was here before’. So the
|
||||
above example simply means to swap the <code>@</code> and <code>.</code>
|
||||
around when <code>l</code> is pressed. For the purposes of space saving,
|
||||
this transition is shrunk to a single line.</p>
|
||||
<h2 id="key-k">Key: K</h2>
|
||||
<pre><code> a b c 1 2 3
|
||||
d e f 4 5 6
|
||||
g h i 7 8 9</code></pre>
|
||||
<p>is written as: <code>eabcdfghi512346789K</code>.</p>
|
||||
<p>If there are no keys needed for this transition, the character
|
||||
<code>*1</code> should be used instead. Now the format of the game
|
||||
description file is now the following (angle brackets denote an ‘entity’
|
||||
to be defined):</p>
|
||||
<pre><code> <top-bot transition>*\n<bot-top transition>*\n<X size>[ \t]+<Y size>\n
|
||||
<map></code></pre>
|
||||
<p>The <code><X size></code> should take into account the newline
|
||||
at the end of each line of map, and hence should also be one larger than
|
||||
expected.</p>
|
||||
|
||||
<!-- 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 -->
|
||||
@@ -291,9 +291,9 @@ https://creativecommons.org/licenses/by-sa/4.0/</p>
|
||||
|
||||
<h1 id="inventory-for-1993rince"><a name="inventory"></a>Inventory for
|
||||
1993/rince</h1>
|
||||
<p><a href="#top">Jump to top</a></p>
|
||||
<h2 id="primary-files">Primary files</h2>
|
||||
<ul>
|
||||
<li><a href="index.html">index.html</a> - entry home page</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1993/rince/rince.c">rince.c</a>
|
||||
- entry source</li>
|
||||
@@ -327,6 +327,7 @@ source</li>
|
||||
</ul>
|
||||
<h2 id="secondary-files">Secondary files</h2>
|
||||
<ul>
|
||||
<li><a href="index.html">index.html</a> - entry home page</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1993/rince/.entry.json">.entry.json</a>
|
||||
- description of entry in JSON</li>
|
||||
|
||||
@@ -9,14 +9,6 @@
|
||||
{ "author_handle" : "Mark_Schnitzius" }
|
||||
],
|
||||
"manifest" : [
|
||||
{
|
||||
"file_path" : "index.html",
|
||||
"inventory_order" : 10,
|
||||
"OK_to_edit" : false,
|
||||
"display_as" : "html",
|
||||
"display_via_github" : false,
|
||||
"entry_text" : "entry home page"
|
||||
},
|
||||
{
|
||||
"file_path" : "schnitzi.c",
|
||||
"inventory_order" : 20,
|
||||
@@ -57,6 +49,14 @@
|
||||
"display_via_github" : false,
|
||||
"entry_text" : "download entry source"
|
||||
},
|
||||
{
|
||||
"file_path" : "index.html",
|
||||
"inventory_order" : 2000000000,
|
||||
"OK_to_edit" : false,
|
||||
"display_as" : "html",
|
||||
"display_via_github" : false,
|
||||
"entry_text" : "entry home page"
|
||||
},
|
||||
{
|
||||
"file_path" : ".entry.json",
|
||||
"inventory_order" : 4294967295,
|
||||
|
||||
@@ -229,9 +229,9 @@ https://creativecommons.org/licenses/by-sa/4.0/</p>
|
||||
|
||||
<h1 id="inventory-for-1993schnitzi"><a name="inventory"></a>Inventory
|
||||
for 1993/schnitzi</h1>
|
||||
<p><a href="#top">Jump to top</a></p>
|
||||
<h2 id="primary-files">Primary files</h2>
|
||||
<ul>
|
||||
<li><a href="index.html">index.html</a> - entry home page</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1993/schnitzi/schnitzi.c">schnitzi.c</a>
|
||||
- entry source</li>
|
||||
@@ -249,6 +249,7 @@ entry source</li>
|
||||
</ul>
|
||||
<h2 id="secondary-files">Secondary files</h2>
|
||||
<ul>
|
||||
<li><a href="index.html">index.html</a> - entry home page</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1993/schnitzi/.entry.json">.entry.json</a>
|
||||
- description of entry in JSON</li>
|
||||
|
||||
@@ -9,14 +9,6 @@
|
||||
{ "author_handle" : "David_Van_Brackle" }
|
||||
],
|
||||
"manifest" : [
|
||||
{
|
||||
"file_path" : "index.html",
|
||||
"inventory_order" : 10,
|
||||
"OK_to_edit" : false,
|
||||
"display_as" : "html",
|
||||
"display_via_github" : false,
|
||||
"entry_text" : "entry home page"
|
||||
},
|
||||
{
|
||||
"file_path" : "vanb.c",
|
||||
"inventory_order" : 20,
|
||||
@@ -65,6 +57,14 @@
|
||||
"display_via_github" : false,
|
||||
"entry_text" : "download entry source"
|
||||
},
|
||||
{
|
||||
"file_path" : "index.html",
|
||||
"inventory_order" : 2000000000,
|
||||
"OK_to_edit" : false,
|
||||
"display_as" : "html",
|
||||
"display_via_github" : false,
|
||||
"entry_text" : "entry home page"
|
||||
},
|
||||
{
|
||||
"file_path" : ".entry.json",
|
||||
"inventory_order" : 4294967295,
|
||||
|
||||
@@ -297,9 +297,9 @@ https://creativecommons.org/licenses/by-sa/4.0/</p>
|
||||
|
||||
<h1 id="inventory-for-1993vanb"><a name="inventory"></a>Inventory for
|
||||
1993/vanb</h1>
|
||||
<p><a href="#top">Jump to top</a></p>
|
||||
<h2 id="primary-files">Primary files</h2>
|
||||
<ul>
|
||||
<li><a href="index.html">index.html</a> - entry home page</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1993/vanb/vanb.c">vanb.c</a>
|
||||
- entry source</li>
|
||||
@@ -320,6 +320,7 @@ source</li>
|
||||
</ul>
|
||||
<h2 id="secondary-files">Secondary files</h2>
|
||||
<ul>
|
||||
<li><a href="index.html">index.html</a> - entry home page</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1993/vanb/.entry.json">.entry.json</a>
|
||||
- description of entry in JSON</li>
|
||||
|
||||
Reference in new issue
Block a user