force use of pandoc version >= 3.1.12.2

The `bin/pandoc-wrapper.sh` tool will verify that the ssytem
has a recent enough version of `pandoc(1)`.

We explain why we insist on `pandoc(1)`. version >= 3.1.12.2
in comments where the $PANDOC_MIN_VERSION is set.

Added `--wrap=preserve` as a default argument to `pandoc(1)`.
While this change will impact every HTML file generated,
we believe this will improve the ability of someone to look
at the generated HTML and correlate with the original markdown.

Changed `bin/pandoc-wrapper.sh` VERSION from "1.4.2 2024-03-17"
to "1.4.3 2024-03-18".

Performed `make www` to achieve all of the above and to generate
HTML using the new  `--wrap=preserve` `pandoc(1)` mode.
This commit is contained in:
Landon Curt Noll committed 2024-03-18 01:26:39 -07:00
1 parent 9eb7a54e9f
commit b0b212acb1
402 files changed
+37061 -55132

No files matched your search

+84 -135
View File
@@ -141,8 +141,8 @@ Location: <a href="../../location.html#JP">JP</a> - <em>Japan</em>
<h2 id="to-build">To build:</h2>
<div class="sourceCode" id="cb1"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span></span></code></pre></div>
<p>There is an alternate version provided by the author. See <a
href="#alternate-code">Alternate code</a> below.</p>
<p>There is an alternate version provided by the author. See <a href="#alternate-code">Alternate
code</a> below.</p>
<h2 id="to-use">To use:</h2>
<div class="sourceCode" id="cb2"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="co"># IMPORTANT for macOS: run under Terminal.app</span></span>
<span id="cb2-2"><a href="#cb2-2" aria-hidden="true" tabindex="-1"></a></span>
@@ -158,206 +158,155 @@ href="#alternate-code">Alternate code</a> below.</p>
<span id="cb3-8"><a href="#cb3-8" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb3-9"><a href="#cb3-9" aria-hidden="true" tabindex="-1"></a><span class="ex">./prog</span> unwinnable.txt</span></code></pre></div>
<h2 id="alternate-code">Alternate code:</h2>
<p>An alternate version of this entry, <a
href="prog.alt.c">prog.alt.c</a>, is provided. This alternate code lacks
the additional rule to flag all unprobed cells. See the Author’s remarks
for more details.</p>
<p>An alternate version of this entry, <a href="prog.alt.c">prog.alt.c</a>, is provided. This
alternate code lacks the additional rule to flag all unprobed cells. See the
Author’s remarks for more details.</p>
<h3 id="alternate-build">Alternate build:</h3>
<div class="sourceCode" id="cb4"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span> alt</span></code></pre></div>
<h3 id="alternate-use">Alternate use:</h3>
<p>Use <code>prog.alt</code> as you would <code>prog</code> above.</p>
<h2 id="judges-remarks">Judges’ remarks:</h2>
<p>When playing <a
href="https://en.wikipedia.org/wiki/Minesweeper_(video_game)">Minesweeper</a>,
a misclick might ruin a game, so why not leave the routine to the
computer? This program automatically uncovers mines according to several
rules, and leaves guessing (and applying the most straightforward of the
rules – just for fun, perhaps?) to the user.</p>
<p>Try creating your own input files according to the author’s remarks.
Did you encounter any problems?</p>
<p>The submission was in violation of the “2053” size rule by one
character, likely a late typo. It was easy to fix.</p>
<p>When playing
<a href="https://en.wikipedia.org/wiki/Minesweeper_(video_game)">Minesweeper</a>, a
misclick might ruin a game, so why not leave the routine to the computer? This
program automatically uncovers mines according to several rules, and leaves
guessing (and applying the most straightforward of the rules – just for fun,
perhaps?) to the user.</p>
<p>Try creating your own input files according to the author’s remarks. Did you
encounter any problems?</p>
<p>The submission was in violation of the “2053” size rule by one character, likely
a late typo. It was easy to fix.</p>
<h3 id="for-macos">For macOS:</h3>
<p>We observe that this entry may not work under macOS using iTerm2.
Users on macOS might want to run this entry under the macOS Terminal,
which is located in
<code>/System/Applications/Utilities/Terminal.app</code>.</p>
which is located in <code>/System/Applications/Utilities/Terminal.app</code>.</p>
<h2 id="authors-remarks">Author’s remarks:</h2>
<h3 id="semi-automatic-minesweeper">Semi-automatic Minesweeper:</h3>
<p>Minesweeper is a game to sweep mines, as you know. The task consists
of two parts:</p>
<p>Minesweeper is a game to sweep mines, as you know. The task consists of two parts:</p>
<ol start="0" type="1">
<li>Choose a random cell based on your sixth sense.</li>
<li>Identify a non-mine cell based on logical inference.</li>
</ol>
<p>However, (1) is error-prone, and a waste of time. You must use a
computer to do such a boring task!</p>
<p>This program is a semi-automatic minesweeper which does part (1)
automatically. All you have to do is (0). You can test if you are lucky
or not.</p>
<p>However, (1) is error-prone, and a waste of time. You must use a computer to do
such a boring task!</p>
<p>This program is a semi-automatic minesweeper which does part (1) automatically.
All you have to do is (0). You can test if you are lucky or not.</p>
<h3 id="how-to-use">How to use:</h3>
<p>It uses ncurses:</p>
<div class="sourceCode" id="cb5"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a><span class="fu">gcc</span> <span class="at">-o</span> prog prog.c <span class="at">-lncurses</span></span>
<span id="cb5-2"><a href="#cb5-2" aria-hidden="true" tabindex="-1"></a><span class="ex">./prog</span></span></code></pre></div>
<p>You will see a terminal-wide field of a minesweeper. Probe a cell by
mouse click.</p>
<p>If a cell turns out to have a mine (or not), the program determines
whether its neighbors have a mine or not, and automatically probes (or
flags) the cell.</p>
<p>You will see a terminal-wide field of a minesweeper. Probe a cell by mouse
click.</p>
<p>If a cell turns out to have a mine (or not), the program determines whether its
neighbors have a mine or not, and automatically probes (or flags) the cell.</p>
<h3 id="keyboard-commands">Keyboard commands:</h3>
<ul>
<li><code>r</code>: new game (You can also click the smiley face at the
top line.).</li>
<li><code>r</code>: new game (You can also click the smiley face at the top line.).</li>
<li><code>q</code>: quit.</li>
</ul>
<p>Input is case-sensitive.</p>
<h3 id="internals">Internals:</h3>
<p>The program uses four types of local inference:</p>
<h4 id="rule-1">Rule 1:</h4>
<p>If the number of a cell is equal to the count of the flagged
neighbors, all the unprobed neighbors are probed.</p>
<p>If the number of a cell is equal to the count of the flagged neighbors, all the
unprobed neighbors are probed.</p>
<p>Example:</p>
<pre><code>? ? ? . . .
? 3 ? =&gt; . 3 .
! ! ! ! ! !</code></pre>
<p>Note that <code>?</code> is an unprobed cell (it is unknown whether
the cell has a mine or not); <code>!</code> is a flagged cell (it is
already known that the cell has a mine); and <code>.</code> is a probed
cell (it is already known that the cell has no mine).</p>
<p>Note that <code>?</code> is an unprobed cell (it is unknown whether the cell has a mine or
not); <code>!</code> is a flagged cell (it is already known that the cell has a mine); and
<code>.</code> is a probed cell (it is already known that the cell has no mine).</p>
<h4 id="rule-2">Rule 2:</h4>
<p>If the number of a cell is equal to the count of the unprobed or
flagged neighbors, all the unprobed neighbors are flagged.</p>
<p>If the number of a cell is equal to the count of the unprobed or flagged
neighbors, all the unprobed neighbors are flagged.</p>
<p>Example:</p>
<pre><code>. ? ? . ! !
. 4 ? =&gt; . 4 !
. 2 ! . 2 !</code></pre>
<h4 id="rule-3">Rule 3:</h4>
<p>Consider two number cells <code>A</code> and <code>B</code>. If
<code>A</code> is equal to the difference of <code>B</code> and the
count of <code>B</code>’s unprobed and flagged neighbors that are not
<code>A</code>’s neighbors, all <code>A</code>’s unprobed neighbors that
are not <code>B</code>’s neighbors are probed.</p>
<p>Consider two number cells <code>A</code> and <code>B</code>. If <code>A</code> is equal to the difference of <code>B</code>
and the count of <code>B</code>’s unprobed and flagged neighbors that are not <code>A</code>’s
neighbors, all <code>A</code>’s unprobed neighbors that are not <code>B</code>’s neighbors are probed.</p>
<p>Example:</p>
<pre><code>? ? ? . . .
? 1 ? ? =&gt; . 1 ? ?
? ? 4 . . ? 4 .
? . ! ? . !</code></pre>
<p><code>A</code> and <code>B</code> are probed cells whose numbers are,
respectively, 1 and 4. The count of <code>B</code>’s unprobed and
flagged neighbors that are not <code>A</code>’s neighbors is three (one
<code>!</code> and two <code>?</code>s). Since
<code>A == B - count</code> (<code>1 == 4 - 3</code>), the left and top
unprobed cells are probed.</p>
<p><code>A</code> and <code>B</code> are probed cells whose numbers are, respectively, 1 and 4. The
count of <code>B</code>’s unprobed and flagged neighbors that are not <code>A</code>’s neighbors is
three (one <code>!</code> and two <code>?</code>s). Since <code>A == B - count</code> (<code>1 == 4 - 3</code>), the left
and top unprobed cells are probed.</p>
<h4 id="rule-4">Rule 4</h4>
<p>Consider two number cells <code>A</code> and <code>B</code>. If
<code>B</code> is equal to the difference of <code>A</code> and the
count of <code>A</code>’s unprobed and flagged neighbors that are not
<code>B</code>’s neighbors, all of <code>A</code>’s unprobed neighbors
that are not <code>B</code>’s neighbors are flagged.</p>
<p>Consider two number cells <code>A</code> and <code>B</code>. If <code>B</code> is equal to the difference of <code>A</code>
and the count of <code>A</code>’s unprobed and flagged neighbors that are not <code>B</code>’s
neighbors, all of <code>A</code>’s unprobed neighbors that are not <code>B</code>’s neighbors are
flagged.</p>
<pre><code>? ? ? ? ! ? ? ?
? 3 1 2 =&gt; ! 3 1 2
2 2 . . 2 2 . .</code></pre>
<p><code>A</code> and <code>B</code> are probed cells whose numbers are,
respectively, 3 and 1. The count of <code>A</code>’s unprobed and
flagged neighbors that are not <code>B</code>’s neighbors is two (left
<code>?</code>s). Since <code>B == A - count</code>
(<code>1 == 3 - 2</code>), the left unprobed cells are flagged.</p>
<p><code>A</code> and <code>B</code> are probed cells whose numbers are, respectively, 3 and 1. The
count of <code>A</code>’s unprobed and flagged neighbors that are not <code>B</code>’s neighbors is
two (left <code>?</code>s). Since <code>B == A - count</code> (<code>1 == 3 - 2</code>), the left unprobed cells
are flagged.</p>
<h3 id="note">Note</h3>
<p>Interestingly, these complex rules can be integrated to one simple
rule. Analyze the code.</p>
<p>Interestingly, these complex rules can be integrated to one simple rule.
Analyze the code.</p>
<h3 id="one-more-thing">One more thing</h3>
<p>You can also play with a prepared map.</p>
<div class="sourceCode" id="cb10"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb10-1"><a href="#cb10-1" aria-hidden="true" tabindex="-1"></a> <span class="ex">./prog</span> ioccc.txt</span></code></pre></div>
<div class="sourceCode" id="cb10"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb10-1"><a href="#cb10-1" aria-hidden="true" tabindex="-1"></a> <span class="ex">./prog</span> ioccc.txt</span></code></pre></div>
<p>The format of the text is:</p>
<pre><code>width height number-of-mines priorities-of-each-cell...</code></pre>
<p>There are mines in a cell whose “priorities-of-each-cell” is less
than “number-of-mines”. (But the mine in the first-clicked cell is
removed.)</p>
<p>There are mines in a cell whose “priorities-of-each-cell” is less than
“number-of-mines”. (But the mine in the first-clicked cell is removed.)</p>
<h3 id="bug-fixes-and-credits">Bug fixes and Credits</h3>
<p>The judges pointed out a bug of the original version that I submitted
(<a href="prog.alt.c">prog.alt.c</a>). Because this program does not
provide a feature to flag unprobed cells manually, we can do nothing if
the number of unprobed cells are equal to the number of mines remaining;
<a href="unwinnable.txt">unwinnable.txt</a> is an example for such a
case.</p>
<p>Thus, I implemented an additional rule to flag all unprobed cells in
such a case into the final version (<a href="prog.c">prog.c</a>).</p>
<p><a href="../../authors.html#Ilya_Kurdyukov">Ilya Kurdyukov</a> also
pointed out a warning “ignoring return value of ‘fscanf’” only when
<code>-O3</code> is used. So I changed the code a little to pretend to
use the return value of <code>fscanf(3)</code>.</p>
<p><a href="../../authors.html#Don_Yang">Don Yang</a> (omoikane)
contributed another example map <a href="megumin.txt">megumin.txt</a>
which is the Explosion Arch-Wizard from KonoSuba.</p>
<h2 id="copyright-and-cc-by-sa-4.0-license">Copyright and CC BY-SA 4.0
License:</h2>
<p>This file is Copyright (c) 2023 by Landon Curt Noll. All Rights
Reserved. You are free to share and adapt this file under the terms of
this license:</p>
(<a href="prog.alt.c">prog.alt.c</a>). Because this program does not provide a feature to
flag unprobed cells manually, we can do nothing if the number of unprobed cells
are equal to the number of mines remaining; <a href="unwinnable.txt">unwinnable.txt</a> is
an example for such a case.</p>
<p>Thus, I implemented an additional rule to flag all unprobed cells in such a case
into the final version (<a href="prog.c">prog.c</a>).</p>
<p><a href="../../authors.html#Ilya_Kurdyukov">Ilya Kurdyukov</a> also pointed out a warning
“ignoring return value of ‘fscanf’” only when <code>-O3</code> is used. So I changed the
code a little to pretend to use the return value of <code>fscanf(3)</code>.</p>
<p><a href="../../authors.html#Don_Yang">Don Yang</a> (omoikane) contributed another example map
<a href="megumin.txt">megumin.txt</a> which is the Explosion Arch-Wizard from KonoSuba.</p>
<h2 id="copyright-and-cc-by-sa-4.0-license">Copyright and CC BY-SA 4.0 License:</h2>
<p>This file is Copyright (c) 2023 by Landon Curt Noll. All Rights Reserved.
You are free to share and adapt this file under the terms of this license:</p>
<pre><code>Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)</code></pre>
<p>For more information, see:
https://creativecommons.org/licenses/by-sa/4.0/</p>
<p>For more information, see: https://creativecommons.org/licenses/by-sa/4.0/</p>
<!-- END: this line ends content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<!-- START: this line starts content for HTML phase 22 by: bin/output-index-inventory.sh via bin/md2html.sh -->
<!-- START: this line starts content generated by: bin/output-index-inventory.sh -->
<h1 id="inventory-for-2020endoh1"><a name="inventory"></a>Inventory for
2020/endoh1</h1>
<h1 id="inventory-for-2020endoh1"><a name="inventory"></a>Inventory for 2020/endoh1</h1>
<p><a href="#top">Jump to top</a></p>
<h2 id="primary-files">Primary files</h2>
<ul>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/endoh1/prog.c">prog.c</a>
- entry source</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/endoh1/Makefile">Makefile</a>
- entry Makefile</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/endoh1/prog.alt.c">prog.alt.c</a>
- alternative source</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/endoh1/prog.orig.c">prog.orig.c</a>
- original source</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/endoh1/hilbert16x8.txt">hilbert16x8.txt</a>
- gameplay map</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/endoh1/hilbert2x2.txt">hilbert2x2.txt</a>
- gameplay map</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/endoh1/hilbert4x4.txt">hilbert4x4.txt</a>
- gameplay map</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/endoh1/hilbert8x8.txt">hilbert8x8.txt</a>
- gameplay map</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/endoh1/ioccc.txt">ioccc.txt</a>
- gameplay map</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/endoh1/megumin.txt">megumin.txt</a>
- gameplay map</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/endoh1/unwinnable.txt">unwinnable.txt</a>
- gameplay map</li>
<li><a href="2020_endoh1.tar.bz2">2020_endoh1.tar.bz2</a> - download
entry source</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/endoh1/prog.c">prog.c</a> - entry source</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/endoh1/Makefile">Makefile</a> - entry Makefile</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/endoh1/prog.alt.c">prog.alt.c</a> - alternative source</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/endoh1/prog.orig.c">prog.orig.c</a> - original source</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/endoh1/hilbert16x8.txt">hilbert16x8.txt</a> - gameplay map</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/endoh1/hilbert2x2.txt">hilbert2x2.txt</a> - gameplay map</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/endoh1/hilbert4x4.txt">hilbert4x4.txt</a> - gameplay map</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/endoh1/hilbert8x8.txt">hilbert8x8.txt</a> - gameplay map</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/endoh1/ioccc.txt">ioccc.txt</a> - gameplay map</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/endoh1/megumin.txt">megumin.txt</a> - gameplay map</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/endoh1/unwinnable.txt">unwinnable.txt</a> - gameplay map</li>
<li><a href="2020_endoh1.tar.bz2">2020_endoh1.tar.bz2</a> - download entry source</li>
</ul>
<h2 id="secondary-files">Secondary files</h2>
<ul>
<li><a href="index.html">index.html</a> - entry home page</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/endoh1/.entry.json">.entry.json</a>
- description of entry in JSON</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/endoh1/.gitignore">.gitignore</a>
- list of files that should not be committed under git</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/endoh1/.entry.json">.entry.json</a> - description of entry in JSON</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/endoh1/.gitignore">.gitignore</a> - list of files that should not be committed under git</li>
<li><a href=".path">.path</a> - directory path from top directory</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/endoh1/README.md">README.md</a>
- markdown source for index.html</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/endoh1/README.md">README.md</a> - markdown source for index.html</li>
</ul>
<!-- END: next line ends content generated by: bin/output-index-inventory.sh -->