fix topbar to work on mobile devices
The topbar, by way of JavaScript, now works on mobile devices such as cell phones and tablets. Internal links for entries from 1984 thru 2015 have been adjusted. Ran `make www` to perform the above. TODO: Fix some color issues on topbar. TODO: More testing!
This commit is contained in:
1 parent
99cd17401e
commit
97f6da1247
440 files changed
+74125
-6956
No files matched your search
@@ -458,7 +458,7 @@ always evaluate to true.
|
||||
decoding using the clever expression, `(i & 3) - 3`, which identifies pattern 3
|
||||
and 7 as longer.
|
||||
|
||||
* The file size of [birken.c](birken.c) is a prime number. Deleting the first
|
||||
* The file size of [birken.c](%%REPO_URL%%/2013/birken/birken.c) is a prime number. Deleting the first
|
||||
line also produces a prime-sized program. These properties do not qualify the
|
||||
program as a prime number generator.
|
||||
|
||||
|
||||
+183
-17
@@ -51,6 +51,8 @@
|
||||
IOCCC
|
||||
</div>
|
||||
|
||||
<div class="mobile-header-button-label">Click This</div>
|
||||
|
||||
<div class="topbar-items">
|
||||
<div class="item">
|
||||
<span class="item-header">
|
||||
@@ -58,10 +60,10 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../index.html">IOCCC Home</a></div>
|
||||
<div class="outfit-font"><a href="../../years.html">Winning Entries</a></div>
|
||||
<div class="outfit-font"><a href="../../authors.html">People who have won</a></div>
|
||||
<div class="outfit-font"><a href="../../location.html">Location of authors</a></div>
|
||||
<div class="outfit-font"><a href="./index.html">IOCCC Home</a></div>
|
||||
<div class="outfit-font"><a href="./years.html">Winning Entries</a></div>
|
||||
<div class="outfit-font"><a href="./authors.html">People who have won</a></div>
|
||||
<div class="outfit-font"><a href="./location.html">Location of authors</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -71,11 +73,11 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../news.html">IOCCC News</a></div>
|
||||
<div class="outfit-font"><a href="../../status.html">Contest status</a></div>
|
||||
<div class="outfit-font"><a href="../../next/index.html">Rules and Guidelines</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#submit">How to enter the IOCCC</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html">FAQ</a></div>
|
||||
<div class="outfit-font"><a href="./news.html">IOCCC News</a></div>
|
||||
<div class="outfit-font"><a href="./status.html">Contest status</a></div>
|
||||
<div class="outfit-font"><a href="./next/index.html">Rules and Guidelines</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#submit">How to enter the IOCCC</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html">FAQ</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -85,11 +87,11 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../bugs.html">Bugs & (mis)features</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#fix_an_entry">Fixing IOCCC entries</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#fix_web_site">Fixing the web site</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#fix_author">Fixing author info</a></div>
|
||||
<div class="outfit-font"><a href="../../thanks-for-help.html">Thanks for the help</a></div>
|
||||
<div class="outfit-font"><a href="./bugs.html">Bugs & (mis)features</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#fix_an_entry">Fixing IOCCC entries</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#fix_web_site">Fixing the web site</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#fix_author">Fixing author info</a></div>
|
||||
<div class="outfit-font"><a href="./thanks-for-help.html">Thanks for the help</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -99,15 +101,179 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../judges.html">The IOCCC Judges</a></div>
|
||||
<div class="outfit-font"><a href="../../contact.html">Contacting the IOCCC</a></div>
|
||||
<div class="outfit-font"><a href="./judges.html">The IOCCC Judges</a></div>
|
||||
<div class="outfit-font"><a href="./contact.html">Contacting the IOCCC</a></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<div class="header-mobile-menu">
|
||||
<button id="header-open-menu-button" class="topbar-mobile-menu">
|
||||
<svg
|
||||
class="mobile-menu-icon"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
viewBox="0 0 24 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
strokeWidth="2"
|
||||
d="M4 6h16M4 12h16M4 18h16"
|
||||
></path>
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
<button id="header-close-menu-button" class="hide-content">
|
||||
<svg
|
||||
class="mobile-menu-icon"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
viewBox="0 0 24 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
strokeWidth="2"
|
||||
d="M6 18L18 6M6 6l12 12"
|
||||
></path>
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
<div id="mobile-menu-panel" class="hide-content">
|
||||
<div class="mobile-menu-container">
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
Home
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./index.html">
|
||||
IOCCC Home
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./years.html">
|
||||
Winning Entries
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./authors.html">
|
||||
People who have won
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./location.html">
|
||||
Location of authors
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
News
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./news.html">
|
||||
IOCCC News
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./status.html">
|
||||
Contest status
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./next/index.html">
|
||||
Rules and Guidelines
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#submit">
|
||||
How to enter the IOCCC
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html">
|
||||
FAQ
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
Bugs
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./bugs.html">
|
||||
Bugs & (mis)features
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#fix_an_entry">
|
||||
Fixing IOCCC entries
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#fix_web_site">
|
||||
Fixing the web site
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#fix_author">
|
||||
Fixing author info
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./thanks-for-help.html">
|
||||
Thanks for the help
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
Judges
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./judges.html">
|
||||
The IOCCC Judges
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./contact.html">
|
||||
Contacting the IOCCC
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var headerOpenMenuButton = document.getElementById("header-open-menu-button");
|
||||
var headerCloseMenuButton = document.getElementById("header-close-menu-button");
|
||||
var mobileMenuPanel = document.getElementById("mobile-menu-panel");
|
||||
|
||||
headerOpenMenuButton.addEventListener("click", () => {
|
||||
headerOpenMenuButton.classList.remove("topbar-mobile-menu");
|
||||
headerOpenMenuButton.classList.add("hide-content");
|
||||
|
||||
headerCloseMenuButton.classList.remove("hide-content");
|
||||
headerCloseMenuButton.classList.add("topbar-mobile-menu");
|
||||
|
||||
mobileMenuPanel.classList.remove("hide-content");
|
||||
mobileMenuPanel.classList.add("topbar-mobile-panel");
|
||||
});
|
||||
|
||||
headerCloseMenuButton.addEventListener("click", () => {
|
||||
headerCloseMenuButton.classList.remove("topbar-mobile-menu");
|
||||
headerCloseMenuButton.classList.add("hide-content");
|
||||
|
||||
mobileMenuPanel.classList.add("hide-content");
|
||||
mobileMenuPanel.classList.remove("topbar-mobile-panel");
|
||||
|
||||
headerOpenMenuButton.classList.add("topbar-mobile-menu");
|
||||
headerOpenMenuButton.classList.remove("hide-content");
|
||||
});
|
||||
</script>
|
||||
|
||||
<!-- END: this line ends content from: inc/topbar.default.html -->
|
||||
<!-- START: this line starts content from: inc/header.default.html -->
|
||||
|
||||
@@ -462,7 +628,7 @@ always evaluate to true.</p></li>
|
||||
<li><p>The varying single square emitter pattern lengths are resolved during string
|
||||
decoding using the clever expression, <code>(i & 3) - 3</code>, which identifies pattern 3
|
||||
and 7 as longer.</p></li>
|
||||
<li><p>The file size of <a href="birken.c">birken.c</a> is a prime number. Deleting the first
|
||||
<li><p>The file size of <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/birken/birken.c">birken.c</a> is a prime number. Deleting the first
|
||||
line also produces a prime-sized program. These properties do not qualify the
|
||||
program as a prime number generator.</p></li>
|
||||
</ul>
|
||||
|
||||
+182
-16
@@ -51,6 +51,8 @@
|
||||
IOCCC
|
||||
</div>
|
||||
|
||||
<div class="mobile-header-button-label">Click This</div>
|
||||
|
||||
<div class="topbar-items">
|
||||
<div class="item">
|
||||
<span class="item-header">
|
||||
@@ -58,10 +60,10 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../index.html">IOCCC Home</a></div>
|
||||
<div class="outfit-font"><a href="../../years.html">Winning Entries</a></div>
|
||||
<div class="outfit-font"><a href="../../authors.html">People who have won</a></div>
|
||||
<div class="outfit-font"><a href="../../location.html">Location of authors</a></div>
|
||||
<div class="outfit-font"><a href="./index.html">IOCCC Home</a></div>
|
||||
<div class="outfit-font"><a href="./years.html">Winning Entries</a></div>
|
||||
<div class="outfit-font"><a href="./authors.html">People who have won</a></div>
|
||||
<div class="outfit-font"><a href="./location.html">Location of authors</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -71,11 +73,11 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../news.html">IOCCC News</a></div>
|
||||
<div class="outfit-font"><a href="../../status.html">Contest status</a></div>
|
||||
<div class="outfit-font"><a href="../../next/index.html">Rules and Guidelines</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#submit">How to enter the IOCCC</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html">FAQ</a></div>
|
||||
<div class="outfit-font"><a href="./news.html">IOCCC News</a></div>
|
||||
<div class="outfit-font"><a href="./status.html">Contest status</a></div>
|
||||
<div class="outfit-font"><a href="./next/index.html">Rules and Guidelines</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#submit">How to enter the IOCCC</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html">FAQ</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -85,11 +87,11 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../bugs.html">Bugs & (mis)features</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#fix_an_entry">Fixing IOCCC entries</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#fix_web_site">Fixing the web site</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#fix_author">Fixing author info</a></div>
|
||||
<div class="outfit-font"><a href="../../thanks-for-help.html">Thanks for the help</a></div>
|
||||
<div class="outfit-font"><a href="./bugs.html">Bugs & (mis)features</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#fix_an_entry">Fixing IOCCC entries</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#fix_web_site">Fixing the web site</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#fix_author">Fixing author info</a></div>
|
||||
<div class="outfit-font"><a href="./thanks-for-help.html">Thanks for the help</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -99,15 +101,179 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../judges.html">The IOCCC Judges</a></div>
|
||||
<div class="outfit-font"><a href="../../contact.html">Contacting the IOCCC</a></div>
|
||||
<div class="outfit-font"><a href="./judges.html">The IOCCC Judges</a></div>
|
||||
<div class="outfit-font"><a href="./contact.html">Contacting the IOCCC</a></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<div class="header-mobile-menu">
|
||||
<button id="header-open-menu-button" class="topbar-mobile-menu">
|
||||
<svg
|
||||
class="mobile-menu-icon"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
viewBox="0 0 24 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
strokeWidth="2"
|
||||
d="M4 6h16M4 12h16M4 18h16"
|
||||
></path>
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
<button id="header-close-menu-button" class="hide-content">
|
||||
<svg
|
||||
class="mobile-menu-icon"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
viewBox="0 0 24 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
strokeWidth="2"
|
||||
d="M6 18L18 6M6 6l12 12"
|
||||
></path>
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
<div id="mobile-menu-panel" class="hide-content">
|
||||
<div class="mobile-menu-container">
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
Home
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./index.html">
|
||||
IOCCC Home
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./years.html">
|
||||
Winning Entries
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./authors.html">
|
||||
People who have won
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./location.html">
|
||||
Location of authors
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
News
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./news.html">
|
||||
IOCCC News
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./status.html">
|
||||
Contest status
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./next/index.html">
|
||||
Rules and Guidelines
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#submit">
|
||||
How to enter the IOCCC
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html">
|
||||
FAQ
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
Bugs
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./bugs.html">
|
||||
Bugs & (mis)features
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#fix_an_entry">
|
||||
Fixing IOCCC entries
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#fix_web_site">
|
||||
Fixing the web site
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#fix_author">
|
||||
Fixing author info
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./thanks-for-help.html">
|
||||
Thanks for the help
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
Judges
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./judges.html">
|
||||
The IOCCC Judges
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./contact.html">
|
||||
Contacting the IOCCC
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var headerOpenMenuButton = document.getElementById("header-open-menu-button");
|
||||
var headerCloseMenuButton = document.getElementById("header-close-menu-button");
|
||||
var mobileMenuPanel = document.getElementById("mobile-menu-panel");
|
||||
|
||||
headerOpenMenuButton.addEventListener("click", () => {
|
||||
headerOpenMenuButton.classList.remove("topbar-mobile-menu");
|
||||
headerOpenMenuButton.classList.add("hide-content");
|
||||
|
||||
headerCloseMenuButton.classList.remove("hide-content");
|
||||
headerCloseMenuButton.classList.add("topbar-mobile-menu");
|
||||
|
||||
mobileMenuPanel.classList.remove("hide-content");
|
||||
mobileMenuPanel.classList.add("topbar-mobile-panel");
|
||||
});
|
||||
|
||||
headerCloseMenuButton.addEventListener("click", () => {
|
||||
headerCloseMenuButton.classList.remove("topbar-mobile-menu");
|
||||
headerCloseMenuButton.classList.add("hide-content");
|
||||
|
||||
mobileMenuPanel.classList.add("hide-content");
|
||||
mobileMenuPanel.classList.remove("topbar-mobile-panel");
|
||||
|
||||
headerOpenMenuButton.classList.add("topbar-mobile-menu");
|
||||
headerOpenMenuButton.classList.remove("hide-content");
|
||||
});
|
||||
</script>
|
||||
|
||||
<!-- END: this line ends content from: inc/topbar.default.html -->
|
||||
<!-- START: this line starts content from: inc/header.default.html -->
|
||||
|
||||
|
||||
@@ -105,7 +105,7 @@ this entry win the IOCCC, it will be the first time (to the author's knowledge)
|
||||
that the IOCCC has been used for peer review/publication of original research.
|
||||
- OCR in general is a hard problem. Here, we only recognise one possible form
|
||||
for each character. You can see what the supported character shapes look like by
|
||||
looking at the examples in [ascii.bmp](ascii.bmp). If you copy the shape of the
|
||||
looking at the examples in [ascii.bmp](%%REPO_URL%%/2013/cable2/ascii.bmp). If you copy the shape of the
|
||||
character forms you find in there, recognition accuracy should be very good
|
||||
(95%+). A more "useful" version would extend the character stroke table to
|
||||
support multiple different commonly-used forms for each character.
|
||||
|
||||
+183
-17
@@ -51,6 +51,8 @@
|
||||
IOCCC
|
||||
</div>
|
||||
|
||||
<div class="mobile-header-button-label">Click This</div>
|
||||
|
||||
<div class="topbar-items">
|
||||
<div class="item">
|
||||
<span class="item-header">
|
||||
@@ -58,10 +60,10 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../index.html">IOCCC Home</a></div>
|
||||
<div class="outfit-font"><a href="../../years.html">Winning Entries</a></div>
|
||||
<div class="outfit-font"><a href="../../authors.html">People who have won</a></div>
|
||||
<div class="outfit-font"><a href="../../location.html">Location of authors</a></div>
|
||||
<div class="outfit-font"><a href="./index.html">IOCCC Home</a></div>
|
||||
<div class="outfit-font"><a href="./years.html">Winning Entries</a></div>
|
||||
<div class="outfit-font"><a href="./authors.html">People who have won</a></div>
|
||||
<div class="outfit-font"><a href="./location.html">Location of authors</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -71,11 +73,11 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../news.html">IOCCC News</a></div>
|
||||
<div class="outfit-font"><a href="../../status.html">Contest status</a></div>
|
||||
<div class="outfit-font"><a href="../../next/index.html">Rules and Guidelines</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#submit">How to enter the IOCCC</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html">FAQ</a></div>
|
||||
<div class="outfit-font"><a href="./news.html">IOCCC News</a></div>
|
||||
<div class="outfit-font"><a href="./status.html">Contest status</a></div>
|
||||
<div class="outfit-font"><a href="./next/index.html">Rules and Guidelines</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#submit">How to enter the IOCCC</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html">FAQ</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -85,11 +87,11 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../bugs.html">Bugs & (mis)features</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#fix_an_entry">Fixing IOCCC entries</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#fix_web_site">Fixing the web site</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#fix_author">Fixing author info</a></div>
|
||||
<div class="outfit-font"><a href="../../thanks-for-help.html">Thanks for the help</a></div>
|
||||
<div class="outfit-font"><a href="./bugs.html">Bugs & (mis)features</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#fix_an_entry">Fixing IOCCC entries</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#fix_web_site">Fixing the web site</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#fix_author">Fixing author info</a></div>
|
||||
<div class="outfit-font"><a href="./thanks-for-help.html">Thanks for the help</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -99,15 +101,179 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../judges.html">The IOCCC Judges</a></div>
|
||||
<div class="outfit-font"><a href="../../contact.html">Contacting the IOCCC</a></div>
|
||||
<div class="outfit-font"><a href="./judges.html">The IOCCC Judges</a></div>
|
||||
<div class="outfit-font"><a href="./contact.html">Contacting the IOCCC</a></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<div class="header-mobile-menu">
|
||||
<button id="header-open-menu-button" class="topbar-mobile-menu">
|
||||
<svg
|
||||
class="mobile-menu-icon"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
viewBox="0 0 24 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
strokeWidth="2"
|
||||
d="M4 6h16M4 12h16M4 18h16"
|
||||
></path>
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
<button id="header-close-menu-button" class="hide-content">
|
||||
<svg
|
||||
class="mobile-menu-icon"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
viewBox="0 0 24 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
strokeWidth="2"
|
||||
d="M6 18L18 6M6 6l12 12"
|
||||
></path>
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
<div id="mobile-menu-panel" class="hide-content">
|
||||
<div class="mobile-menu-container">
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
Home
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./index.html">
|
||||
IOCCC Home
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./years.html">
|
||||
Winning Entries
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./authors.html">
|
||||
People who have won
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./location.html">
|
||||
Location of authors
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
News
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./news.html">
|
||||
IOCCC News
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./status.html">
|
||||
Contest status
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./next/index.html">
|
||||
Rules and Guidelines
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#submit">
|
||||
How to enter the IOCCC
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html">
|
||||
FAQ
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
Bugs
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./bugs.html">
|
||||
Bugs & (mis)features
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#fix_an_entry">
|
||||
Fixing IOCCC entries
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#fix_web_site">
|
||||
Fixing the web site
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#fix_author">
|
||||
Fixing author info
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./thanks-for-help.html">
|
||||
Thanks for the help
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
Judges
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./judges.html">
|
||||
The IOCCC Judges
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./contact.html">
|
||||
Contacting the IOCCC
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var headerOpenMenuButton = document.getElementById("header-open-menu-button");
|
||||
var headerCloseMenuButton = document.getElementById("header-close-menu-button");
|
||||
var mobileMenuPanel = document.getElementById("mobile-menu-panel");
|
||||
|
||||
headerOpenMenuButton.addEventListener("click", () => {
|
||||
headerOpenMenuButton.classList.remove("topbar-mobile-menu");
|
||||
headerOpenMenuButton.classList.add("hide-content");
|
||||
|
||||
headerCloseMenuButton.classList.remove("hide-content");
|
||||
headerCloseMenuButton.classList.add("topbar-mobile-menu");
|
||||
|
||||
mobileMenuPanel.classList.remove("hide-content");
|
||||
mobileMenuPanel.classList.add("topbar-mobile-panel");
|
||||
});
|
||||
|
||||
headerCloseMenuButton.addEventListener("click", () => {
|
||||
headerCloseMenuButton.classList.remove("topbar-mobile-menu");
|
||||
headerCloseMenuButton.classList.add("hide-content");
|
||||
|
||||
mobileMenuPanel.classList.add("hide-content");
|
||||
mobileMenuPanel.classList.remove("topbar-mobile-panel");
|
||||
|
||||
headerOpenMenuButton.classList.add("topbar-mobile-menu");
|
||||
headerOpenMenuButton.classList.remove("hide-content");
|
||||
});
|
||||
</script>
|
||||
|
||||
<!-- END: this line ends content from: inc/topbar.default.html -->
|
||||
<!-- START: this line starts content from: inc/header.default.html -->
|
||||
|
||||
@@ -226,7 +392,7 @@ this entry win the IOCCC, it will be the first time (to the author’s knowledge
|
||||
that the IOCCC has been used for peer review/publication of original research.</li>
|
||||
<li>OCR in general is a hard problem. Here, we only recognise one possible form
|
||||
for each character. You can see what the supported character shapes look like by
|
||||
looking at the examples in <a href="ascii.bmp">ascii.bmp</a>. If you copy the shape of the
|
||||
looking at the examples in <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/cable2/ascii.bmp">ascii.bmp</a>. If you copy the shape of the
|
||||
character forms you find in there, recognition accuracy should be very good
|
||||
(95%+). A more “useful” version would extend the character stroke table to
|
||||
support multiple different commonly-used forms for each character.</li>
|
||||
|
||||
@@ -63,7 +63,7 @@ bits). It manages to implement most of the hardware in a 1980's era
|
||||
IBM-PC using a few hundred fewer bits than the total number of
|
||||
transistors used to implement the original 8086 CPU.
|
||||
|
||||
If you are using macOS, the included [sc-ioccc.terminal](sc-ioccc.terminal)
|
||||
If you are using macOS, the included [sc-ioccc.terminal](%%REPO_URL%%/2013/cable3/sc-ioccc.terminal)
|
||||
configuration file will correctly display console applications that use ANSI
|
||||
graphics.
|
||||
|
||||
@@ -163,7 +163,7 @@ This entry has been tested on Windows (compiled with MS Visual Studio 2010 and
|
||||
supplied is good for Mac OS X, Linux and probably other Unices. I have received
|
||||
reports that the emulator works on Raspberry Pi/Android/ARM (you will need to
|
||||
compile with `-fsigned-char`) and iOS. You will need to adjust the
|
||||
[Makefile](Makefile) if your system lacks `sdl-config` to correctly point to the
|
||||
[Makefile](%%REPO_URL%%/M2013/cable3/akefile) if your system lacks `sdl-config` to correctly point to the
|
||||
SDL libraries and header files.
|
||||
|
||||
On UNIX-based systems we can get raw keystrokes using `stty`. However Windows
|
||||
@@ -193,7 +193,7 @@ include to the top of the source:
|
||||
#include <unistd.h>
|
||||
```
|
||||
|
||||
NOTE: this has been done in [cable3.c](cable3.c).
|
||||
NOTE: this has been done in [cable3.c](%%REPO_URL%%/2013/cable3/cable3.c).
|
||||
|
||||
### Usage
|
||||
|
||||
@@ -211,7 +211,7 @@ looks something like:
|
||||
stty cooked echo
|
||||
```
|
||||
|
||||
See the [cable3.sh](cable3.sh) script.
|
||||
See the [cable3.sh](%%REPO_URL%%/2013/cable3/cable3.sh) script.
|
||||
|
||||
## To use the emulator - floppy mode only
|
||||
|
||||
@@ -221,7 +221,7 @@ the `fd.img` provided, which is a FreeDOS boot disk.
|
||||
Before running the emulator on a Unix-type system, `stty` needs to be used to
|
||||
put the keyboard into raw mode (and afterwards it needs to be put back to
|
||||
cooked). So, run the emulator using something like this script (provided as
|
||||
[cable3.sh](cable3.sh)):
|
||||
[cable3.sh](%%REPO_URL%%/c2013/cable3/able3.sh)):
|
||||
|
||||
``` <!---sh-->
|
||||
stty cbreak raw -echo min 0
|
||||
@@ -343,7 +343,7 @@ for the (terminal) text and (SDL) graphics displays.
|
||||
Like a real PC, the emulator needs a BIOS to do anything useful. Here we use a
|
||||
custom BIOS, written from scratch specifically for the emulator. Source code for
|
||||
the BIOS (written in 8086 assembly language) which compiles with the
|
||||
freely-available NASM x86 assembler is in [bios.asm](bios.asm).
|
||||
freely-available NASM x86 assembler is in [bios.asm](%%REPO_URL%%/2013/cable3/bios.asm).
|
||||
|
||||
The BIOS implements the standard interrupt interfaces for video, disk, timer,
|
||||
clock and so on, much as a "real" PC BIOS does, and also a small
|
||||
|
||||
+188
-22
@@ -51,6 +51,8 @@
|
||||
IOCCC
|
||||
</div>
|
||||
|
||||
<div class="mobile-header-button-label">Click This</div>
|
||||
|
||||
<div class="topbar-items">
|
||||
<div class="item">
|
||||
<span class="item-header">
|
||||
@@ -58,10 +60,10 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../index.html">IOCCC Home</a></div>
|
||||
<div class="outfit-font"><a href="../../years.html">Winning Entries</a></div>
|
||||
<div class="outfit-font"><a href="../../authors.html">People who have won</a></div>
|
||||
<div class="outfit-font"><a href="../../location.html">Location of authors</a></div>
|
||||
<div class="outfit-font"><a href="./index.html">IOCCC Home</a></div>
|
||||
<div class="outfit-font"><a href="./years.html">Winning Entries</a></div>
|
||||
<div class="outfit-font"><a href="./authors.html">People who have won</a></div>
|
||||
<div class="outfit-font"><a href="./location.html">Location of authors</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -71,11 +73,11 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../news.html">IOCCC News</a></div>
|
||||
<div class="outfit-font"><a href="../../status.html">Contest status</a></div>
|
||||
<div class="outfit-font"><a href="../../next/index.html">Rules and Guidelines</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#submit">How to enter the IOCCC</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html">FAQ</a></div>
|
||||
<div class="outfit-font"><a href="./news.html">IOCCC News</a></div>
|
||||
<div class="outfit-font"><a href="./status.html">Contest status</a></div>
|
||||
<div class="outfit-font"><a href="./next/index.html">Rules and Guidelines</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#submit">How to enter the IOCCC</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html">FAQ</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -85,11 +87,11 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../bugs.html">Bugs & (mis)features</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#fix_an_entry">Fixing IOCCC entries</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#fix_web_site">Fixing the web site</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#fix_author">Fixing author info</a></div>
|
||||
<div class="outfit-font"><a href="../../thanks-for-help.html">Thanks for the help</a></div>
|
||||
<div class="outfit-font"><a href="./bugs.html">Bugs & (mis)features</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#fix_an_entry">Fixing IOCCC entries</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#fix_web_site">Fixing the web site</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#fix_author">Fixing author info</a></div>
|
||||
<div class="outfit-font"><a href="./thanks-for-help.html">Thanks for the help</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -99,15 +101,179 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../judges.html">The IOCCC Judges</a></div>
|
||||
<div class="outfit-font"><a href="../../contact.html">Contacting the IOCCC</a></div>
|
||||
<div class="outfit-font"><a href="./judges.html">The IOCCC Judges</a></div>
|
||||
<div class="outfit-font"><a href="./contact.html">Contacting the IOCCC</a></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<div class="header-mobile-menu">
|
||||
<button id="header-open-menu-button" class="topbar-mobile-menu">
|
||||
<svg
|
||||
class="mobile-menu-icon"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
viewBox="0 0 24 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
strokeWidth="2"
|
||||
d="M4 6h16M4 12h16M4 18h16"
|
||||
></path>
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
<button id="header-close-menu-button" class="hide-content">
|
||||
<svg
|
||||
class="mobile-menu-icon"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
viewBox="0 0 24 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
strokeWidth="2"
|
||||
d="M6 18L18 6M6 6l12 12"
|
||||
></path>
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
<div id="mobile-menu-panel" class="hide-content">
|
||||
<div class="mobile-menu-container">
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
Home
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./index.html">
|
||||
IOCCC Home
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./years.html">
|
||||
Winning Entries
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./authors.html">
|
||||
People who have won
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./location.html">
|
||||
Location of authors
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
News
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./news.html">
|
||||
IOCCC News
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./status.html">
|
||||
Contest status
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./next/index.html">
|
||||
Rules and Guidelines
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#submit">
|
||||
How to enter the IOCCC
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html">
|
||||
FAQ
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
Bugs
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./bugs.html">
|
||||
Bugs & (mis)features
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#fix_an_entry">
|
||||
Fixing IOCCC entries
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#fix_web_site">
|
||||
Fixing the web site
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#fix_author">
|
||||
Fixing author info
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./thanks-for-help.html">
|
||||
Thanks for the help
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
Judges
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./judges.html">
|
||||
The IOCCC Judges
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./contact.html">
|
||||
Contacting the IOCCC
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var headerOpenMenuButton = document.getElementById("header-open-menu-button");
|
||||
var headerCloseMenuButton = document.getElementById("header-close-menu-button");
|
||||
var mobileMenuPanel = document.getElementById("mobile-menu-panel");
|
||||
|
||||
headerOpenMenuButton.addEventListener("click", () => {
|
||||
headerOpenMenuButton.classList.remove("topbar-mobile-menu");
|
||||
headerOpenMenuButton.classList.add("hide-content");
|
||||
|
||||
headerCloseMenuButton.classList.remove("hide-content");
|
||||
headerCloseMenuButton.classList.add("topbar-mobile-menu");
|
||||
|
||||
mobileMenuPanel.classList.remove("hide-content");
|
||||
mobileMenuPanel.classList.add("topbar-mobile-panel");
|
||||
});
|
||||
|
||||
headerCloseMenuButton.addEventListener("click", () => {
|
||||
headerCloseMenuButton.classList.remove("topbar-mobile-menu");
|
||||
headerCloseMenuButton.classList.add("hide-content");
|
||||
|
||||
mobileMenuPanel.classList.add("hide-content");
|
||||
mobileMenuPanel.classList.remove("topbar-mobile-panel");
|
||||
|
||||
headerOpenMenuButton.classList.add("topbar-mobile-menu");
|
||||
headerOpenMenuButton.classList.remove("hide-content");
|
||||
});
|
||||
</script>
|
||||
|
||||
<!-- END: this line ends content from: inc/topbar.default.html -->
|
||||
<!-- START: this line starts content from: inc/header.default.html -->
|
||||
|
||||
@@ -182,7 +348,7 @@ combinations are left for the discovery of the user.</p>
|
||||
bits). It manages to implement most of the hardware in a 1980’s era
|
||||
IBM-PC using a few hundred fewer bits than the total number of
|
||||
transistors used to implement the original 8086 CPU.</p>
|
||||
<p>If you are using macOS, the included <a href="sc-ioccc.terminal">sc-ioccc.terminal</a>
|
||||
<p>If you are using macOS, the included <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/cable3/sc-ioccc.terminal">sc-ioccc.terminal</a>
|
||||
configuration file will correctly display console applications that use ANSI
|
||||
graphics.</p>
|
||||
<p>NOTE: the author remarked that in some systems one might need to <code>#include <unistd.h></code>. This has been done in the entry but not the alternate version. This
|
||||
@@ -268,7 +434,7 @@ competition (see above).</li>
|
||||
supplied is good for Mac OS X, Linux and probably other Unices. I have received
|
||||
reports that the emulator works on Raspberry Pi/Android/ARM (you will need to
|
||||
compile with <code>-fsigned-char</code>) and iOS. You will need to adjust the
|
||||
<a href="Makefile">Makefile</a> if your system lacks <code>sdl-config</code> to correctly point to the
|
||||
<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/M2013/cable3/akefile">Makefile</a> if your system lacks <code>sdl-config</code> to correctly point to the
|
||||
SDL libraries and header files.</p>
|
||||
<p>On UNIX-based systems we can get raw keystrokes using <code>stty</code>. However Windows
|
||||
has no <code>stty</code>. Therefore the Makefile includes a <code>-D</code> option to define a
|
||||
@@ -286,7 +452,7 @@ offsets) this is not the case, and to run successfully on these systems, you
|
||||
will need to explicitly declare these functions by adding the appropriate
|
||||
include to the top of the source:</p>
|
||||
<pre><code> #include <unistd.h></code></pre>
|
||||
<p>NOTE: this has been done in <a href="cable3.c">cable3.c</a>.</p>
|
||||
<p>NOTE: this has been done in <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/cable3/cable3.c">cable3.c</a>.</p>
|
||||
<h3 id="usage">Usage</h3>
|
||||
<pre><code> ./cable3 bios-image-file floppy-image-file [harddisk-image-file]</code></pre>
|
||||
<p>PLEASE NOTE that under Unices the keyboard must be in raw mode for the emulator
|
||||
@@ -295,14 +461,14 @@ looks something like:</p>
|
||||
<pre><code> stty cbreak raw -echo min 0
|
||||
./cable3 bios floppy.img harddisk.img
|
||||
stty cooked echo</code></pre>
|
||||
<p>See the <a href="cable3.sh">cable3.sh</a> script.</p>
|
||||
<p>See the <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/cable3/cable3.sh">cable3.sh</a> script.</p>
|
||||
<h2 id="to-use-the-emulator---floppy-mode-only">To use the emulator - floppy mode only</h2>
|
||||
<p>The simplest use of the emulator is with a single floppy boot disk image, like
|
||||
the <code>fd.img</code> provided, which is a FreeDOS boot disk.</p>
|
||||
<p>Before running the emulator on a Unix-type system, <code>stty</code> needs to be used to
|
||||
put the keyboard into raw mode (and afterwards it needs to be put back to
|
||||
cooked). So, run the emulator using something like this script (provided as
|
||||
<a href="cable3.sh">cable3.sh</a>):</p>
|
||||
<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/c2013/cable3/able3.sh">cable3.sh</a>):</p>
|
||||
<pre><code> stty cbreak raw -echo min 0
|
||||
./cable3 bios fd.img
|
||||
stty cooked echo</code></pre>
|
||||
@@ -389,7 +555,7 @@ for the (terminal) text and (SDL) graphics displays.</p>
|
||||
<p>Like a real PC, the emulator needs a BIOS to do anything useful. Here we use a
|
||||
custom BIOS, written from scratch specifically for the emulator. Source code for
|
||||
the BIOS (written in 8086 assembly language) which compiles with the
|
||||
freely-available NASM x86 assembler is in <a href="bios.asm">bios.asm</a>.</p>
|
||||
freely-available NASM x86 assembler is in <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/cable3/bios.asm">bios.asm</a>.</p>
|
||||
<p>The BIOS implements the standard interrupt interfaces for video, disk, timer,
|
||||
clock and so on, much as a “real” PC BIOS does, and also a small
|
||||
timer-controlled video driver to convert video memory formatting into ANSI
|
||||
|
||||
@@ -56,7 +56,7 @@ obfuscated way.
|
||||
Also, why doesn't it crash but instead produces a correct output when called
|
||||
with one argument or when all arguments are equal?
|
||||
|
||||
For extra fun, compile and run [fun.c](fun.c):
|
||||
For extra fun, compile and run [fun.c](%%REPO_URL%%/2013/dlowe/fun.c):
|
||||
|
||||
``` <!---c-->
|
||||
#include <stdio.h>
|
||||
|
||||
+183
-17
@@ -51,6 +51,8 @@
|
||||
IOCCC
|
||||
</div>
|
||||
|
||||
<div class="mobile-header-button-label">Click This</div>
|
||||
|
||||
<div class="topbar-items">
|
||||
<div class="item">
|
||||
<span class="item-header">
|
||||
@@ -58,10 +60,10 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../index.html">IOCCC Home</a></div>
|
||||
<div class="outfit-font"><a href="../../years.html">Winning Entries</a></div>
|
||||
<div class="outfit-font"><a href="../../authors.html">People who have won</a></div>
|
||||
<div class="outfit-font"><a href="../../location.html">Location of authors</a></div>
|
||||
<div class="outfit-font"><a href="./index.html">IOCCC Home</a></div>
|
||||
<div class="outfit-font"><a href="./years.html">Winning Entries</a></div>
|
||||
<div class="outfit-font"><a href="./authors.html">People who have won</a></div>
|
||||
<div class="outfit-font"><a href="./location.html">Location of authors</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -71,11 +73,11 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../news.html">IOCCC News</a></div>
|
||||
<div class="outfit-font"><a href="../../status.html">Contest status</a></div>
|
||||
<div class="outfit-font"><a href="../../next/index.html">Rules and Guidelines</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#submit">How to enter the IOCCC</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html">FAQ</a></div>
|
||||
<div class="outfit-font"><a href="./news.html">IOCCC News</a></div>
|
||||
<div class="outfit-font"><a href="./status.html">Contest status</a></div>
|
||||
<div class="outfit-font"><a href="./next/index.html">Rules and Guidelines</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#submit">How to enter the IOCCC</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html">FAQ</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -85,11 +87,11 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../bugs.html">Bugs & (mis)features</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#fix_an_entry">Fixing IOCCC entries</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#fix_web_site">Fixing the web site</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#fix_author">Fixing author info</a></div>
|
||||
<div class="outfit-font"><a href="../../thanks-for-help.html">Thanks for the help</a></div>
|
||||
<div class="outfit-font"><a href="./bugs.html">Bugs & (mis)features</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#fix_an_entry">Fixing IOCCC entries</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#fix_web_site">Fixing the web site</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#fix_author">Fixing author info</a></div>
|
||||
<div class="outfit-font"><a href="./thanks-for-help.html">Thanks for the help</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -99,15 +101,179 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../judges.html">The IOCCC Judges</a></div>
|
||||
<div class="outfit-font"><a href="../../contact.html">Contacting the IOCCC</a></div>
|
||||
<div class="outfit-font"><a href="./judges.html">The IOCCC Judges</a></div>
|
||||
<div class="outfit-font"><a href="./contact.html">Contacting the IOCCC</a></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<div class="header-mobile-menu">
|
||||
<button id="header-open-menu-button" class="topbar-mobile-menu">
|
||||
<svg
|
||||
class="mobile-menu-icon"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
viewBox="0 0 24 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
strokeWidth="2"
|
||||
d="M4 6h16M4 12h16M4 18h16"
|
||||
></path>
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
<button id="header-close-menu-button" class="hide-content">
|
||||
<svg
|
||||
class="mobile-menu-icon"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
viewBox="0 0 24 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
strokeWidth="2"
|
||||
d="M6 18L18 6M6 6l12 12"
|
||||
></path>
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
<div id="mobile-menu-panel" class="hide-content">
|
||||
<div class="mobile-menu-container">
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
Home
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./index.html">
|
||||
IOCCC Home
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./years.html">
|
||||
Winning Entries
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./authors.html">
|
||||
People who have won
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./location.html">
|
||||
Location of authors
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
News
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./news.html">
|
||||
IOCCC News
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./status.html">
|
||||
Contest status
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./next/index.html">
|
||||
Rules and Guidelines
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#submit">
|
||||
How to enter the IOCCC
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html">
|
||||
FAQ
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
Bugs
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./bugs.html">
|
||||
Bugs & (mis)features
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#fix_an_entry">
|
||||
Fixing IOCCC entries
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#fix_web_site">
|
||||
Fixing the web site
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#fix_author">
|
||||
Fixing author info
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./thanks-for-help.html">
|
||||
Thanks for the help
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
Judges
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./judges.html">
|
||||
The IOCCC Judges
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./contact.html">
|
||||
Contacting the IOCCC
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var headerOpenMenuButton = document.getElementById("header-open-menu-button");
|
||||
var headerCloseMenuButton = document.getElementById("header-close-menu-button");
|
||||
var mobileMenuPanel = document.getElementById("mobile-menu-panel");
|
||||
|
||||
headerOpenMenuButton.addEventListener("click", () => {
|
||||
headerOpenMenuButton.classList.remove("topbar-mobile-menu");
|
||||
headerOpenMenuButton.classList.add("hide-content");
|
||||
|
||||
headerCloseMenuButton.classList.remove("hide-content");
|
||||
headerCloseMenuButton.classList.add("topbar-mobile-menu");
|
||||
|
||||
mobileMenuPanel.classList.remove("hide-content");
|
||||
mobileMenuPanel.classList.add("topbar-mobile-panel");
|
||||
});
|
||||
|
||||
headerCloseMenuButton.addEventListener("click", () => {
|
||||
headerCloseMenuButton.classList.remove("topbar-mobile-menu");
|
||||
headerCloseMenuButton.classList.add("hide-content");
|
||||
|
||||
mobileMenuPanel.classList.add("hide-content");
|
||||
mobileMenuPanel.classList.remove("topbar-mobile-panel");
|
||||
|
||||
headerOpenMenuButton.classList.add("topbar-mobile-menu");
|
||||
headerOpenMenuButton.classList.remove("hide-content");
|
||||
});
|
||||
</script>
|
||||
|
||||
<!-- END: this line ends content from: inc/topbar.default.html -->
|
||||
<!-- START: this line starts content from: inc/header.default.html -->
|
||||
|
||||
@@ -175,7 +341,7 @@ Location: <a href="../../location.html#US">US</a> - <em>United States of America
|
||||
obfuscated way.</p>
|
||||
<p>Also, why doesn’t it crash but instead produces a correct output when called
|
||||
with one argument or when all arguments are equal?</p>
|
||||
<p>For extra fun, compile and run <a href="fun.c">fun.c</a>:</p>
|
||||
<p>For extra fun, compile and run <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/dlowe/fun.c">fun.c</a>:</p>
|
||||
<pre><code> #include <stdio.h>
|
||||
int main() {
|
||||
printf("%d %d %d\n", (int)(-1.0/0.0), (int)(0.0/0.0), (int)(1.0/0.0));
|
||||
|
||||
@@ -64,7 +64,7 @@ This is a tool *for C programmers* to play the [SKI combinator calculus][1],
|
||||
especially, [Lazy K][2].
|
||||
|
||||
This program will shine when it is used as a library. For example,
|
||||
[hello.lazy](hello.lazy) is a "Hello world" program written in Lazy K.
|
||||
[hello.lazy](%%REPO_URL%%/2013/endoh1/hello.lazy) is a "Hello world" program written in Lazy K.
|
||||
|
||||
``` <!---sh-->
|
||||
$ lazy hello.lazy
|
||||
@@ -72,7 +72,7 @@ This program will shine when it is used as a library. For example,
|
||||
```
|
||||
|
||||
where `lazy` is [a reference implementation of Lazy K][3]. At the same time,
|
||||
[hello.lazy](hello.lazy) is *a valid C program* that uses [endoh1.c](endoh1.c)
|
||||
[hello.lazy](%%REPO_URL%%/2013/endoh1/hello.lazy) is *a valid C program* that uses [endoh1.c](%%REPO_URL%%/2013/endoh1/endoh1.c)
|
||||
as a library.
|
||||
|
||||
``` <!---sh-->
|
||||
@@ -162,7 +162,7 @@ The whole program is interpreted by macro expansion.
|
||||
For example, `S (K I)` is translated to a normal C code, `(s)((k)(i))`, or
|
||||
simply `s(k(i))`.
|
||||
|
||||
This expression returns an abstract syntax tree, and [endoh1.c](endoh1.c)
|
||||
This expression returns an abstract syntax tree, and [endoh1.c](%%REPO_URL%%/e2013/endoh1/ndoh1.c)
|
||||
evaluates it.
|
||||
|
||||
This program uses a very simple "term rewriting" approach for evaluating SKI
|
||||
|
||||
+185
-19
@@ -51,6 +51,8 @@
|
||||
IOCCC
|
||||
</div>
|
||||
|
||||
<div class="mobile-header-button-label">Click This</div>
|
||||
|
||||
<div class="topbar-items">
|
||||
<div class="item">
|
||||
<span class="item-header">
|
||||
@@ -58,10 +60,10 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../index.html">IOCCC Home</a></div>
|
||||
<div class="outfit-font"><a href="../../years.html">Winning Entries</a></div>
|
||||
<div class="outfit-font"><a href="../../authors.html">People who have won</a></div>
|
||||
<div class="outfit-font"><a href="../../location.html">Location of authors</a></div>
|
||||
<div class="outfit-font"><a href="./index.html">IOCCC Home</a></div>
|
||||
<div class="outfit-font"><a href="./years.html">Winning Entries</a></div>
|
||||
<div class="outfit-font"><a href="./authors.html">People who have won</a></div>
|
||||
<div class="outfit-font"><a href="./location.html">Location of authors</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -71,11 +73,11 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../news.html">IOCCC News</a></div>
|
||||
<div class="outfit-font"><a href="../../status.html">Contest status</a></div>
|
||||
<div class="outfit-font"><a href="../../next/index.html">Rules and Guidelines</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#submit">How to enter the IOCCC</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html">FAQ</a></div>
|
||||
<div class="outfit-font"><a href="./news.html">IOCCC News</a></div>
|
||||
<div class="outfit-font"><a href="./status.html">Contest status</a></div>
|
||||
<div class="outfit-font"><a href="./next/index.html">Rules and Guidelines</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#submit">How to enter the IOCCC</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html">FAQ</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -85,11 +87,11 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../bugs.html">Bugs & (mis)features</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#fix_an_entry">Fixing IOCCC entries</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#fix_web_site">Fixing the web site</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#fix_author">Fixing author info</a></div>
|
||||
<div class="outfit-font"><a href="../../thanks-for-help.html">Thanks for the help</a></div>
|
||||
<div class="outfit-font"><a href="./bugs.html">Bugs & (mis)features</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#fix_an_entry">Fixing IOCCC entries</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#fix_web_site">Fixing the web site</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#fix_author">Fixing author info</a></div>
|
||||
<div class="outfit-font"><a href="./thanks-for-help.html">Thanks for the help</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -99,15 +101,179 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../judges.html">The IOCCC Judges</a></div>
|
||||
<div class="outfit-font"><a href="../../contact.html">Contacting the IOCCC</a></div>
|
||||
<div class="outfit-font"><a href="./judges.html">The IOCCC Judges</a></div>
|
||||
<div class="outfit-font"><a href="./contact.html">Contacting the IOCCC</a></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<div class="header-mobile-menu">
|
||||
<button id="header-open-menu-button" class="topbar-mobile-menu">
|
||||
<svg
|
||||
class="mobile-menu-icon"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
viewBox="0 0 24 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
strokeWidth="2"
|
||||
d="M4 6h16M4 12h16M4 18h16"
|
||||
></path>
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
<button id="header-close-menu-button" class="hide-content">
|
||||
<svg
|
||||
class="mobile-menu-icon"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
viewBox="0 0 24 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
strokeWidth="2"
|
||||
d="M6 18L18 6M6 6l12 12"
|
||||
></path>
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
<div id="mobile-menu-panel" class="hide-content">
|
||||
<div class="mobile-menu-container">
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
Home
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./index.html">
|
||||
IOCCC Home
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./years.html">
|
||||
Winning Entries
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./authors.html">
|
||||
People who have won
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./location.html">
|
||||
Location of authors
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
News
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./news.html">
|
||||
IOCCC News
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./status.html">
|
||||
Contest status
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./next/index.html">
|
||||
Rules and Guidelines
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#submit">
|
||||
How to enter the IOCCC
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html">
|
||||
FAQ
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
Bugs
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./bugs.html">
|
||||
Bugs & (mis)features
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#fix_an_entry">
|
||||
Fixing IOCCC entries
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#fix_web_site">
|
||||
Fixing the web site
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#fix_author">
|
||||
Fixing author info
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./thanks-for-help.html">
|
||||
Thanks for the help
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
Judges
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./judges.html">
|
||||
The IOCCC Judges
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./contact.html">
|
||||
Contacting the IOCCC
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var headerOpenMenuButton = document.getElementById("header-open-menu-button");
|
||||
var headerCloseMenuButton = document.getElementById("header-close-menu-button");
|
||||
var mobileMenuPanel = document.getElementById("mobile-menu-panel");
|
||||
|
||||
headerOpenMenuButton.addEventListener("click", () => {
|
||||
headerOpenMenuButton.classList.remove("topbar-mobile-menu");
|
||||
headerOpenMenuButton.classList.add("hide-content");
|
||||
|
||||
headerCloseMenuButton.classList.remove("hide-content");
|
||||
headerCloseMenuButton.classList.add("topbar-mobile-menu");
|
||||
|
||||
mobileMenuPanel.classList.remove("hide-content");
|
||||
mobileMenuPanel.classList.add("topbar-mobile-panel");
|
||||
});
|
||||
|
||||
headerCloseMenuButton.addEventListener("click", () => {
|
||||
headerCloseMenuButton.classList.remove("topbar-mobile-menu");
|
||||
headerCloseMenuButton.classList.add("hide-content");
|
||||
|
||||
mobileMenuPanel.classList.add("hide-content");
|
||||
mobileMenuPanel.classList.remove("topbar-mobile-panel");
|
||||
|
||||
headerOpenMenuButton.classList.add("topbar-mobile-menu");
|
||||
headerOpenMenuButton.classList.remove("hide-content");
|
||||
});
|
||||
</script>
|
||||
|
||||
<!-- END: this line ends content from: inc/topbar.default.html -->
|
||||
<!-- START: this line starts content from: inc/header.default.html -->
|
||||
|
||||
@@ -180,11 +346,11 @@ the program itself.</p>
|
||||
<p>This is a tool <em>for C programmers</em> to play the <a href="http://en.wikipedia.org/wiki/SKI_combinator_calculus">SKI combinator calculus</a>,
|
||||
especially, <a href="https://tromp.github.io/cl/lazy-k.html">Lazy K</a>.</p>
|
||||
<p>This program will shine when it is used as a library. For example,
|
||||
<a href="hello.lazy">hello.lazy</a> is a “Hello world” program written in Lazy K.</p>
|
||||
<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/endoh1/hello.lazy">hello.lazy</a> is a “Hello world” program written in Lazy K.</p>
|
||||
<pre><code> $ lazy hello.lazy
|
||||
Hello, world!</code></pre>
|
||||
<p>where <code>lazy</code> is <a href="https://github.com/irori/lazyk">a reference implementation of Lazy K</a>. At the same time,
|
||||
<a href="hello.lazy">hello.lazy</a> is <em>a valid C program</em> that uses <a href="endoh1.c">endoh1.c</a>
|
||||
<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/endoh1/hello.lazy">hello.lazy</a> is <em>a valid C program</em> that uses <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/endoh1/endoh1.c">endoh1.c</a>
|
||||
as a library.</p>
|
||||
<pre><code> $ gcc -o hello -xc hello.lazy
|
||||
$ ./hello
|
||||
@@ -241,7 +407,7 @@ macro, but does work.</p>
|
||||
<p>The whole program is interpreted by macro expansion.
|
||||
For example, <code>S (K I)</code> is translated to a normal C code, <code>(s)((k)(i))</code>, or
|
||||
simply <code>s(k(i))</code>.</p>
|
||||
<p>This expression returns an abstract syntax tree, and <a href="endoh1.c">endoh1.c</a>
|
||||
<p>This expression returns an abstract syntax tree, and <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/e2013/endoh1/ndoh1.c">endoh1.c</a>
|
||||
evaluates it.</p>
|
||||
<p>This program uses a very simple “term rewriting” approach for evaluating SKI
|
||||
combinator calculus. The rewriting rules are shown in the shape of the code.</p>
|
||||
|
||||
@@ -16,7 +16,7 @@ You'll need to have both [Ruby](https://www.ruby-lang.org) and
|
||||
checks.
|
||||
|
||||
If you do not have both, however, you can still do the below in the [try](#try)
|
||||
section to enjoy the entry. The [Makefile](Makefile) `check` rule will check if
|
||||
section to enjoy the entry. The [Makefile](%%REPO_URL%%/2013/endoh2/Makefile) `check` rule will check if
|
||||
you have both and if either is not found it will report it and tell you where to
|
||||
download one or both before exiting.
|
||||
|
||||
|
||||
+183
-17
@@ -51,6 +51,8 @@
|
||||
IOCCC
|
||||
</div>
|
||||
|
||||
<div class="mobile-header-button-label">Click This</div>
|
||||
|
||||
<div class="topbar-items">
|
||||
<div class="item">
|
||||
<span class="item-header">
|
||||
@@ -58,10 +60,10 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../index.html">IOCCC Home</a></div>
|
||||
<div class="outfit-font"><a href="../../years.html">Winning Entries</a></div>
|
||||
<div class="outfit-font"><a href="../../authors.html">People who have won</a></div>
|
||||
<div class="outfit-font"><a href="../../location.html">Location of authors</a></div>
|
||||
<div class="outfit-font"><a href="./index.html">IOCCC Home</a></div>
|
||||
<div class="outfit-font"><a href="./years.html">Winning Entries</a></div>
|
||||
<div class="outfit-font"><a href="./authors.html">People who have won</a></div>
|
||||
<div class="outfit-font"><a href="./location.html">Location of authors</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -71,11 +73,11 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../news.html">IOCCC News</a></div>
|
||||
<div class="outfit-font"><a href="../../status.html">Contest status</a></div>
|
||||
<div class="outfit-font"><a href="../../next/index.html">Rules and Guidelines</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#submit">How to enter the IOCCC</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html">FAQ</a></div>
|
||||
<div class="outfit-font"><a href="./news.html">IOCCC News</a></div>
|
||||
<div class="outfit-font"><a href="./status.html">Contest status</a></div>
|
||||
<div class="outfit-font"><a href="./next/index.html">Rules and Guidelines</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#submit">How to enter the IOCCC</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html">FAQ</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -85,11 +87,11 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../bugs.html">Bugs & (mis)features</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#fix_an_entry">Fixing IOCCC entries</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#fix_web_site">Fixing the web site</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#fix_author">Fixing author info</a></div>
|
||||
<div class="outfit-font"><a href="../../thanks-for-help.html">Thanks for the help</a></div>
|
||||
<div class="outfit-font"><a href="./bugs.html">Bugs & (mis)features</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#fix_an_entry">Fixing IOCCC entries</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#fix_web_site">Fixing the web site</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#fix_author">Fixing author info</a></div>
|
||||
<div class="outfit-font"><a href="./thanks-for-help.html">Thanks for the help</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -99,15 +101,179 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../judges.html">The IOCCC Judges</a></div>
|
||||
<div class="outfit-font"><a href="../../contact.html">Contacting the IOCCC</a></div>
|
||||
<div class="outfit-font"><a href="./judges.html">The IOCCC Judges</a></div>
|
||||
<div class="outfit-font"><a href="./contact.html">Contacting the IOCCC</a></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<div class="header-mobile-menu">
|
||||
<button id="header-open-menu-button" class="topbar-mobile-menu">
|
||||
<svg
|
||||
class="mobile-menu-icon"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
viewBox="0 0 24 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
strokeWidth="2"
|
||||
d="M4 6h16M4 12h16M4 18h16"
|
||||
></path>
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
<button id="header-close-menu-button" class="hide-content">
|
||||
<svg
|
||||
class="mobile-menu-icon"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
viewBox="0 0 24 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
strokeWidth="2"
|
||||
d="M6 18L18 6M6 6l12 12"
|
||||
></path>
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
<div id="mobile-menu-panel" class="hide-content">
|
||||
<div class="mobile-menu-container">
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
Home
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./index.html">
|
||||
IOCCC Home
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./years.html">
|
||||
Winning Entries
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./authors.html">
|
||||
People who have won
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./location.html">
|
||||
Location of authors
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
News
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./news.html">
|
||||
IOCCC News
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./status.html">
|
||||
Contest status
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./next/index.html">
|
||||
Rules and Guidelines
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#submit">
|
||||
How to enter the IOCCC
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html">
|
||||
FAQ
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
Bugs
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./bugs.html">
|
||||
Bugs & (mis)features
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#fix_an_entry">
|
||||
Fixing IOCCC entries
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#fix_web_site">
|
||||
Fixing the web site
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#fix_author">
|
||||
Fixing author info
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./thanks-for-help.html">
|
||||
Thanks for the help
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
Judges
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./judges.html">
|
||||
The IOCCC Judges
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./contact.html">
|
||||
Contacting the IOCCC
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var headerOpenMenuButton = document.getElementById("header-open-menu-button");
|
||||
var headerCloseMenuButton = document.getElementById("header-close-menu-button");
|
||||
var mobileMenuPanel = document.getElementById("mobile-menu-panel");
|
||||
|
||||
headerOpenMenuButton.addEventListener("click", () => {
|
||||
headerOpenMenuButton.classList.remove("topbar-mobile-menu");
|
||||
headerOpenMenuButton.classList.add("hide-content");
|
||||
|
||||
headerCloseMenuButton.classList.remove("hide-content");
|
||||
headerCloseMenuButton.classList.add("topbar-mobile-menu");
|
||||
|
||||
mobileMenuPanel.classList.remove("hide-content");
|
||||
mobileMenuPanel.classList.add("topbar-mobile-panel");
|
||||
});
|
||||
|
||||
headerCloseMenuButton.addEventListener("click", () => {
|
||||
headerCloseMenuButton.classList.remove("topbar-mobile-menu");
|
||||
headerCloseMenuButton.classList.add("hide-content");
|
||||
|
||||
mobileMenuPanel.classList.add("hide-content");
|
||||
mobileMenuPanel.classList.remove("topbar-mobile-panel");
|
||||
|
||||
headerOpenMenuButton.classList.add("topbar-mobile-menu");
|
||||
headerOpenMenuButton.classList.remove("hide-content");
|
||||
});
|
||||
</script>
|
||||
|
||||
<!-- END: this line ends content from: inc/topbar.default.html -->
|
||||
<!-- START: this line starts content from: inc/header.default.html -->
|
||||
|
||||
@@ -160,7 +326,7 @@ Location: <a href="../../location.html#JP">JP</a> - <em>Japan</em></li>
|
||||
<a href="https://imagemagick.org/">ImageMagick</a> installed to run all the automated
|
||||
checks.</p>
|
||||
<p>If you do not have both, however, you can still do the below in the <a href="#try">try</a>
|
||||
section to enjoy the entry. The <a href="Makefile">Makefile</a> <code>check</code> rule will check if
|
||||
section to enjoy the entry. The <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/endoh2/Makefile">Makefile</a> <code>check</code> rule will check if
|
||||
you have both and if either is not found it will report it and tell you where to
|
||||
download one or both before exiting.</p>
|
||||
<h2 id="try">Try:</h2>
|
||||
|
||||
@@ -43,7 +43,7 @@ The script will check for SoX first and next `padsp` from `PulseAudio` and
|
||||
finally if neither are found if you have `ruby(1)` installed it'll use the
|
||||
included ruby script to convert it to a WAV file for you to play.
|
||||
|
||||
If no args are passed to the script it will play [twinkle.abc](twinkle.abc) and
|
||||
If no args are passed to the script it will play [twinkle.abc](%%REPO_URL%%/2013/endoh3/twinkle.abc) and
|
||||
the string `ABC`. Otherwise while there's a remaining arg if it's a file it will
|
||||
run the program on the file. If it's not a file it'll run it as a string.
|
||||
|
||||
|
||||
+183
-17
@@ -51,6 +51,8 @@
|
||||
IOCCC
|
||||
</div>
|
||||
|
||||
<div class="mobile-header-button-label">Click This</div>
|
||||
|
||||
<div class="topbar-items">
|
||||
<div class="item">
|
||||
<span class="item-header">
|
||||
@@ -58,10 +60,10 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../index.html">IOCCC Home</a></div>
|
||||
<div class="outfit-font"><a href="../../years.html">Winning Entries</a></div>
|
||||
<div class="outfit-font"><a href="../../authors.html">People who have won</a></div>
|
||||
<div class="outfit-font"><a href="../../location.html">Location of authors</a></div>
|
||||
<div class="outfit-font"><a href="./index.html">IOCCC Home</a></div>
|
||||
<div class="outfit-font"><a href="./years.html">Winning Entries</a></div>
|
||||
<div class="outfit-font"><a href="./authors.html">People who have won</a></div>
|
||||
<div class="outfit-font"><a href="./location.html">Location of authors</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -71,11 +73,11 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../news.html">IOCCC News</a></div>
|
||||
<div class="outfit-font"><a href="../../status.html">Contest status</a></div>
|
||||
<div class="outfit-font"><a href="../../next/index.html">Rules and Guidelines</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#submit">How to enter the IOCCC</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html">FAQ</a></div>
|
||||
<div class="outfit-font"><a href="./news.html">IOCCC News</a></div>
|
||||
<div class="outfit-font"><a href="./status.html">Contest status</a></div>
|
||||
<div class="outfit-font"><a href="./next/index.html">Rules and Guidelines</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#submit">How to enter the IOCCC</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html">FAQ</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -85,11 +87,11 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../bugs.html">Bugs & (mis)features</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#fix_an_entry">Fixing IOCCC entries</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#fix_web_site">Fixing the web site</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#fix_author">Fixing author info</a></div>
|
||||
<div class="outfit-font"><a href="../../thanks-for-help.html">Thanks for the help</a></div>
|
||||
<div class="outfit-font"><a href="./bugs.html">Bugs & (mis)features</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#fix_an_entry">Fixing IOCCC entries</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#fix_web_site">Fixing the web site</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#fix_author">Fixing author info</a></div>
|
||||
<div class="outfit-font"><a href="./thanks-for-help.html">Thanks for the help</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -99,15 +101,179 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../judges.html">The IOCCC Judges</a></div>
|
||||
<div class="outfit-font"><a href="../../contact.html">Contacting the IOCCC</a></div>
|
||||
<div class="outfit-font"><a href="./judges.html">The IOCCC Judges</a></div>
|
||||
<div class="outfit-font"><a href="./contact.html">Contacting the IOCCC</a></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<div class="header-mobile-menu">
|
||||
<button id="header-open-menu-button" class="topbar-mobile-menu">
|
||||
<svg
|
||||
class="mobile-menu-icon"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
viewBox="0 0 24 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
strokeWidth="2"
|
||||
d="M4 6h16M4 12h16M4 18h16"
|
||||
></path>
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
<button id="header-close-menu-button" class="hide-content">
|
||||
<svg
|
||||
class="mobile-menu-icon"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
viewBox="0 0 24 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
strokeWidth="2"
|
||||
d="M6 18L18 6M6 6l12 12"
|
||||
></path>
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
<div id="mobile-menu-panel" class="hide-content">
|
||||
<div class="mobile-menu-container">
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
Home
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./index.html">
|
||||
IOCCC Home
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./years.html">
|
||||
Winning Entries
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./authors.html">
|
||||
People who have won
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./location.html">
|
||||
Location of authors
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
News
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./news.html">
|
||||
IOCCC News
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./status.html">
|
||||
Contest status
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./next/index.html">
|
||||
Rules and Guidelines
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#submit">
|
||||
How to enter the IOCCC
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html">
|
||||
FAQ
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
Bugs
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./bugs.html">
|
||||
Bugs & (mis)features
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#fix_an_entry">
|
||||
Fixing IOCCC entries
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#fix_web_site">
|
||||
Fixing the web site
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#fix_author">
|
||||
Fixing author info
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./thanks-for-help.html">
|
||||
Thanks for the help
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
Judges
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./judges.html">
|
||||
The IOCCC Judges
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./contact.html">
|
||||
Contacting the IOCCC
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var headerOpenMenuButton = document.getElementById("header-open-menu-button");
|
||||
var headerCloseMenuButton = document.getElementById("header-close-menu-button");
|
||||
var mobileMenuPanel = document.getElementById("mobile-menu-panel");
|
||||
|
||||
headerOpenMenuButton.addEventListener("click", () => {
|
||||
headerOpenMenuButton.classList.remove("topbar-mobile-menu");
|
||||
headerOpenMenuButton.classList.add("hide-content");
|
||||
|
||||
headerCloseMenuButton.classList.remove("hide-content");
|
||||
headerCloseMenuButton.classList.add("topbar-mobile-menu");
|
||||
|
||||
mobileMenuPanel.classList.remove("hide-content");
|
||||
mobileMenuPanel.classList.add("topbar-mobile-panel");
|
||||
});
|
||||
|
||||
headerCloseMenuButton.addEventListener("click", () => {
|
||||
headerCloseMenuButton.classList.remove("topbar-mobile-menu");
|
||||
headerCloseMenuButton.classList.add("hide-content");
|
||||
|
||||
mobileMenuPanel.classList.add("hide-content");
|
||||
mobileMenuPanel.classList.remove("topbar-mobile-panel");
|
||||
|
||||
headerOpenMenuButton.classList.add("topbar-mobile-menu");
|
||||
headerOpenMenuButton.classList.remove("hide-content");
|
||||
});
|
||||
</script>
|
||||
|
||||
<!-- END: this line ends content from: inc/topbar.default.html -->
|
||||
<!-- START: this line starts content from: inc/header.default.html -->
|
||||
|
||||
@@ -174,7 +340,7 @@ system up for this or if you want to verify that everything is oky.</p>
|
||||
<p>The script will check for SoX first and next <code>padsp</code> from <code>PulseAudio</code> and
|
||||
finally if neither are found if you have <code>ruby(1)</code> installed it’ll use the
|
||||
included ruby script to convert it to a WAV file for you to play.</p>
|
||||
<p>If no args are passed to the script it will play <a href="twinkle.abc">twinkle.abc</a> and
|
||||
<p>If no args are passed to the script it will play <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/endoh3/twinkle.abc">twinkle.abc</a> and
|
||||
the string <code>ABC</code>. Otherwise while there’s a remaining arg if it’s a file it will
|
||||
run the program on the file. If it’s not a file it’ll run it as a string.</p>
|
||||
<p>The <code>*.abc</code> files are provided as music samples.</p>
|
||||
|
||||
@@ -12,7 +12,7 @@ below) you can do so with the `SIZE` variable. For instance you can do:
|
||||
make clobber SIZE=50,50 all
|
||||
```
|
||||
|
||||
but you can also do this directly with the [endoh4.sh](endoh4.sh) script as
|
||||
but you can also do this directly with the [endoh4.sh](%%REPO_URL%%/2013/endoh4/endoh4.sh) script as
|
||||
described below.
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@ For more detailed information see [2013 endoh4 bugs](../../bugs.html#2013_endoh4
|
||||
|
||||
The second form is preferable as it will temporarily make the cursor invisible
|
||||
as recommended by the author. If no file is specified in the `./endoh4.sh` command
|
||||
line it will feed to the program [endoh4.c](endoh4.c).
|
||||
line it will feed to the program [endoh4.c](%%REPO_URL%%/2013/endoh4/endoh4.c).
|
||||
|
||||
|
||||
## Try:
|
||||
@@ -70,7 +70,7 @@ If you wish to change the size to `50,50` without passing any arg:
|
||||
SIZE=50,50 ./endoh4.sh
|
||||
```
|
||||
|
||||
Not specifying a file feeds [endoh4.c](endoh4.c) to the program.
|
||||
Not specifying a file feeds [endoh4.c](%%REPO_URL%%/2013/endoh4/endoh4.c) to the program.
|
||||
|
||||
|
||||
## Judges' remarks:
|
||||
|
||||
+185
-19
@@ -51,6 +51,8 @@
|
||||
IOCCC
|
||||
</div>
|
||||
|
||||
<div class="mobile-header-button-label">Click This</div>
|
||||
|
||||
<div class="topbar-items">
|
||||
<div class="item">
|
||||
<span class="item-header">
|
||||
@@ -58,10 +60,10 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../index.html">IOCCC Home</a></div>
|
||||
<div class="outfit-font"><a href="../../years.html">Winning Entries</a></div>
|
||||
<div class="outfit-font"><a href="../../authors.html">People who have won</a></div>
|
||||
<div class="outfit-font"><a href="../../location.html">Location of authors</a></div>
|
||||
<div class="outfit-font"><a href="./index.html">IOCCC Home</a></div>
|
||||
<div class="outfit-font"><a href="./years.html">Winning Entries</a></div>
|
||||
<div class="outfit-font"><a href="./authors.html">People who have won</a></div>
|
||||
<div class="outfit-font"><a href="./location.html">Location of authors</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -71,11 +73,11 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../news.html">IOCCC News</a></div>
|
||||
<div class="outfit-font"><a href="../../status.html">Contest status</a></div>
|
||||
<div class="outfit-font"><a href="../../next/index.html">Rules and Guidelines</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#submit">How to enter the IOCCC</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html">FAQ</a></div>
|
||||
<div class="outfit-font"><a href="./news.html">IOCCC News</a></div>
|
||||
<div class="outfit-font"><a href="./status.html">Contest status</a></div>
|
||||
<div class="outfit-font"><a href="./next/index.html">Rules and Guidelines</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#submit">How to enter the IOCCC</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html">FAQ</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -85,11 +87,11 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../bugs.html">Bugs & (mis)features</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#fix_an_entry">Fixing IOCCC entries</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#fix_web_site">Fixing the web site</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#fix_author">Fixing author info</a></div>
|
||||
<div class="outfit-font"><a href="../../thanks-for-help.html">Thanks for the help</a></div>
|
||||
<div class="outfit-font"><a href="./bugs.html">Bugs & (mis)features</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#fix_an_entry">Fixing IOCCC entries</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#fix_web_site">Fixing the web site</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#fix_author">Fixing author info</a></div>
|
||||
<div class="outfit-font"><a href="./thanks-for-help.html">Thanks for the help</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -99,15 +101,179 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../judges.html">The IOCCC Judges</a></div>
|
||||
<div class="outfit-font"><a href="../../contact.html">Contacting the IOCCC</a></div>
|
||||
<div class="outfit-font"><a href="./judges.html">The IOCCC Judges</a></div>
|
||||
<div class="outfit-font"><a href="./contact.html">Contacting the IOCCC</a></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<div class="header-mobile-menu">
|
||||
<button id="header-open-menu-button" class="topbar-mobile-menu">
|
||||
<svg
|
||||
class="mobile-menu-icon"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
viewBox="0 0 24 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
strokeWidth="2"
|
||||
d="M4 6h16M4 12h16M4 18h16"
|
||||
></path>
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
<button id="header-close-menu-button" class="hide-content">
|
||||
<svg
|
||||
class="mobile-menu-icon"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
viewBox="0 0 24 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
strokeWidth="2"
|
||||
d="M6 18L18 6M6 6l12 12"
|
||||
></path>
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
<div id="mobile-menu-panel" class="hide-content">
|
||||
<div class="mobile-menu-container">
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
Home
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./index.html">
|
||||
IOCCC Home
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./years.html">
|
||||
Winning Entries
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./authors.html">
|
||||
People who have won
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./location.html">
|
||||
Location of authors
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
News
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./news.html">
|
||||
IOCCC News
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./status.html">
|
||||
Contest status
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./next/index.html">
|
||||
Rules and Guidelines
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#submit">
|
||||
How to enter the IOCCC
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html">
|
||||
FAQ
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
Bugs
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./bugs.html">
|
||||
Bugs & (mis)features
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#fix_an_entry">
|
||||
Fixing IOCCC entries
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#fix_web_site">
|
||||
Fixing the web site
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#fix_author">
|
||||
Fixing author info
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./thanks-for-help.html">
|
||||
Thanks for the help
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
Judges
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./judges.html">
|
||||
The IOCCC Judges
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./contact.html">
|
||||
Contacting the IOCCC
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var headerOpenMenuButton = document.getElementById("header-open-menu-button");
|
||||
var headerCloseMenuButton = document.getElementById("header-close-menu-button");
|
||||
var mobileMenuPanel = document.getElementById("mobile-menu-panel");
|
||||
|
||||
headerOpenMenuButton.addEventListener("click", () => {
|
||||
headerOpenMenuButton.classList.remove("topbar-mobile-menu");
|
||||
headerOpenMenuButton.classList.add("hide-content");
|
||||
|
||||
headerCloseMenuButton.classList.remove("hide-content");
|
||||
headerCloseMenuButton.classList.add("topbar-mobile-menu");
|
||||
|
||||
mobileMenuPanel.classList.remove("hide-content");
|
||||
mobileMenuPanel.classList.add("topbar-mobile-panel");
|
||||
});
|
||||
|
||||
headerCloseMenuButton.addEventListener("click", () => {
|
||||
headerCloseMenuButton.classList.remove("topbar-mobile-menu");
|
||||
headerCloseMenuButton.classList.add("hide-content");
|
||||
|
||||
mobileMenuPanel.classList.add("hide-content");
|
||||
mobileMenuPanel.classList.remove("topbar-mobile-panel");
|
||||
|
||||
headerOpenMenuButton.classList.add("topbar-mobile-menu");
|
||||
headerOpenMenuButton.classList.remove("hide-content");
|
||||
});
|
||||
</script>
|
||||
|
||||
<!-- END: this line ends content from: inc/topbar.default.html -->
|
||||
<!-- START: this line starts content from: inc/header.default.html -->
|
||||
|
||||
@@ -157,7 +323,7 @@ Location: <a href="../../location.html#JP">JP</a> - <em>Japan</em></li>
|
||||
<p>If you wish to change the size (see the <a href="#authors-remarks">Author’s remarks</a>
|
||||
below) you can do so with the <code>SIZE</code> variable. For instance you can do:</p>
|
||||
<pre><code> make clobber SIZE=50,50 all</code></pre>
|
||||
<p>but you can also do this directly with the <a href="endoh4.sh">endoh4.sh</a> script as
|
||||
<p>but you can also do this directly with the <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/endoh4/endoh4.sh">endoh4.sh</a> script as
|
||||
described below.</p>
|
||||
<h3 id="bugs-and-misfeatures">Bugs and (Mis)features:</h3>
|
||||
<p>The current status of this entry is:</p>
|
||||
@@ -168,7 +334,7 @@ described below.</p>
|
||||
./endoh4.sh file</code></pre>
|
||||
<p>The second form is preferable as it will temporarily make the cursor invisible
|
||||
as recommended by the author. If no file is specified in the <code>./endoh4.sh</code> command
|
||||
line it will feed to the program <a href="endoh4.c">endoh4.c</a>.</p>
|
||||
line it will feed to the program <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/endoh4/endoh4.c">endoh4.c</a>.</p>
|
||||
<h2 id="try">Try:</h2>
|
||||
<pre><code> ./endoh4.sh cube.txt</code></pre>
|
||||
<p>Hit ctrl-c to end the program.</p>
|
||||
@@ -180,7 +346,7 @@ line it will feed to the program <a href="endoh4.c">endoh4.c</a>.</p>
|
||||
<p>Hit ctrl-c/intr to go to the next file.</p>
|
||||
<p>If you wish to change the size to <code>50,50</code> without passing any arg:</p>
|
||||
<pre><code> SIZE=50,50 ./endoh4.sh</code></pre>
|
||||
<p>Not specifying a file feeds <a href="endoh4.c">endoh4.c</a> to the program.</p>
|
||||
<p>Not specifying a file feeds <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/endoh4/endoh4.c">endoh4.c</a> to the program.</p>
|
||||
<h2 id="judges-remarks">Judges’ remarks:</h2>
|
||||
<p>This program is formatted as the net for a tetrahedron (hint: try feeding the
|
||||
program it’s own source code like <code>./endoh4.sh</code>). When it runs there is an
|
||||
|
||||
+15
-15
@@ -65,7 +65,7 @@ program.
|
||||
This program will loop infinitely while progressively refining a
|
||||
[raytraced](https://en.wikipedia.org/wiki/Ray_tracing_(graphics)) image.
|
||||
|
||||
NOTE: the author refers to [a.c](a.c), placed in a gzipped file `a.c.gz`. We do not
|
||||
NOTE: the author refers to [a.c](%%REPO_URL%%/2013/hou/a.c), placed in a gzipped file `a.c.gz`. We do not
|
||||
include it but it can be generated like:
|
||||
|
||||
``` <!---sh-->
|
||||
@@ -134,7 +134,7 @@ don't have to worry about conflicts.
|
||||
|
||||
### Abuse of the rules
|
||||
|
||||
* [hou.c](hou.c) uses compression to get around the size limit. The compression
|
||||
* [hou.c](%%REPO_URL%%/2013/hou/hou.c) uses compression to get around the size limit. The compression
|
||||
fully complies with the rules and the guidelines (at least the portion that
|
||||
shows up in `grep` "size limit"). Please see the [Self-imposed
|
||||
restrictions](self-imposed-restrictions) section below for more details.
|
||||
@@ -145,18 +145,18 @@ restrictions](self-imposed-restrictions) section below for more details.
|
||||
|
||||
* The building process does not involve any OS tool beyond `cc(1)` and
|
||||
`make(1)`. No `gzip(1)` compression! `a.c.gz` doesn't fit in 2053 bytes, anyway.
|
||||
* Neither [hou.c](hou.c) nor [a.c](a.c) (the *real* decompressed source) uses
|
||||
* Neither [hou.c](%%REPO_URL%%/2013/hou/hou.c) nor [a.c](%%REPO_URL%%/2013/hou/a.c) (the *real* decompressed source) uses
|
||||
`#define` (or `cc -D`) at all.
|
||||
* The source code is not required at runtime.
|
||||
* [a.c](a.c) does not drop optional features to reduce size. There are pure
|
||||
* [a.c](%%REPO_URL%%/2013/hou/a.c) does not drop optional features to reduce size. There are pure
|
||||
optimization code that can be dropped without affecting the converged output
|
||||
(only affecting the ray tracing speed / convergence rate). All files are
|
||||
properly `fopen()`ed with `"rb"` / `"wb"` for Windows compatibility. The PPM
|
||||
header has a comment line for non-standard-compliant viewers (specifically, my
|
||||
old HDRShop 1.0). And there is a nice text message saying "please wait...".
|
||||
Despite the messy look, [a.c](a.c) and [hou.c](hou.c) compile warning-free
|
||||
([hou.c](hou.c) even wastes 18 bytes on `#include<stdio.h>` just for `putchar(3)`).
|
||||
[a.c](a.c) compiles mostly clean in the C99/ANSI modes of clang and gcc (with:
|
||||
Despite the messy look, [a.c](%%REPO_URL%%/2013/hou/a.c) and [hou.c](%%REPO_URL%%/2013/hou/hou.c) compile warning-free
|
||||
([hou.c](%%REPO_URL%%/2013/hou/hou.c) even wastes 18 bytes on `#include<stdio.h>` just for `putchar(3)`).
|
||||
[a.c](%%REPO_URL%%/2013/hou/a.c) compiles mostly clean in the C99/ANSI modes of clang and gcc (with:
|
||||
|
||||
```
|
||||
-Wall --pedantic
|
||||
@@ -178,15 +178,15 @@ internal states.
|
||||
the code, but they leave the text clear in the *result*. This entry takes it
|
||||
further and obfuscates the output image as well. Can you find the text in the
|
||||
image? Hint: look up.
|
||||
* [a.c](a.c) leaves all shaders in plain text, but the plain text shader code can't
|
||||
* [a.c](%%REPO_URL%%/2013/hou/a.c) leaves all shaders in plain text, but the plain text shader code can't
|
||||
be taken for its face value; the arithmetic rules subtly diverge from our common
|
||||
sense.
|
||||
* [a.c](a.c) is less portable than [hou.c](hou.c) itself. [hou.c](hou.c) only depends
|
||||
* [a.c](%%REPO_URL%%/2013/hou/a.c) is less portable than [hou.c](%%REPO_URL%%/2013/hou/hou.c) itself. [hou.c](%%REPO_URL%%/2013/hou/hou.c) only depends
|
||||
on ASCII and should run just fine on 16-bit, small memory, or
|
||||
floating-point-incapable machines. [a.c](a.c), while still reasonably portable, is
|
||||
floating-point-incapable machines. [a.c](%%REPO_URL%%/2013/hou/a.c), while still reasonably portable, is
|
||||
quite memory consuming, requires IEEE754-compliant `double`, and assumes `int` to be
|
||||
32-bits.
|
||||
* Though technically endian-dependent, [a.c](a.c) remains portable providing that one
|
||||
* Though technically endian-dependent, [a.c](%%REPO_URL%%/2013/hou/a.c) remains portable providing that one
|
||||
doesn't copy saved sessions across different endianness.
|
||||
|
||||
|
||||
@@ -216,7 +216,7 @@ corresponds to the final image, which can then be produced as a simple per-pixel
|
||||
histogram of all generated paths. The robustness comes from a state mutation
|
||||
strategy that actively tries to explore the neighborhood of high energy peaks
|
||||
(e.g. paths that happen to hit the light source in
|
||||
[otherroom.scene](otherroom.scene)). In addition, a rudimentary form of lens
|
||||
[otherroom.scene](%%REPO_URL%%/2013/hou/otherroom.scene)). In addition, a rudimentary form of lens
|
||||
path stratification is added to balance the attention each pixel receives. The
|
||||
Metropolis-Hasting process completely avoids the tell-tale pixel sampling loop
|
||||
required in most other image generation methods.
|
||||
@@ -237,11 +237,11 @@ necessarily map to the same set of paths in `PSSMLT`. After all,
|
||||
Metropolis-Hasting used an even worse PRNG in their 1953 paper.
|
||||
|
||||
The `PPM` compressor uses statically weighted fixed order contexts with an
|
||||
arithmetic encoder tweaked for [iocccsize.c](../iocccsize.c). The encoder emits octet-space pairs
|
||||
arithmetic encoder tweaked for [iocccsize.c](%%REPO_URL%%/2013/iocccsize.c). The encoder emits octet-space pairs
|
||||
where each octet encodes ~6.5 bits of information and each space encodes 2 bits
|
||||
(thanks to the generous definition of "space" in [iocccsize.c](../iocccsize.c)). The compressor
|
||||
(thanks to the generous definition of "space" in [iocccsize.c](%%REPO_URL%%/2013/iocccsize.c)). The compressor
|
||||
actively shuffles the variable names around until the compressed string happens
|
||||
to contain enough `{}; `s to pass the final [iocccsize.c](../iocccsize.c) test.
|
||||
to contain enough `{}; `s to pass the final [iocccsize.c](%%REPO_URL%%/2013/iocccsize.c) test.
|
||||
There are a few other tweaks:
|
||||
|
||||
* The `PPM` model uses mostly whitespace characters for weights.
|
||||
|
||||
+183
-17
@@ -51,6 +51,8 @@
|
||||
IOCCC
|
||||
</div>
|
||||
|
||||
<div class="mobile-header-button-label">Click This</div>
|
||||
|
||||
<div class="topbar-items">
|
||||
<div class="item">
|
||||
<span class="item-header">
|
||||
@@ -58,10 +60,10 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../../index.html">IOCCC Home</a></div>
|
||||
<div class="outfit-font"><a href="../../../years.html">Winning Entries</a></div>
|
||||
<div class="outfit-font"><a href="../../../authors.html">People who have won</a></div>
|
||||
<div class="outfit-font"><a href="../../../location.html">Location of authors</a></div>
|
||||
<div class="outfit-font"><a href="./index.html">IOCCC Home</a></div>
|
||||
<div class="outfit-font"><a href="./years.html">Winning Entries</a></div>
|
||||
<div class="outfit-font"><a href="./authors.html">People who have won</a></div>
|
||||
<div class="outfit-font"><a href="./location.html">Location of authors</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -71,11 +73,11 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../../news.html">IOCCC News</a></div>
|
||||
<div class="outfit-font"><a href="../../../status.html">Contest status</a></div>
|
||||
<div class="outfit-font"><a href="../../../next/index.html">Rules and Guidelines</a></div>
|
||||
<div class="outfit-font"><a href="../../../faq.html#submit">How to enter the IOCCC</a></div>
|
||||
<div class="outfit-font"><a href="../../../faq.html">FAQ</a></div>
|
||||
<div class="outfit-font"><a href="./news.html">IOCCC News</a></div>
|
||||
<div class="outfit-font"><a href="./status.html">Contest status</a></div>
|
||||
<div class="outfit-font"><a href="./next/index.html">Rules and Guidelines</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#submit">How to enter the IOCCC</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html">FAQ</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -85,11 +87,11 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../../bugs.html">Bugs & (mis)features</a></div>
|
||||
<div class="outfit-font"><a href="../../../faq.html#fix_an_entry">Fixing IOCCC entries</a></div>
|
||||
<div class="outfit-font"><a href="../../../faq.html#fix_web_site">Fixing the web site</a></div>
|
||||
<div class="outfit-font"><a href="../../../faq.html#fix_author">Fixing author info</a></div>
|
||||
<div class="outfit-font"><a href="../../../thanks-for-help.html">Thanks for the help</a></div>
|
||||
<div class="outfit-font"><a href="./bugs.html">Bugs & (mis)features</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#fix_an_entry">Fixing IOCCC entries</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#fix_web_site">Fixing the web site</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#fix_author">Fixing author info</a></div>
|
||||
<div class="outfit-font"><a href="./thanks-for-help.html">Thanks for the help</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -99,15 +101,179 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../../judges.html">The IOCCC Judges</a></div>
|
||||
<div class="outfit-font"><a href="../../../contact.html">Contacting the IOCCC</a></div>
|
||||
<div class="outfit-font"><a href="./judges.html">The IOCCC Judges</a></div>
|
||||
<div class="outfit-font"><a href="./contact.html">Contacting the IOCCC</a></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<div class="header-mobile-menu">
|
||||
<button id="header-open-menu-button" class="topbar-mobile-menu">
|
||||
<svg
|
||||
class="mobile-menu-icon"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
viewBox="0 0 24 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
strokeWidth="2"
|
||||
d="M4 6h16M4 12h16M4 18h16"
|
||||
></path>
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
<button id="header-close-menu-button" class="hide-content">
|
||||
<svg
|
||||
class="mobile-menu-icon"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
viewBox="0 0 24 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
strokeWidth="2"
|
||||
d="M6 18L18 6M6 6l12 12"
|
||||
></path>
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
<div id="mobile-menu-panel" class="hide-content">
|
||||
<div class="mobile-menu-container">
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
Home
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./index.html">
|
||||
IOCCC Home
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./years.html">
|
||||
Winning Entries
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./authors.html">
|
||||
People who have won
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./location.html">
|
||||
Location of authors
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
News
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./news.html">
|
||||
IOCCC News
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./status.html">
|
||||
Contest status
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./next/index.html">
|
||||
Rules and Guidelines
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#submit">
|
||||
How to enter the IOCCC
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html">
|
||||
FAQ
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
Bugs
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./bugs.html">
|
||||
Bugs & (mis)features
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#fix_an_entry">
|
||||
Fixing IOCCC entries
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#fix_web_site">
|
||||
Fixing the web site
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#fix_author">
|
||||
Fixing author info
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./thanks-for-help.html">
|
||||
Thanks for the help
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
Judges
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./judges.html">
|
||||
The IOCCC Judges
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./contact.html">
|
||||
Contacting the IOCCC
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var headerOpenMenuButton = document.getElementById("header-open-menu-button");
|
||||
var headerCloseMenuButton = document.getElementById("header-close-menu-button");
|
||||
var mobileMenuPanel = document.getElementById("mobile-menu-panel");
|
||||
|
||||
headerOpenMenuButton.addEventListener("click", () => {
|
||||
headerOpenMenuButton.classList.remove("topbar-mobile-menu");
|
||||
headerOpenMenuButton.classList.add("hide-content");
|
||||
|
||||
headerCloseMenuButton.classList.remove("hide-content");
|
||||
headerCloseMenuButton.classList.add("topbar-mobile-menu");
|
||||
|
||||
mobileMenuPanel.classList.remove("hide-content");
|
||||
mobileMenuPanel.classList.add("topbar-mobile-panel");
|
||||
});
|
||||
|
||||
headerCloseMenuButton.addEventListener("click", () => {
|
||||
headerCloseMenuButton.classList.remove("topbar-mobile-menu");
|
||||
headerCloseMenuButton.classList.add("hide-content");
|
||||
|
||||
mobileMenuPanel.classList.add("hide-content");
|
||||
mobileMenuPanel.classList.remove("topbar-mobile-panel");
|
||||
|
||||
headerOpenMenuButton.classList.add("topbar-mobile-menu");
|
||||
headerOpenMenuButton.classList.remove("hide-content");
|
||||
});
|
||||
</script>
|
||||
|
||||
<!-- END: this line ends content from: inc/topbar.default.html -->
|
||||
<!-- START: this line starts content from: inc/header.default.html -->
|
||||
|
||||
@@ -312,7 +478,7 @@ the camera, and shoot a ray from the camera point to the image plane point, see:
|
||||
width=935 height=632></p>
|
||||
<p>.. and the ray direction vector (image plane point - camera point) is <code>(X,Y,Z)</code>. For the
|
||||
coordinate space, volume 0 is scaled up 64x here to <code>(0,0,0)-(4096,4096,4096)</code>.</p>
|
||||
<p>For a basic camera shader example, check <a href="../otherroom.scene">otherroom.scene</a>.</p>
|
||||
<p>For a basic camera shader example, check <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/hou/otherroom.scene">otherroom.scene</a>.</p>
|
||||
<p>If any ray goes out of volume 0, the renderer crashes. Make sure it doesn’t
|
||||
happen. Wall up everything.</p>
|
||||
<p>Variables <code>ABCDEF</code> control the color returned from the ray. They will be
|
||||
|
||||
@@ -247,7 +247,7 @@ the camera, and shoot a ray from the camera point to the image plane point, see:
|
||||
.. and the ray direction vector (image plane point - camera point) is `(X,Y,Z)`. For the
|
||||
coordinate space, volume 0 is scaled up 64x here to `(0,0,0)-(4096,4096,4096)`.
|
||||
|
||||
For a basic camera shader example, check [otherroom.scene](../otherroom.scene).
|
||||
For a basic camera shader example, check [otherroom.scene](%%REPO_URL%%/2013/hou/otherroom.scene).
|
||||
|
||||
If any ray goes out of volume 0, the renderer crashes. Make sure it doesn't
|
||||
happen. Wall up everything.
|
||||
|
||||
+197
-31
@@ -51,6 +51,8 @@
|
||||
IOCCC
|
||||
</div>
|
||||
|
||||
<div class="mobile-header-button-label">Click This</div>
|
||||
|
||||
<div class="topbar-items">
|
||||
<div class="item">
|
||||
<span class="item-header">
|
||||
@@ -58,10 +60,10 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../index.html">IOCCC Home</a></div>
|
||||
<div class="outfit-font"><a href="../../years.html">Winning Entries</a></div>
|
||||
<div class="outfit-font"><a href="../../authors.html">People who have won</a></div>
|
||||
<div class="outfit-font"><a href="../../location.html">Location of authors</a></div>
|
||||
<div class="outfit-font"><a href="./index.html">IOCCC Home</a></div>
|
||||
<div class="outfit-font"><a href="./years.html">Winning Entries</a></div>
|
||||
<div class="outfit-font"><a href="./authors.html">People who have won</a></div>
|
||||
<div class="outfit-font"><a href="./location.html">Location of authors</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -71,11 +73,11 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../news.html">IOCCC News</a></div>
|
||||
<div class="outfit-font"><a href="../../status.html">Contest status</a></div>
|
||||
<div class="outfit-font"><a href="../../next/index.html">Rules and Guidelines</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#submit">How to enter the IOCCC</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html">FAQ</a></div>
|
||||
<div class="outfit-font"><a href="./news.html">IOCCC News</a></div>
|
||||
<div class="outfit-font"><a href="./status.html">Contest status</a></div>
|
||||
<div class="outfit-font"><a href="./next/index.html">Rules and Guidelines</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#submit">How to enter the IOCCC</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html">FAQ</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -85,11 +87,11 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../bugs.html">Bugs & (mis)features</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#fix_an_entry">Fixing IOCCC entries</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#fix_web_site">Fixing the web site</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#fix_author">Fixing author info</a></div>
|
||||
<div class="outfit-font"><a href="../../thanks-for-help.html">Thanks for the help</a></div>
|
||||
<div class="outfit-font"><a href="./bugs.html">Bugs & (mis)features</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#fix_an_entry">Fixing IOCCC entries</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#fix_web_site">Fixing the web site</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#fix_author">Fixing author info</a></div>
|
||||
<div class="outfit-font"><a href="./thanks-for-help.html">Thanks for the help</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -99,15 +101,179 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../judges.html">The IOCCC Judges</a></div>
|
||||
<div class="outfit-font"><a href="../../contact.html">Contacting the IOCCC</a></div>
|
||||
<div class="outfit-font"><a href="./judges.html">The IOCCC Judges</a></div>
|
||||
<div class="outfit-font"><a href="./contact.html">Contacting the IOCCC</a></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<div class="header-mobile-menu">
|
||||
<button id="header-open-menu-button" class="topbar-mobile-menu">
|
||||
<svg
|
||||
class="mobile-menu-icon"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
viewBox="0 0 24 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
strokeWidth="2"
|
||||
d="M4 6h16M4 12h16M4 18h16"
|
||||
></path>
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
<button id="header-close-menu-button" class="hide-content">
|
||||
<svg
|
||||
class="mobile-menu-icon"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
viewBox="0 0 24 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
strokeWidth="2"
|
||||
d="M6 18L18 6M6 6l12 12"
|
||||
></path>
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
<div id="mobile-menu-panel" class="hide-content">
|
||||
<div class="mobile-menu-container">
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
Home
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./index.html">
|
||||
IOCCC Home
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./years.html">
|
||||
Winning Entries
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./authors.html">
|
||||
People who have won
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./location.html">
|
||||
Location of authors
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
News
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./news.html">
|
||||
IOCCC News
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./status.html">
|
||||
Contest status
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./next/index.html">
|
||||
Rules and Guidelines
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#submit">
|
||||
How to enter the IOCCC
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html">
|
||||
FAQ
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
Bugs
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./bugs.html">
|
||||
Bugs & (mis)features
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#fix_an_entry">
|
||||
Fixing IOCCC entries
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#fix_web_site">
|
||||
Fixing the web site
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#fix_author">
|
||||
Fixing author info
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./thanks-for-help.html">
|
||||
Thanks for the help
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
Judges
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./judges.html">
|
||||
The IOCCC Judges
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./contact.html">
|
||||
Contacting the IOCCC
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var headerOpenMenuButton = document.getElementById("header-open-menu-button");
|
||||
var headerCloseMenuButton = document.getElementById("header-close-menu-button");
|
||||
var mobileMenuPanel = document.getElementById("mobile-menu-panel");
|
||||
|
||||
headerOpenMenuButton.addEventListener("click", () => {
|
||||
headerOpenMenuButton.classList.remove("topbar-mobile-menu");
|
||||
headerOpenMenuButton.classList.add("hide-content");
|
||||
|
||||
headerCloseMenuButton.classList.remove("hide-content");
|
||||
headerCloseMenuButton.classList.add("topbar-mobile-menu");
|
||||
|
||||
mobileMenuPanel.classList.remove("hide-content");
|
||||
mobileMenuPanel.classList.add("topbar-mobile-panel");
|
||||
});
|
||||
|
||||
headerCloseMenuButton.addEventListener("click", () => {
|
||||
headerCloseMenuButton.classList.remove("topbar-mobile-menu");
|
||||
headerCloseMenuButton.classList.add("hide-content");
|
||||
|
||||
mobileMenuPanel.classList.add("hide-content");
|
||||
mobileMenuPanel.classList.remove("topbar-mobile-panel");
|
||||
|
||||
headerOpenMenuButton.classList.add("topbar-mobile-menu");
|
||||
headerOpenMenuButton.classList.remove("hide-content");
|
||||
});
|
||||
</script>
|
||||
|
||||
<!-- END: this line ends content from: inc/topbar.default.html -->
|
||||
<!-- START: this line starts content from: inc/header.default.html -->
|
||||
|
||||
@@ -188,7 +354,7 @@ really just a decompressor to generate the real source code of the
|
||||
program.</p>
|
||||
<p>This program will loop infinitely while progressively refining a
|
||||
<a href="https://en.wikipedia.org/wiki/Ray_tracing_(graphics)">raytraced</a> image.</p>
|
||||
<p>NOTE: the author refers to <a href="a.c">a.c</a>, placed in a gzipped file <code>a.c.gz</code>. We do not
|
||||
<p>NOTE: the author refers to <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/hou/a.c">a.c</a>, placed in a gzipped file <code>a.c.gz</code>. We do not
|
||||
include it but it can be generated like:</p>
|
||||
<pre><code> cc -Wall hou.c -o hou -lm
|
||||
./hou > a.c</code></pre>
|
||||
@@ -241,7 +407,7 @@ don’t have to worry about conflicts.</li>
|
||||
</ul>
|
||||
<h3 id="abuse-of-the-rules">Abuse of the rules</h3>
|
||||
<ul>
|
||||
<li><a href="hou.c">hou.c</a> uses compression to get around the size limit. The compression
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/hou/hou.c">hou.c</a> uses compression to get around the size limit. The compression
|
||||
fully complies with the rules and the guidelines (at least the portion that
|
||||
shows up in <code>grep</code> “size limit”). Please see the <a href="self-imposed-restrictions">Self-imposed
|
||||
restrictions</a> section below for more details.</li>
|
||||
@@ -251,18 +417,18 @@ restrictions</a> section below for more details.</li>
|
||||
<ul>
|
||||
<li>The building process does not involve any OS tool beyond <code>cc(1)</code> and
|
||||
<code>make(1)</code>. No <code>gzip(1)</code> compression! <code>a.c.gz</code> doesn’t fit in 2053 bytes, anyway.</li>
|
||||
<li>Neither <a href="hou.c">hou.c</a> nor <a href="a.c">a.c</a> (the <em>real</em> decompressed source) uses
|
||||
<li>Neither <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/hou/hou.c">hou.c</a> nor <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/hou/a.c">a.c</a> (the <em>real</em> decompressed source) uses
|
||||
<code>#define</code> (or <code>cc -D</code>) at all.</li>
|
||||
<li>The source code is not required at runtime.</li>
|
||||
<li><a href="a.c">a.c</a> does not drop optional features to reduce size. There are pure
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/hou/a.c">a.c</a> does not drop optional features to reduce size. There are pure
|
||||
optimization code that can be dropped without affecting the converged output
|
||||
(only affecting the ray tracing speed / convergence rate). All files are
|
||||
properly <code>fopen()</code>ed with <code>"rb"</code> / <code>"wb"</code> for Windows compatibility. The PPM
|
||||
header has a comment line for non-standard-compliant viewers (specifically, my
|
||||
old HDRShop 1.0). And there is a nice text message saying “please wait…”.
|
||||
Despite the messy look, <a href="a.c">a.c</a> and <a href="hou.c">hou.c</a> compile warning-free
|
||||
(<a href="hou.c">hou.c</a> even wastes 18 bytes on <code>#include<stdio.h></code> just for <code>putchar(3)</code>).
|
||||
<a href="a.c">a.c</a> compiles mostly clean in the C99/ANSI modes of clang and gcc (with:</li>
|
||||
Despite the messy look, <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/hou/a.c">a.c</a> and <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/hou/hou.c">hou.c</a> compile warning-free
|
||||
(<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/hou/hou.c">hou.c</a> even wastes 18 bytes on <code>#include<stdio.h></code> just for <code>putchar(3)</code>).
|
||||
<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/hou/a.c">a.c</a> compiles mostly clean in the C99/ANSI modes of clang and gcc (with:</li>
|
||||
</ul>
|
||||
<pre><code>-Wall --pedantic</code></pre>
|
||||
<p>The only warning generated is a pedantic one: <code>"string constant too long"</code>.</p>
|
||||
@@ -278,15 +444,15 @@ internal states.</li>
|
||||
the code, but they leave the text clear in the <em>result</em>. This entry takes it
|
||||
further and obfuscates the output image as well. Can you find the text in the
|
||||
image? Hint: look up.</li>
|
||||
<li><a href="a.c">a.c</a> leaves all shaders in plain text, but the plain text shader code can’t
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/hou/a.c">a.c</a> leaves all shaders in plain text, but the plain text shader code can’t
|
||||
be taken for its face value; the arithmetic rules subtly diverge from our common
|
||||
sense.</li>
|
||||
<li><a href="a.c">a.c</a> is less portable than <a href="hou.c">hou.c</a> itself. <a href="hou.c">hou.c</a> only depends
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/hou/a.c">a.c</a> is less portable than <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/hou/hou.c">hou.c</a> itself. <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/hou/hou.c">hou.c</a> only depends
|
||||
on ASCII and should run just fine on 16-bit, small memory, or
|
||||
floating-point-incapable machines. <a href="a.c">a.c</a>, while still reasonably portable, is
|
||||
floating-point-incapable machines. <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/hou/a.c">a.c</a>, while still reasonably portable, is
|
||||
quite memory consuming, requires IEEE754-compliant <code>double</code>, and assumes <code>int</code> to be
|
||||
32-bits.</li>
|
||||
<li>Though technically endian-dependent, <a href="a.c">a.c</a> remains portable providing that one
|
||||
<li>Though technically endian-dependent, <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/hou/a.c">a.c</a> remains portable providing that one
|
||||
doesn’t copy saved sessions across different endianness.</li>
|
||||
</ul>
|
||||
<h3 id="spoiler">Spoiler</h3>
|
||||
@@ -310,7 +476,7 @@ corresponds to the final image, which can then be produced as a simple per-pixel
|
||||
histogram of all generated paths. The robustness comes from a state mutation
|
||||
strategy that actively tries to explore the neighborhood of high energy peaks
|
||||
(e.g. paths that happen to hit the light source in
|
||||
<a href="otherroom.scene">otherroom.scene</a>). In addition, a rudimentary form of lens
|
||||
<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/hou/otherroom.scene">otherroom.scene</a>). In addition, a rudimentary form of lens
|
||||
path stratification is added to balance the attention each pixel receives. The
|
||||
Metropolis-Hasting process completely avoids the tell-tale pixel sampling loop
|
||||
required in most other image generation methods.</p>
|
||||
@@ -329,11 +495,11 @@ session would run through its short period many times, but that doesn’t
|
||||
necessarily map to the same set of paths in <code>PSSMLT</code>. After all,
|
||||
Metropolis-Hasting used an even worse PRNG in their 1953 paper.</p>
|
||||
<p>The <code>PPM</code> compressor uses statically weighted fixed order contexts with an
|
||||
arithmetic encoder tweaked for <a href="../iocccsize.c">iocccsize.c</a>. The encoder emits octet-space pairs
|
||||
arithmetic encoder tweaked for <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/iocccsize.c">iocccsize.c</a>. The encoder emits octet-space pairs
|
||||
where each octet encodes ~6.5 bits of information and each space encodes 2 bits
|
||||
(thanks to the generous definition of “space” in <a href="../iocccsize.c">iocccsize.c</a>). The compressor
|
||||
(thanks to the generous definition of “space” in <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/iocccsize.c">iocccsize.c</a>). The compressor
|
||||
actively shuffles the variable names around until the compressed string happens
|
||||
to contain enough <code>{};</code>s to pass the final <a href="../iocccsize.c">iocccsize.c</a> test.
|
||||
to contain enough <code>{};</code>s to pass the final <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/iocccsize.c">iocccsize.c</a> test.
|
||||
There are a few other tweaks:</p>
|
||||
<ul>
|
||||
<li><p>The <code>PPM</code> model uses mostly whitespace characters for weights.</p></li>
|
||||
|
||||
+182
-16
@@ -51,6 +51,8 @@
|
||||
IOCCC
|
||||
</div>
|
||||
|
||||
<div class="mobile-header-button-label">Click This</div>
|
||||
|
||||
<div class="topbar-items">
|
||||
<div class="item">
|
||||
<span class="item-header">
|
||||
@@ -58,10 +60,10 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../index.html">IOCCC Home</a></div>
|
||||
<div class="outfit-font"><a href="../years.html">Winning Entries</a></div>
|
||||
<div class="outfit-font"><a href="../authors.html">People who have won</a></div>
|
||||
<div class="outfit-font"><a href="../location.html">Location of authors</a></div>
|
||||
<div class="outfit-font"><a href="./index.html">IOCCC Home</a></div>
|
||||
<div class="outfit-font"><a href="./years.html">Winning Entries</a></div>
|
||||
<div class="outfit-font"><a href="./authors.html">People who have won</a></div>
|
||||
<div class="outfit-font"><a href="./location.html">Location of authors</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -71,11 +73,11 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../news.html">IOCCC News</a></div>
|
||||
<div class="outfit-font"><a href="../status.html">Contest status</a></div>
|
||||
<div class="outfit-font"><a href="../next/index.html">Rules and Guidelines</a></div>
|
||||
<div class="outfit-font"><a href="../faq.html#submit">How to enter the IOCCC</a></div>
|
||||
<div class="outfit-font"><a href="../faq.html">FAQ</a></div>
|
||||
<div class="outfit-font"><a href="./news.html">IOCCC News</a></div>
|
||||
<div class="outfit-font"><a href="./status.html">Contest status</a></div>
|
||||
<div class="outfit-font"><a href="./next/index.html">Rules and Guidelines</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#submit">How to enter the IOCCC</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html">FAQ</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -85,11 +87,11 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../bugs.html">Bugs & (mis)features</a></div>
|
||||
<div class="outfit-font"><a href="../faq.html#fix_an_entry">Fixing IOCCC entries</a></div>
|
||||
<div class="outfit-font"><a href="../faq.html#fix_web_site">Fixing the web site</a></div>
|
||||
<div class="outfit-font"><a href="../faq.html#fix_author">Fixing author info</a></div>
|
||||
<div class="outfit-font"><a href="../thanks-for-help.html">Thanks for the help</a></div>
|
||||
<div class="outfit-font"><a href="./bugs.html">Bugs & (mis)features</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#fix_an_entry">Fixing IOCCC entries</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#fix_web_site">Fixing the web site</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#fix_author">Fixing author info</a></div>
|
||||
<div class="outfit-font"><a href="./thanks-for-help.html">Thanks for the help</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -99,15 +101,179 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../judges.html">The IOCCC Judges</a></div>
|
||||
<div class="outfit-font"><a href="../contact.html">Contacting the IOCCC</a></div>
|
||||
<div class="outfit-font"><a href="./judges.html">The IOCCC Judges</a></div>
|
||||
<div class="outfit-font"><a href="./contact.html">Contacting the IOCCC</a></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<div class="header-mobile-menu">
|
||||
<button id="header-open-menu-button" class="topbar-mobile-menu">
|
||||
<svg
|
||||
class="mobile-menu-icon"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
viewBox="0 0 24 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
strokeWidth="2"
|
||||
d="M4 6h16M4 12h16M4 18h16"
|
||||
></path>
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
<button id="header-close-menu-button" class="hide-content">
|
||||
<svg
|
||||
class="mobile-menu-icon"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
viewBox="0 0 24 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
strokeWidth="2"
|
||||
d="M6 18L18 6M6 6l12 12"
|
||||
></path>
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
<div id="mobile-menu-panel" class="hide-content">
|
||||
<div class="mobile-menu-container">
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
Home
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./index.html">
|
||||
IOCCC Home
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./years.html">
|
||||
Winning Entries
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./authors.html">
|
||||
People who have won
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./location.html">
|
||||
Location of authors
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
News
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./news.html">
|
||||
IOCCC News
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./status.html">
|
||||
Contest status
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./next/index.html">
|
||||
Rules and Guidelines
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#submit">
|
||||
How to enter the IOCCC
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html">
|
||||
FAQ
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
Bugs
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./bugs.html">
|
||||
Bugs & (mis)features
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#fix_an_entry">
|
||||
Fixing IOCCC entries
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#fix_web_site">
|
||||
Fixing the web site
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#fix_author">
|
||||
Fixing author info
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./thanks-for-help.html">
|
||||
Thanks for the help
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
Judges
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./judges.html">
|
||||
The IOCCC Judges
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./contact.html">
|
||||
Contacting the IOCCC
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var headerOpenMenuButton = document.getElementById("header-open-menu-button");
|
||||
var headerCloseMenuButton = document.getElementById("header-close-menu-button");
|
||||
var mobileMenuPanel = document.getElementById("mobile-menu-panel");
|
||||
|
||||
headerOpenMenuButton.addEventListener("click", () => {
|
||||
headerOpenMenuButton.classList.remove("topbar-mobile-menu");
|
||||
headerOpenMenuButton.classList.add("hide-content");
|
||||
|
||||
headerCloseMenuButton.classList.remove("hide-content");
|
||||
headerCloseMenuButton.classList.add("topbar-mobile-menu");
|
||||
|
||||
mobileMenuPanel.classList.remove("hide-content");
|
||||
mobileMenuPanel.classList.add("topbar-mobile-panel");
|
||||
});
|
||||
|
||||
headerCloseMenuButton.addEventListener("click", () => {
|
||||
headerCloseMenuButton.classList.remove("topbar-mobile-menu");
|
||||
headerCloseMenuButton.classList.add("hide-content");
|
||||
|
||||
mobileMenuPanel.classList.add("hide-content");
|
||||
mobileMenuPanel.classList.remove("topbar-mobile-panel");
|
||||
|
||||
headerOpenMenuButton.classList.add("topbar-mobile-menu");
|
||||
headerOpenMenuButton.classList.remove("hide-content");
|
||||
});
|
||||
</script>
|
||||
|
||||
<!-- END: this line ends content from: inc/topbar.default.html -->
|
||||
<!-- START: this line starts content from: inc/header.default.html -->
|
||||
|
||||
|
||||
@@ -110,7 +110,7 @@ them.
|
||||
### User-modifiable Features
|
||||
|
||||
The code can be user-modified simply by changing the build command line.
|
||||
The following symbols are defined in the [Makefile](Makefile):
|
||||
The following symbols are defined in the [Makefile](%%REPO_URL%%/2013/millsMakefile):
|
||||
|
||||
* `-DLT=x1,y1,z1,x2,y2,z2,...` defines the coordinates of the lights in the
|
||||
scene. It should be a comma-separated list of coordinates `(x, y, z)`, three per
|
||||
@@ -129,7 +129,7 @@ The original program bound the server to `INADDR_ANY` to allow everyone to
|
||||
experience the server's output. The Judges suggested that I instead restrict
|
||||
the bind to `INADDR_LOOPBACK` to reduce security alarms. As a compliant veteran
|
||||
of innumerable post-ship late feature additions, I have modified the
|
||||
[Makefile](Makefile) to inject the new code without destroying the beautiful
|
||||
[Makefile](%%REPO_URL%%/2013/millsMakefile) to inject the new code without destroying the beautiful
|
||||
spherical symmetry of the source code. In addition, I have altered the word
|
||||
`sin_port` to the more family-friendly version `win_port` (via
|
||||
`-Dwin_port="sin_addr.s_addr=htonl(2130706433),R.sin_port"`) to protect against
|
||||
|
||||
+184
-18
@@ -51,6 +51,8 @@
|
||||
IOCCC
|
||||
</div>
|
||||
|
||||
<div class="mobile-header-button-label">Click This</div>
|
||||
|
||||
<div class="topbar-items">
|
||||
<div class="item">
|
||||
<span class="item-header">
|
||||
@@ -58,10 +60,10 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../index.html">IOCCC Home</a></div>
|
||||
<div class="outfit-font"><a href="../../years.html">Winning Entries</a></div>
|
||||
<div class="outfit-font"><a href="../../authors.html">People who have won</a></div>
|
||||
<div class="outfit-font"><a href="../../location.html">Location of authors</a></div>
|
||||
<div class="outfit-font"><a href="./index.html">IOCCC Home</a></div>
|
||||
<div class="outfit-font"><a href="./years.html">Winning Entries</a></div>
|
||||
<div class="outfit-font"><a href="./authors.html">People who have won</a></div>
|
||||
<div class="outfit-font"><a href="./location.html">Location of authors</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -71,11 +73,11 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../news.html">IOCCC News</a></div>
|
||||
<div class="outfit-font"><a href="../../status.html">Contest status</a></div>
|
||||
<div class="outfit-font"><a href="../../next/index.html">Rules and Guidelines</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#submit">How to enter the IOCCC</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html">FAQ</a></div>
|
||||
<div class="outfit-font"><a href="./news.html">IOCCC News</a></div>
|
||||
<div class="outfit-font"><a href="./status.html">Contest status</a></div>
|
||||
<div class="outfit-font"><a href="./next/index.html">Rules and Guidelines</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#submit">How to enter the IOCCC</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html">FAQ</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -85,11 +87,11 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../bugs.html">Bugs & (mis)features</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#fix_an_entry">Fixing IOCCC entries</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#fix_web_site">Fixing the web site</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#fix_author">Fixing author info</a></div>
|
||||
<div class="outfit-font"><a href="../../thanks-for-help.html">Thanks for the help</a></div>
|
||||
<div class="outfit-font"><a href="./bugs.html">Bugs & (mis)features</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#fix_an_entry">Fixing IOCCC entries</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#fix_web_site">Fixing the web site</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#fix_author">Fixing author info</a></div>
|
||||
<div class="outfit-font"><a href="./thanks-for-help.html">Thanks for the help</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -99,15 +101,179 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../judges.html">The IOCCC Judges</a></div>
|
||||
<div class="outfit-font"><a href="../../contact.html">Contacting the IOCCC</a></div>
|
||||
<div class="outfit-font"><a href="./judges.html">The IOCCC Judges</a></div>
|
||||
<div class="outfit-font"><a href="./contact.html">Contacting the IOCCC</a></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<div class="header-mobile-menu">
|
||||
<button id="header-open-menu-button" class="topbar-mobile-menu">
|
||||
<svg
|
||||
class="mobile-menu-icon"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
viewBox="0 0 24 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
strokeWidth="2"
|
||||
d="M4 6h16M4 12h16M4 18h16"
|
||||
></path>
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
<button id="header-close-menu-button" class="hide-content">
|
||||
<svg
|
||||
class="mobile-menu-icon"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
viewBox="0 0 24 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
strokeWidth="2"
|
||||
d="M6 18L18 6M6 6l12 12"
|
||||
></path>
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
<div id="mobile-menu-panel" class="hide-content">
|
||||
<div class="mobile-menu-container">
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
Home
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./index.html">
|
||||
IOCCC Home
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./years.html">
|
||||
Winning Entries
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./authors.html">
|
||||
People who have won
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./location.html">
|
||||
Location of authors
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
News
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./news.html">
|
||||
IOCCC News
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./status.html">
|
||||
Contest status
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./next/index.html">
|
||||
Rules and Guidelines
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#submit">
|
||||
How to enter the IOCCC
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html">
|
||||
FAQ
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
Bugs
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./bugs.html">
|
||||
Bugs & (mis)features
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#fix_an_entry">
|
||||
Fixing IOCCC entries
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#fix_web_site">
|
||||
Fixing the web site
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#fix_author">
|
||||
Fixing author info
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./thanks-for-help.html">
|
||||
Thanks for the help
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
Judges
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./judges.html">
|
||||
The IOCCC Judges
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./contact.html">
|
||||
Contacting the IOCCC
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var headerOpenMenuButton = document.getElementById("header-open-menu-button");
|
||||
var headerCloseMenuButton = document.getElementById("header-close-menu-button");
|
||||
var mobileMenuPanel = document.getElementById("mobile-menu-panel");
|
||||
|
||||
headerOpenMenuButton.addEventListener("click", () => {
|
||||
headerOpenMenuButton.classList.remove("topbar-mobile-menu");
|
||||
headerOpenMenuButton.classList.add("hide-content");
|
||||
|
||||
headerCloseMenuButton.classList.remove("hide-content");
|
||||
headerCloseMenuButton.classList.add("topbar-mobile-menu");
|
||||
|
||||
mobileMenuPanel.classList.remove("hide-content");
|
||||
mobileMenuPanel.classList.add("topbar-mobile-panel");
|
||||
});
|
||||
|
||||
headerCloseMenuButton.addEventListener("click", () => {
|
||||
headerCloseMenuButton.classList.remove("topbar-mobile-menu");
|
||||
headerCloseMenuButton.classList.add("hide-content");
|
||||
|
||||
mobileMenuPanel.classList.add("hide-content");
|
||||
mobileMenuPanel.classList.remove("topbar-mobile-panel");
|
||||
|
||||
headerOpenMenuButton.classList.add("topbar-mobile-menu");
|
||||
headerOpenMenuButton.classList.remove("hide-content");
|
||||
});
|
||||
</script>
|
||||
|
||||
<!-- END: this line ends content from: inc/topbar.default.html -->
|
||||
<!-- START: this line starts content from: inc/header.default.html -->
|
||||
|
||||
@@ -216,7 +382,7 @@ doesn’t count whitespace in strings differently than whitespace outside of
|
||||
them.</p>
|
||||
<h3 id="user-modifiable-features">User-modifiable Features</h3>
|
||||
<p>The code can be user-modified simply by changing the build command line.
|
||||
The following symbols are defined in the <a href="Makefile">Makefile</a>:</p>
|
||||
The following symbols are defined in the <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/millsMakefile">Makefile</a>:</p>
|
||||
<ul>
|
||||
<li><p><code>-DLT=x1,y1,z1,x2,y2,z2,...</code> defines the coordinates of the lights in the
|
||||
scene. It should be a comma-separated list of coordinates <code>(x, y, z)</code>, three per
|
||||
@@ -231,7 +397,7 @@ The eye is looking at the origin <code>(0, 0, 0)</code>.</p></li>
|
||||
experience the server’s output. The Judges suggested that I instead restrict
|
||||
the bind to <code>INADDR_LOOPBACK</code> to reduce security alarms. As a compliant veteran
|
||||
of innumerable post-ship late feature additions, I have modified the
|
||||
<a href="Makefile">Makefile</a> to inject the new code without destroying the beautiful
|
||||
<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/millsMakefile">Makefile</a> to inject the new code without destroying the beautiful
|
||||
spherical symmetry of the source code. In addition, I have altered the word
|
||||
<code>sin_port</code> to the more family-friendly version <code>win_port</code> (via
|
||||
<code>-Dwin_port="sin_addr.s_addr=htonl(2130706433),R.sin_port"</code>) to protect against
|
||||
|
||||
@@ -107,7 +107,7 @@ If `-` is specified as a file name, `horizontal_cat` will read from `stdin`.
|
||||
Unlike `cat`, `horizontal_cat` loads all input to memory first. Thus you
|
||||
can specify `-` multiple times to get `stdin` multiplied horizontally. For
|
||||
example, if you have `seq(1)` in your shell, you can add line numbers to both
|
||||
sides of [misaka.c](misaka.c) like this:
|
||||
sides of [misaka.c](%%REPO_URL%%/2013/misaka/misaka.c) like this:
|
||||
|
||||
``` <!---sh-->
|
||||
seq -f ' %.0f ' 45 | ./horizontal_cat - misaka.c -
|
||||
@@ -144,7 +144,7 @@ enabled by concatenating the source code horizontally:
|
||||
|
||||
After `horizontal_cat` and `vertical_cat`, I thought, maybe all I really wanted
|
||||
was just more [cats](https://rationalwiki.org/wiki/Fun:Cat). So I implemented
|
||||
one more mode, this one is enabled by concatenating [misaka.c](misaka.c)
|
||||
one more mode, this one is enabled by concatenating [misaka.c](%%REPO_URL%%/2013/misaka/misaka.c)
|
||||
vertically:
|
||||
|
||||
``` <!---sh-->
|
||||
@@ -187,7 +187,7 @@ triangle like the following will not have horizontally expanded output:
|
||||
gcc misaka9.c -o same_as_long_cat
|
||||
```
|
||||
|
||||
Finally, if you lost track of how many [misaka.c](misaka.c) you have stacked
|
||||
Finally, if you lost track of how many [misaka.c](%%REPO_URL%%/2013/misaka/misaka.c) you have stacked
|
||||
together, you can feed the source to a
|
||||
[brainfuck](https://en.wikipedia.org/wiki/Brainfuck) interpreter to get an
|
||||
overview of how the programs are stacked. Example:
|
||||
@@ -261,7 +261,7 @@ does not output any irrelevant other warnings (verified on 4.6.3).
|
||||
Extra files included in my submission are informational only, they are not
|
||||
needed for the program to work.
|
||||
|
||||
* [bf.pl](bf.pl) - a perl brainfuck interpreter, in case you don't have one
|
||||
* [bf.pl](%%REPO_URL%%/2013/misaka/bf.pl) - a perl brainfuck interpreter, in case you don't have one
|
||||
handy.
|
||||
* [spoiler.html](spoiler.html) - making of this program.
|
||||
|
||||
|
||||
+186
-20
@@ -51,6 +51,8 @@
|
||||
IOCCC
|
||||
</div>
|
||||
|
||||
<div class="mobile-header-button-label">Click This</div>
|
||||
|
||||
<div class="topbar-items">
|
||||
<div class="item">
|
||||
<span class="item-header">
|
||||
@@ -58,10 +60,10 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../index.html">IOCCC Home</a></div>
|
||||
<div class="outfit-font"><a href="../../years.html">Winning Entries</a></div>
|
||||
<div class="outfit-font"><a href="../../authors.html">People who have won</a></div>
|
||||
<div class="outfit-font"><a href="../../location.html">Location of authors</a></div>
|
||||
<div class="outfit-font"><a href="./index.html">IOCCC Home</a></div>
|
||||
<div class="outfit-font"><a href="./years.html">Winning Entries</a></div>
|
||||
<div class="outfit-font"><a href="./authors.html">People who have won</a></div>
|
||||
<div class="outfit-font"><a href="./location.html">Location of authors</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -71,11 +73,11 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../news.html">IOCCC News</a></div>
|
||||
<div class="outfit-font"><a href="../../status.html">Contest status</a></div>
|
||||
<div class="outfit-font"><a href="../../next/index.html">Rules and Guidelines</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#submit">How to enter the IOCCC</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html">FAQ</a></div>
|
||||
<div class="outfit-font"><a href="./news.html">IOCCC News</a></div>
|
||||
<div class="outfit-font"><a href="./status.html">Contest status</a></div>
|
||||
<div class="outfit-font"><a href="./next/index.html">Rules and Guidelines</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#submit">How to enter the IOCCC</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html">FAQ</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -85,11 +87,11 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../bugs.html">Bugs & (mis)features</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#fix_an_entry">Fixing IOCCC entries</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#fix_web_site">Fixing the web site</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#fix_author">Fixing author info</a></div>
|
||||
<div class="outfit-font"><a href="../../thanks-for-help.html">Thanks for the help</a></div>
|
||||
<div class="outfit-font"><a href="./bugs.html">Bugs & (mis)features</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#fix_an_entry">Fixing IOCCC entries</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#fix_web_site">Fixing the web site</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#fix_author">Fixing author info</a></div>
|
||||
<div class="outfit-font"><a href="./thanks-for-help.html">Thanks for the help</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -99,15 +101,179 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../judges.html">The IOCCC Judges</a></div>
|
||||
<div class="outfit-font"><a href="../../contact.html">Contacting the IOCCC</a></div>
|
||||
<div class="outfit-font"><a href="./judges.html">The IOCCC Judges</a></div>
|
||||
<div class="outfit-font"><a href="./contact.html">Contacting the IOCCC</a></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<div class="header-mobile-menu">
|
||||
<button id="header-open-menu-button" class="topbar-mobile-menu">
|
||||
<svg
|
||||
class="mobile-menu-icon"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
viewBox="0 0 24 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
strokeWidth="2"
|
||||
d="M4 6h16M4 12h16M4 18h16"
|
||||
></path>
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
<button id="header-close-menu-button" class="hide-content">
|
||||
<svg
|
||||
class="mobile-menu-icon"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
viewBox="0 0 24 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
strokeWidth="2"
|
||||
d="M6 18L18 6M6 6l12 12"
|
||||
></path>
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
<div id="mobile-menu-panel" class="hide-content">
|
||||
<div class="mobile-menu-container">
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
Home
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./index.html">
|
||||
IOCCC Home
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./years.html">
|
||||
Winning Entries
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./authors.html">
|
||||
People who have won
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./location.html">
|
||||
Location of authors
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
News
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./news.html">
|
||||
IOCCC News
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./status.html">
|
||||
Contest status
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./next/index.html">
|
||||
Rules and Guidelines
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#submit">
|
||||
How to enter the IOCCC
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html">
|
||||
FAQ
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
Bugs
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./bugs.html">
|
||||
Bugs & (mis)features
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#fix_an_entry">
|
||||
Fixing IOCCC entries
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#fix_web_site">
|
||||
Fixing the web site
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#fix_author">
|
||||
Fixing author info
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./thanks-for-help.html">
|
||||
Thanks for the help
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
Judges
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./judges.html">
|
||||
The IOCCC Judges
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./contact.html">
|
||||
Contacting the IOCCC
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var headerOpenMenuButton = document.getElementById("header-open-menu-button");
|
||||
var headerCloseMenuButton = document.getElementById("header-close-menu-button");
|
||||
var mobileMenuPanel = document.getElementById("mobile-menu-panel");
|
||||
|
||||
headerOpenMenuButton.addEventListener("click", () => {
|
||||
headerOpenMenuButton.classList.remove("topbar-mobile-menu");
|
||||
headerOpenMenuButton.classList.add("hide-content");
|
||||
|
||||
headerCloseMenuButton.classList.remove("hide-content");
|
||||
headerCloseMenuButton.classList.add("topbar-mobile-menu");
|
||||
|
||||
mobileMenuPanel.classList.remove("hide-content");
|
||||
mobileMenuPanel.classList.add("topbar-mobile-panel");
|
||||
});
|
||||
|
||||
headerCloseMenuButton.addEventListener("click", () => {
|
||||
headerCloseMenuButton.classList.remove("topbar-mobile-menu");
|
||||
headerCloseMenuButton.classList.add("hide-content");
|
||||
|
||||
mobileMenuPanel.classList.add("hide-content");
|
||||
mobileMenuPanel.classList.remove("topbar-mobile-panel");
|
||||
|
||||
headerOpenMenuButton.classList.add("topbar-mobile-menu");
|
||||
headerOpenMenuButton.classList.remove("hide-content");
|
||||
});
|
||||
</script>
|
||||
|
||||
<!-- END: this line ends content from: inc/topbar.default.html -->
|
||||
<!-- START: this line starts content from: inc/header.default.html -->
|
||||
|
||||
@@ -213,7 +379,7 @@ original text alignments are preserved.</p>
|
||||
Unlike <code>cat</code>, <code>horizontal_cat</code> loads all input to memory first. Thus you
|
||||
can specify <code>-</code> multiple times to get <code>stdin</code> multiplied horizontally. For
|
||||
example, if you have <code>seq(1)</code> in your shell, you can add line numbers to both
|
||||
sides of <a href="misaka.c">misaka.c</a> like this:</p>
|
||||
sides of <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/misaka/misaka.c">misaka.c</a> like this:</p>
|
||||
<pre><code> seq -f ' %.0f ' 45 | ./horizontal_cat - misaka.c -</code></pre>
|
||||
<h3 id="vertical-cat">Vertical cat</h3>
|
||||
<p>Because <code>horizontal_cat</code> must know the maximum width of all files before
|
||||
@@ -233,7 +399,7 @@ enabled by concatenating the source code horizontally:</p>
|
||||
<h3 id="long-cat">Long cat</h3>
|
||||
<p>After <code>horizontal_cat</code> and <code>vertical_cat</code>, I thought, maybe all I really wanted
|
||||
was just more <a href="https://rationalwiki.org/wiki/Fun:Cat">cats</a>. So I implemented
|
||||
one more mode, this one is enabled by concatenating <a href="misaka.c">misaka.c</a>
|
||||
one more mode, this one is enabled by concatenating <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/misaka/misaka.c">misaka.c</a>
|
||||
vertically:</p>
|
||||
<pre><code> ./vertical_cat misaka.c misaka.c > misaka3.c
|
||||
gcc misaka3.c -o long_cat
|
||||
@@ -260,7 +426,7 @@ by concatenating files horizontally:</p>
|
||||
triangle like the following will not have horizontally expanded output:</p>
|
||||
<pre><code> ./horizontal_cat misaka.c misaka.c | ./vertical_cat misaka.c - > misaka9.c
|
||||
gcc misaka9.c -o same_as_long_cat</code></pre>
|
||||
<p>Finally, if you lost track of how many <a href="misaka.c">misaka.c</a> you have stacked
|
||||
<p>Finally, if you lost track of how many <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/misaka/misaka.c">misaka.c</a> you have stacked
|
||||
together, you can feed the source to a
|
||||
<a href="https://en.wikipedia.org/wiki/Brainfuck">brainfuck</a> interpreter to get an
|
||||
overview of how the programs are stacked. Example:</p>
|
||||
@@ -311,7 +477,7 @@ does not output any irrelevant other warnings (verified on 4.6.3).</p>
|
||||
<p>Extra files included in my submission are informational only, they are not
|
||||
needed for the program to work.</p>
|
||||
<ul>
|
||||
<li><a href="bf.pl">bf.pl</a> - a perl brainfuck interpreter, in case you don’t have one
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/misaka/bf.pl">bf.pl</a> - a perl brainfuck interpreter, in case you don’t have one
|
||||
handy.</li>
|
||||
<li><a href="spoiler.html">spoiler.html</a> - making of this program.</li>
|
||||
</ul>
|
||||
|
||||
+182
-16
@@ -51,6 +51,8 @@
|
||||
IOCCC
|
||||
</div>
|
||||
|
||||
<div class="mobile-header-button-label">Click This</div>
|
||||
|
||||
<div class="topbar-items">
|
||||
<div class="item">
|
||||
<span class="item-header">
|
||||
@@ -58,10 +60,10 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../index.html">IOCCC Home</a></div>
|
||||
<div class="outfit-font"><a href="../../years.html">Winning Entries</a></div>
|
||||
<div class="outfit-font"><a href="../../authors.html">People who have won</a></div>
|
||||
<div class="outfit-font"><a href="../../location.html">Location of authors</a></div>
|
||||
<div class="outfit-font"><a href="./index.html">IOCCC Home</a></div>
|
||||
<div class="outfit-font"><a href="./years.html">Winning Entries</a></div>
|
||||
<div class="outfit-font"><a href="./authors.html">People who have won</a></div>
|
||||
<div class="outfit-font"><a href="./location.html">Location of authors</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -71,11 +73,11 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../news.html">IOCCC News</a></div>
|
||||
<div class="outfit-font"><a href="../../status.html">Contest status</a></div>
|
||||
<div class="outfit-font"><a href="../../next/index.html">Rules and Guidelines</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#submit">How to enter the IOCCC</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html">FAQ</a></div>
|
||||
<div class="outfit-font"><a href="./news.html">IOCCC News</a></div>
|
||||
<div class="outfit-font"><a href="./status.html">Contest status</a></div>
|
||||
<div class="outfit-font"><a href="./next/index.html">Rules and Guidelines</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#submit">How to enter the IOCCC</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html">FAQ</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -85,11 +87,11 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../bugs.html">Bugs & (mis)features</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#fix_an_entry">Fixing IOCCC entries</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#fix_web_site">Fixing the web site</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#fix_author">Fixing author info</a></div>
|
||||
<div class="outfit-font"><a href="../../thanks-for-help.html">Thanks for the help</a></div>
|
||||
<div class="outfit-font"><a href="./bugs.html">Bugs & (mis)features</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#fix_an_entry">Fixing IOCCC entries</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#fix_web_site">Fixing the web site</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#fix_author">Fixing author info</a></div>
|
||||
<div class="outfit-font"><a href="./thanks-for-help.html">Thanks for the help</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -99,15 +101,179 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../judges.html">The IOCCC Judges</a></div>
|
||||
<div class="outfit-font"><a href="../../contact.html">Contacting the IOCCC</a></div>
|
||||
<div class="outfit-font"><a href="./judges.html">The IOCCC Judges</a></div>
|
||||
<div class="outfit-font"><a href="./contact.html">Contacting the IOCCC</a></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<div class="header-mobile-menu">
|
||||
<button id="header-open-menu-button" class="topbar-mobile-menu">
|
||||
<svg
|
||||
class="mobile-menu-icon"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
viewBox="0 0 24 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
strokeWidth="2"
|
||||
d="M4 6h16M4 12h16M4 18h16"
|
||||
></path>
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
<button id="header-close-menu-button" class="hide-content">
|
||||
<svg
|
||||
class="mobile-menu-icon"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
viewBox="0 0 24 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
strokeWidth="2"
|
||||
d="M6 18L18 6M6 6l12 12"
|
||||
></path>
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
<div id="mobile-menu-panel" class="hide-content">
|
||||
<div class="mobile-menu-container">
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
Home
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./index.html">
|
||||
IOCCC Home
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./years.html">
|
||||
Winning Entries
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./authors.html">
|
||||
People who have won
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./location.html">
|
||||
Location of authors
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
News
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./news.html">
|
||||
IOCCC News
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./status.html">
|
||||
Contest status
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./next/index.html">
|
||||
Rules and Guidelines
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#submit">
|
||||
How to enter the IOCCC
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html">
|
||||
FAQ
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
Bugs
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./bugs.html">
|
||||
Bugs & (mis)features
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#fix_an_entry">
|
||||
Fixing IOCCC entries
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#fix_web_site">
|
||||
Fixing the web site
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#fix_author">
|
||||
Fixing author info
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./thanks-for-help.html">
|
||||
Thanks for the help
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
Judges
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./judges.html">
|
||||
The IOCCC Judges
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./contact.html">
|
||||
Contacting the IOCCC
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var headerOpenMenuButton = document.getElementById("header-open-menu-button");
|
||||
var headerCloseMenuButton = document.getElementById("header-close-menu-button");
|
||||
var mobileMenuPanel = document.getElementById("mobile-menu-panel");
|
||||
|
||||
headerOpenMenuButton.addEventListener("click", () => {
|
||||
headerOpenMenuButton.classList.remove("topbar-mobile-menu");
|
||||
headerOpenMenuButton.classList.add("hide-content");
|
||||
|
||||
headerCloseMenuButton.classList.remove("hide-content");
|
||||
headerCloseMenuButton.classList.add("topbar-mobile-menu");
|
||||
|
||||
mobileMenuPanel.classList.remove("hide-content");
|
||||
mobileMenuPanel.classList.add("topbar-mobile-panel");
|
||||
});
|
||||
|
||||
headerCloseMenuButton.addEventListener("click", () => {
|
||||
headerCloseMenuButton.classList.remove("topbar-mobile-menu");
|
||||
headerCloseMenuButton.classList.add("hide-content");
|
||||
|
||||
mobileMenuPanel.classList.add("hide-content");
|
||||
mobileMenuPanel.classList.remove("topbar-mobile-panel");
|
||||
|
||||
headerOpenMenuButton.classList.add("topbar-mobile-menu");
|
||||
headerOpenMenuButton.classList.remove("hide-content");
|
||||
});
|
||||
</script>
|
||||
|
||||
<!-- END: this line ends content from: inc/topbar.default.html -->
|
||||
<!-- START: this line starts content from: inc/header.default.html -->
|
||||
|
||||
|
||||
+182
-16
@@ -51,6 +51,8 @@
|
||||
IOCCC
|
||||
</div>
|
||||
|
||||
<div class="mobile-header-button-label">Click This</div>
|
||||
|
||||
<div class="topbar-items">
|
||||
<div class="item">
|
||||
<span class="item-header">
|
||||
@@ -58,10 +60,10 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../index.html">IOCCC Home</a></div>
|
||||
<div class="outfit-font"><a href="../../years.html">Winning Entries</a></div>
|
||||
<div class="outfit-font"><a href="../../authors.html">People who have won</a></div>
|
||||
<div class="outfit-font"><a href="../../location.html">Location of authors</a></div>
|
||||
<div class="outfit-font"><a href="./index.html">IOCCC Home</a></div>
|
||||
<div class="outfit-font"><a href="./years.html">Winning Entries</a></div>
|
||||
<div class="outfit-font"><a href="./authors.html">People who have won</a></div>
|
||||
<div class="outfit-font"><a href="./location.html">Location of authors</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -71,11 +73,11 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../news.html">IOCCC News</a></div>
|
||||
<div class="outfit-font"><a href="../../status.html">Contest status</a></div>
|
||||
<div class="outfit-font"><a href="../../next/index.html">Rules and Guidelines</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#submit">How to enter the IOCCC</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html">FAQ</a></div>
|
||||
<div class="outfit-font"><a href="./news.html">IOCCC News</a></div>
|
||||
<div class="outfit-font"><a href="./status.html">Contest status</a></div>
|
||||
<div class="outfit-font"><a href="./next/index.html">Rules and Guidelines</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#submit">How to enter the IOCCC</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html">FAQ</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -85,11 +87,11 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../bugs.html">Bugs & (mis)features</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#fix_an_entry">Fixing IOCCC entries</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#fix_web_site">Fixing the web site</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#fix_author">Fixing author info</a></div>
|
||||
<div class="outfit-font"><a href="../../thanks-for-help.html">Thanks for the help</a></div>
|
||||
<div class="outfit-font"><a href="./bugs.html">Bugs & (mis)features</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#fix_an_entry">Fixing IOCCC entries</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#fix_web_site">Fixing the web site</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#fix_author">Fixing author info</a></div>
|
||||
<div class="outfit-font"><a href="./thanks-for-help.html">Thanks for the help</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -99,15 +101,179 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../judges.html">The IOCCC Judges</a></div>
|
||||
<div class="outfit-font"><a href="../../contact.html">Contacting the IOCCC</a></div>
|
||||
<div class="outfit-font"><a href="./judges.html">The IOCCC Judges</a></div>
|
||||
<div class="outfit-font"><a href="./contact.html">Contacting the IOCCC</a></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<div class="header-mobile-menu">
|
||||
<button id="header-open-menu-button" class="topbar-mobile-menu">
|
||||
<svg
|
||||
class="mobile-menu-icon"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
viewBox="0 0 24 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
strokeWidth="2"
|
||||
d="M4 6h16M4 12h16M4 18h16"
|
||||
></path>
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
<button id="header-close-menu-button" class="hide-content">
|
||||
<svg
|
||||
class="mobile-menu-icon"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
viewBox="0 0 24 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
strokeWidth="2"
|
||||
d="M6 18L18 6M6 6l12 12"
|
||||
></path>
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
<div id="mobile-menu-panel" class="hide-content">
|
||||
<div class="mobile-menu-container">
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
Home
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./index.html">
|
||||
IOCCC Home
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./years.html">
|
||||
Winning Entries
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./authors.html">
|
||||
People who have won
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./location.html">
|
||||
Location of authors
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
News
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./news.html">
|
||||
IOCCC News
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./status.html">
|
||||
Contest status
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./next/index.html">
|
||||
Rules and Guidelines
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#submit">
|
||||
How to enter the IOCCC
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html">
|
||||
FAQ
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
Bugs
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./bugs.html">
|
||||
Bugs & (mis)features
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#fix_an_entry">
|
||||
Fixing IOCCC entries
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#fix_web_site">
|
||||
Fixing the web site
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#fix_author">
|
||||
Fixing author info
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./thanks-for-help.html">
|
||||
Thanks for the help
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
Judges
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./judges.html">
|
||||
The IOCCC Judges
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./contact.html">
|
||||
Contacting the IOCCC
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var headerOpenMenuButton = document.getElementById("header-open-menu-button");
|
||||
var headerCloseMenuButton = document.getElementById("header-close-menu-button");
|
||||
var mobileMenuPanel = document.getElementById("mobile-menu-panel");
|
||||
|
||||
headerOpenMenuButton.addEventListener("click", () => {
|
||||
headerOpenMenuButton.classList.remove("topbar-mobile-menu");
|
||||
headerOpenMenuButton.classList.add("hide-content");
|
||||
|
||||
headerCloseMenuButton.classList.remove("hide-content");
|
||||
headerCloseMenuButton.classList.add("topbar-mobile-menu");
|
||||
|
||||
mobileMenuPanel.classList.remove("hide-content");
|
||||
mobileMenuPanel.classList.add("topbar-mobile-panel");
|
||||
});
|
||||
|
||||
headerCloseMenuButton.addEventListener("click", () => {
|
||||
headerCloseMenuButton.classList.remove("topbar-mobile-menu");
|
||||
headerCloseMenuButton.classList.add("hide-content");
|
||||
|
||||
mobileMenuPanel.classList.add("hide-content");
|
||||
mobileMenuPanel.classList.remove("topbar-mobile-panel");
|
||||
|
||||
headerOpenMenuButton.classList.add("topbar-mobile-menu");
|
||||
headerOpenMenuButton.classList.remove("hide-content");
|
||||
});
|
||||
</script>
|
||||
|
||||
<!-- END: this line ends content from: inc/topbar.default.html -->
|
||||
<!-- START: this line starts content from: inc/header.default.html -->
|
||||
|
||||
|
||||
+182
-16
@@ -51,6 +51,8 @@
|
||||
IOCCC
|
||||
</div>
|
||||
|
||||
<div class="mobile-header-button-label">Click This</div>
|
||||
|
||||
<div class="topbar-items">
|
||||
<div class="item">
|
||||
<span class="item-header">
|
||||
@@ -58,10 +60,10 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../index.html">IOCCC Home</a></div>
|
||||
<div class="outfit-font"><a href="../../years.html">Winning Entries</a></div>
|
||||
<div class="outfit-font"><a href="../../authors.html">People who have won</a></div>
|
||||
<div class="outfit-font"><a href="../../location.html">Location of authors</a></div>
|
||||
<div class="outfit-font"><a href="./index.html">IOCCC Home</a></div>
|
||||
<div class="outfit-font"><a href="./years.html">Winning Entries</a></div>
|
||||
<div class="outfit-font"><a href="./authors.html">People who have won</a></div>
|
||||
<div class="outfit-font"><a href="./location.html">Location of authors</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -71,11 +73,11 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../news.html">IOCCC News</a></div>
|
||||
<div class="outfit-font"><a href="../../status.html">Contest status</a></div>
|
||||
<div class="outfit-font"><a href="../../next/index.html">Rules and Guidelines</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#submit">How to enter the IOCCC</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html">FAQ</a></div>
|
||||
<div class="outfit-font"><a href="./news.html">IOCCC News</a></div>
|
||||
<div class="outfit-font"><a href="./status.html">Contest status</a></div>
|
||||
<div class="outfit-font"><a href="./next/index.html">Rules and Guidelines</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#submit">How to enter the IOCCC</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html">FAQ</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -85,11 +87,11 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../bugs.html">Bugs & (mis)features</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#fix_an_entry">Fixing IOCCC entries</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#fix_web_site">Fixing the web site</a></div>
|
||||
<div class="outfit-font"><a href="../../faq.html#fix_author">Fixing author info</a></div>
|
||||
<div class="outfit-font"><a href="../../thanks-for-help.html">Thanks for the help</a></div>
|
||||
<div class="outfit-font"><a href="./bugs.html">Bugs & (mis)features</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#fix_an_entry">Fixing IOCCC entries</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#fix_web_site">Fixing the web site</a></div>
|
||||
<div class="outfit-font"><a href="./faq.html#fix_author">Fixing author info</a></div>
|
||||
<div class="outfit-font"><a href="./thanks-for-help.html">Thanks for the help</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -99,15 +101,179 @@
|
||||
</span>
|
||||
|
||||
<div class="sub-item">
|
||||
<div class="outfit-font"><a href="../../judges.html">The IOCCC Judges</a></div>
|
||||
<div class="outfit-font"><a href="../../contact.html">Contacting the IOCCC</a></div>
|
||||
<div class="outfit-font"><a href="./judges.html">The IOCCC Judges</a></div>
|
||||
<div class="outfit-font"><a href="./contact.html">Contacting the IOCCC</a></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<div class="header-mobile-menu">
|
||||
<button id="header-open-menu-button" class="topbar-mobile-menu">
|
||||
<svg
|
||||
class="mobile-menu-icon"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
viewBox="0 0 24 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
strokeWidth="2"
|
||||
d="M4 6h16M4 12h16M4 18h16"
|
||||
></path>
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
<button id="header-close-menu-button" class="hide-content">
|
||||
<svg
|
||||
class="mobile-menu-icon"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
viewBox="0 0 24 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
strokeWidth="2"
|
||||
d="M6 18L18 6M6 6l12 12"
|
||||
></path>
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
<div id="mobile-menu-panel" class="hide-content">
|
||||
<div class="mobile-menu-container">
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
Home
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./index.html">
|
||||
IOCCC Home
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./years.html">
|
||||
Winning Entries
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./authors.html">
|
||||
People who have won
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./location.html">
|
||||
Location of authors
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
News
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./news.html">
|
||||
IOCCC News
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./status.html">
|
||||
Contest status
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./next/index.html">
|
||||
Rules and Guidelines
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#submit">
|
||||
How to enter the IOCCC
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html">
|
||||
FAQ
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
Bugs
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./bugs.html">
|
||||
Bugs & (mis)features
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#fix_an_entry">
|
||||
Fixing IOCCC entries
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#fix_web_site">
|
||||
Fixing the web site
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./faq.html#fix_author">
|
||||
Fixing author info
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./thanks-for-help.html">
|
||||
Thanks for the help
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mobile-menu-wrapper">
|
||||
<div class="mobile-menu-item">
|
||||
Judges
|
||||
</div>
|
||||
|
||||
<div class="mobile-submenu-wrapper">
|
||||
<a class="mobile-submenu-item" href="./judges.html">
|
||||
The IOCCC Judges
|
||||
</a>
|
||||
|
||||
<a class="mobile-submenu-item" href="./contact.html">
|
||||
Contacting the IOCCC
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var headerOpenMenuButton = document.getElementById("header-open-menu-button");
|
||||
var headerCloseMenuButton = document.getElementById("header-close-menu-button");
|
||||
var mobileMenuPanel = document.getElementById("mobile-menu-panel");
|
||||
|
||||
headerOpenMenuButton.addEventListener("click", () => {
|
||||
headerOpenMenuButton.classList.remove("topbar-mobile-menu");
|
||||
headerOpenMenuButton.classList.add("hide-content");
|
||||
|
||||
headerCloseMenuButton.classList.remove("hide-content");
|
||||
headerCloseMenuButton.classList.add("topbar-mobile-menu");
|
||||
|
||||
mobileMenuPanel.classList.remove("hide-content");
|
||||
mobileMenuPanel.classList.add("topbar-mobile-panel");
|
||||
});
|
||||
|
||||
headerCloseMenuButton.addEventListener("click", () => {
|
||||
headerCloseMenuButton.classList.remove("topbar-mobile-menu");
|
||||
headerCloseMenuButton.classList.add("hide-content");
|
||||
|
||||
mobileMenuPanel.classList.add("hide-content");
|
||||
mobileMenuPanel.classList.remove("topbar-mobile-panel");
|
||||
|
||||
headerOpenMenuButton.classList.add("topbar-mobile-menu");
|
||||
headerOpenMenuButton.classList.remove("hide-content");
|
||||
});
|
||||
</script>
|
||||
|
||||
<!-- END: this line ends content from: inc/topbar.default.html -->
|
||||
<!-- START: this line starts content from: inc/header.default.html -->
|
||||
|
||||
|
||||
Reference in new issue
Block a user