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:
1 parent
9eb7a54e9f
commit
b0b212acb1
402 files changed
+37061
-55132
No files matched your search
+72
-106
@@ -129,9 +129,9 @@
|
||||
|
||||
<h2 id="author"><a name="author"></a>Author:</h2>
|
||||
<ul>
|
||||
<li>Name: <a href="../../authors.html#Oscar_Toledo">Oscar Toledo
|
||||
G.</a><br> Location: <a href="../../location.html#MX">MX</a> -
|
||||
<em>United Mexican States</em> (<em>Mexico</em>) <br><br></li>
|
||||
<li>Name: <a href="../../authors.html#Oscar_Toledo">Oscar Toledo G.</a><br>
|
||||
Location: <a href="../../location.html#MX">MX</a> - <em>United Mexican States</em> (<em>Mexico</em>)
|
||||
<br><br></li>
|
||||
</ul>
|
||||
|
||||
<!-- END: next line ends content generated by: bin/output-index-author.sh -->
|
||||
@@ -147,159 +147,125 @@ G.</a><br> Location: <a href="../../location.html#MX">MX</a> -
|
||||
<div class="sourceCode" id="cb3"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./toledo</span> a</span>
|
||||
<span id="cb3-2"><a href="#cb3-2" aria-hidden="true" tabindex="-1"></a><span class="ex">./toledo</span> a b</span></code></pre></div>
|
||||
<h2 id="alternate-code">Alternate code:</h2>
|
||||
<p>Two alternate versions of this entry, <a
|
||||
href="toledo2.c">toledo2.c</a> and <a href="toledo3.c">toledo3.c</a> are
|
||||
provided.</p>
|
||||
<p>Two alternate versions of this entry, <a href="toledo2.c">toledo2.c</a> and
|
||||
<a href="toledo3.c">toledo3.c</a> are provided.</p>
|
||||
<h3 id="alternate-build">Alternate build:</h3>
|
||||
<p>To compile the alternate versions:</p>
|
||||
<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 Use <code>toledo2</code> and <code>toledo3</code> as you would
|
||||
<code>toledo</code> above.</p>
|
||||
<p>Use Use <code>toledo2</code> and <code>toledo3</code> as you would <code>toledo</code> above.</p>
|
||||
<h2 id="judges-remarks">Judges’ remarks:</h2>
|
||||
<p>Challenge yourself with your ability to look 5, 6 or more moves
|
||||
ahead. Challenge your knowledge of C operator precedence. The following
|
||||
is the move analysis via recursion while it executes moves. All while
|
||||
playing by the rules of C and Chess within a single function!</p>
|
||||
<p>Challenge yourself with your ability to look 5, 6 or more moves ahead.
|
||||
Challenge your knowledge of C operator precedence. The following is the
|
||||
move analysis via recursion while it executes moves. All while playing
|
||||
by the rules of C and Chess within a single function!</p>
|
||||
<h3 id="historical-note">Historical note:</h3>
|
||||
<p>When this entry was submitted the code was a recursive call to
|
||||
<code>main()</code> - that was it. In 2023 due to problems with
|
||||
<code>clang</code> <code>main()</code> calls another function,
|
||||
<code>pain()</code>, which calls itself. But it might be said that the
|
||||
Chess is still a single function.</p>
|
||||
<p>When this entry was submitted the code was a recursive call to <code>main()</code> - that
|
||||
was it. In 2023 due to problems with <code>clang</code> <code>main()</code> calls another function,
|
||||
<code>pain()</code>, which calls itself. But it might be said that the Chess is still a
|
||||
single function.</p>
|
||||
<h2 id="authors-remarks">Author’s remarks:</h2>
|
||||
<h3 id="what-does-this-program">What does this program</h3>
|
||||
<p>This is a <a href="https://en.wikipedia.org/wiki/Chess">chess</a>
|
||||
program, it can work in two modes: two-players, and one player (always
|
||||
white) against the machine. To get the first mode, run the program
|
||||
without arguments:</p>
|
||||
<p>This is a <a href="https://en.wikipedia.org/wiki/Chess">chess</a> program, it can work in
|
||||
two modes: two-players, and one player (always white) against the machine. To
|
||||
get the first mode, run the program without arguments:</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="ex">./toledo</span></span></code></pre></div>
|
||||
<p>The other mode is accessible running the program with one argument
|
||||
(5-<a href="https://en.wikipedia.org/wiki/Ply_(game_theory)">ply</a>
|
||||
analysis):</p>
|
||||
<div class="sourceCode" id="cb6"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb6-1"><a href="#cb6-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./toledo</span> a</span></code></pre></div>
|
||||
<p>Two arguments for 6-<a
|
||||
href="https://en.wikipedia.org/wiki/Ply_(game_theory)">ply</a>
|
||||
<p>Two arguments for 6-<a href="https://en.wikipedia.org/wiki/Ply_(game_theory)">ply</a>
|
||||
analysis:</p>
|
||||
<div class="sourceCode" id="cb7"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb7-1"><a href="#cb7-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./toledo</span> a b</span></code></pre></div>
|
||||
<p>And each successive argument will analyze one <a
|
||||
href="https://en.wikipedia.org/wiki/Ply_(game_theory)">ply</a> more.
|
||||
There is no ply limit, but beyond 7 ply is very slow, try it at your own
|
||||
risk and computing time.</p>
|
||||
<p>And each successive argument will analyze one
|
||||
<a href="https://en.wikipedia.org/wiki/Ply_(game_theory)">ply</a> more. There is no ply
|
||||
limit, but beyond 7 ply is very slow, try it at your own risk and computing
|
||||
time.</p>
|
||||
<h3 id="entering-movements">Entering movements</h3>
|
||||
<p>When it is your turn, you can enter your move, for example, as
|
||||
<code>d2d4</code> and press the enter key. This will move the pawn at
|
||||
<code>D2</code> to <code>D4</code>, assuming that a pawn is there (as it
|
||||
would be in the beginning). The computer will check move legality and
|
||||
will warn you of illegal moves. All legal chess moves are permitted.</p>
|
||||
<p>One special case is when you are doing promotion, you must enter the
|
||||
move with an extra letter indicating the desired piece.</p>
|
||||
<p>For example <code>f7f8n</code> (supposing you have a pawn on
|
||||
<code>F7</code>), will promote it to a knight; substitute <code>n</code>
|
||||
for the desired piece
|
||||
(<code>N</code>/<code>Q</code>/<code>R</code>/<code>B</code>).</p>
|
||||
<p>When it is your turn, you can enter your move, for example, as <code>d2d4</code> and press the
|
||||
enter key. This will move the pawn at <code>D2</code> to <code>D4</code>, assuming that a pawn is
|
||||
there (as it would be in the beginning). The computer will check move legality
|
||||
and will warn you of illegal moves. All legal chess moves are permitted.</p>
|
||||
<p>One special case is when you are doing promotion, you must enter the move with
|
||||
an extra letter indicating the desired piece.</p>
|
||||
<p>For example <code>f7f8n</code> (supposing you have a pawn on <code>F7</code>), will promote it to a
|
||||
knight; substitute <code>n</code> for the desired piece (<code>N</code>/<code>Q</code>/<code>R</code>/<code>B</code>).</p>
|
||||
<p>Note that the program requires the piece letter; it will not select
|
||||
automatically a queen, so don’t be surprised if it doesn’t accept your
|
||||
move.</p>
|
||||
automatically a queen, so don’t be surprised if it doesn’t accept your move.</p>
|
||||
<h3 id="game-status">Game status</h3>
|
||||
<p>The computer will check for checkmate and stalemate. Also, after each
|
||||
machine move, it will show the score of the position: a higher number is
|
||||
better for the computer, i.e. worse for you.</p>
|
||||
<p>The computer will check for checkmate and stalemate. Also, after each machine
|
||||
move, it will show the score of the position: a higher number is better for
|
||||
the computer, i.e. worse for you.</p>
|
||||
<h3 id="quirks">Quirks</h3>
|
||||
<p>None.</p>
|
||||
<h3 id="program-operation">Program operation</h3>
|
||||
<p>This is a good example of a chess program reduced to the essential.
|
||||
In order to get it into the contest limits, I used short but slow and
|
||||
unintelligible algorithms.</p>
|
||||
<p>The interface accounts for only a fraction of the code, the core does
|
||||
multiples functions: it is called recursively to analyze and evaluate
|
||||
each <a href="https://en.wikipedia.org/wiki/Ply_(game_theory)">ply</a>,
|
||||
does <a
|
||||
href="https://en.wikipedia.org/wiki/Alpha-beta_pruning">alpha-beta
|
||||
pruning</a>, move generation, machine playing, check detection, illegal
|
||||
move verification and does moves after they are verified.</p>
|
||||
<p>It also sets a standard on ultra-mini-chess programs. The player and
|
||||
the computer can do all legal chess moves.</p>
|
||||
<p>This is a good example of a chess program reduced to the essential. In order
|
||||
to get it into the contest limits, I used short but slow and unintelligible
|
||||
algorithms.</p>
|
||||
<p>The interface accounts for only a fraction of the code, the core does multiples
|
||||
functions: it is called recursively to analyze and evaluate each
|
||||
<a href="https://en.wikipedia.org/wiki/Ply_(game_theory)">ply</a>, does <a href="https://en.wikipedia.org/wiki/Alpha-beta_pruning">alpha-beta
|
||||
pruning</a>, move generation,
|
||||
machine playing, check detection, illegal move verification and does moves after
|
||||
they are verified.</p>
|
||||
<p>It also sets a standard on ultra-mini-chess programs. The player and the
|
||||
computer can do all legal chess moves.</p>
|
||||
<h3 id="additional-features">Additional features</h3>
|
||||
<p>Other features are:</p>
|
||||
<ul>
|
||||
<li>Illegal move verification.</li>
|
||||
<li><a href="https://en.wikipedia.org/wiki/Checkmate">Checkmate</a>
|
||||
detection.</li>
|
||||
<li><a href="https://en.wikipedia.org/wiki/Checkmate">Checkmate</a> detection.</li>
|
||||
<li>Stalemate detection.</li>
|
||||
<li>Computer is tough (check 7-<a
|
||||
href="https://en.wikipedia.org/wiki/Ply_(game_theory)">ply</a>) and even
|
||||
in 5 ply can give a surprise to amateur players.</li>
|
||||
<li>Computer is tough (check
|
||||
7-<a href="https://en.wikipedia.org/wiki/Ply_(game_theory)">ply</a>) and even in 5 ply can give a surprise to
|
||||
amateur players.</li>
|
||||
</ul>
|
||||
<h3 id="obfuscation-tricks">Obfuscation tricks</h3>
|
||||
<ul>
|
||||
<li>Only one very modular C function.</li>
|
||||
<li>Extensive use of the ternary and comma operators; save a hard drive
|
||||
today.</li>
|
||||
<li>Extensive use of C operator precedence; all good C programmers
|
||||
remember it… I cannot.</li>
|
||||
<li>Extensive use of the ternary and comma operators; save a hard drive today.</li>
|
||||
<li>Extensive use of C operator precedence; all good C programmers remember
|
||||
it… I cannot.</li>
|
||||
<li>Exchanged operands every place possible. Someday someone will
|
||||
understand it.</li>
|
||||
<li>Mixed and multifunction expressions on statements, in good old-BASIC
|
||||
style.</li>
|
||||
<li>Macros used to hide C syntax: check unbalanced parenthesis and calls
|
||||
with empty arguments!</li>
|
||||
<li>Only includes strictly necessary standard headers, the linker takes
|
||||
care, and compiles faster… but I’m still not seeing the difference.</li>
|
||||
<li>Uses only one string, very easy to <a
|
||||
href="https://en.wikipedia.org/wiki/Internationalization_and_localization">i18n</a>
|
||||
;)</li>
|
||||
<li>Macros used to hide C syntax: check unbalanced parenthesis and calls with
|
||||
empty arguments!</li>
|
||||
<li>Only includes strictly necessary standard headers, the linker takes care,
|
||||
and compiles faster… but I’m still not seeing the difference.</li>
|
||||
<li>Uses only one string, very easy to
|
||||
<a href="https://en.wikipedia.org/wiki/Internationalization_and_localization">i18n</a> ;)</li>
|
||||
</ul>
|
||||
<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>
|
||||
<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-2005toledo"><a name="inventory"></a>Inventory for
|
||||
2005/toledo</h1>
|
||||
<h1 id="inventory-for-2005toledo"><a name="inventory"></a>Inventory for 2005/toledo</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/2005/toledo/toledo.c">toledo.c</a>
|
||||
- entry source</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2005/toledo/Makefile">Makefile</a>
|
||||
- entry Makefile</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2005/toledo/toledo.orig.c">toledo.orig.c</a>
|
||||
- original source</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2005/toledo/toledo2.c">toledo2.c</a>
|
||||
- alternative source</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2005/toledo/toledo3.c">toledo3.c</a>
|
||||
- alternative source</li>
|
||||
<li><a href="2005_toledo.tar.bz2">2005_toledo.tar.bz2</a> - download
|
||||
entry source</li>
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2005/toledo/toledo.c">toledo.c</a> - entry source</li>
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2005/toledo/Makefile">Makefile</a> - entry Makefile</li>
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2005/toledo/toledo.orig.c">toledo.orig.c</a> - original source</li>
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2005/toledo/toledo2.c">toledo2.c</a> - alternative source</li>
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2005/toledo/toledo3.c">toledo3.c</a> - alternative source</li>
|
||||
<li><a href="2005_toledo.tar.bz2">2005_toledo.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/2005/toledo/.entry.json">.entry.json</a>
|
||||
- description of entry in JSON</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2005/toledo/.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/2005/toledo/.entry.json">.entry.json</a> - description of entry in JSON</li>
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2005/toledo/.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/2005/toledo/README.md">README.md</a>
|
||||
- markdown source for index.html</li>
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2005/toledo/README.md">README.md</a> - markdown source for index.html</li>
|
||||
</ul>
|
||||
|
||||
<!-- END: next line ends content generated by: bin/output-index-inventory.sh -->
|
||||
|
||||
Reference in new issue
Block a user