update index.html and .winner.json per recent manifest changes

This commit is contained in:
Cody Boone Ferguson committed 2024-01-23 10:00:41 -08:00
1 parent a286f595a4
commit 483a00aa5e
75 files changed
+245 -161

No files matched your search

+8 -1
View File
@@ -127,7 +127,11 @@ href="/bugs.md#2006-borsanyi">2006 borsanyi in bugs.md</a>.</p>
<h2 id="to-use">To use:</h2>
<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">./borsanyi</span> string <span class="op">&gt;</span> file.gif</span></code></pre></div>
<h2 id="try">Try:</h2>
<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="ex">./borsanyi</span> ioccc@example.com <span class="op">&gt;</span> example.gif</span></code></pre></div>
<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="ex">./try.sh</span></span></code></pre></div>
<p>We recommend you input for the filename <code>example.gif</code> and
for the string <code>ioccc@example.com</code>. The script will not
overwrite files. It runs the program in a loop until you answer that you
do not wish to make another.</p>
<h2 id="judges-remarks">Judges’ remarks:</h2>
<p>This entry uses a very user-friendly representation of the font it
uses (with a few exceptions). Check out the source and see yourself!
@@ -206,6 +210,9 @@ href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2006/borsanyi/Mak
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2006/borsanyi/borsanyi.orig.c">borsanyi.orig.c</a>
- original source</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2006/borsanyi/try.sh">try.sh</a>
- how to run</li>
<li><a href="2006_borsanyi.tar.bz2">2006_borsanyi.tar.bz2</a> - download
winning source</li>
</ul>
+8 -9
View File
@@ -121,13 +121,9 @@ Location: <a href="/temp-test-ioccc/location.html#US">US</a></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="ex">./grothe</span> carrier_freq pixelclock horizontal_total <span class="op">&lt;</span> some_input.txt</span></code></pre></div>
<h2 id="try">Try:</h2>
<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">./grothe</span> 65000000 10000000 1344 <span class="op">&lt;</span> twinkle.txt</span></code></pre></div>
<p>… and then put on your “electronic ears”. You may find using a
tunable scanning electronic ear helps.</p>
<p>There are other text files you may wish to try:</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="ex">./grothe</span> 65000000 10000000 1344 <span class="op">&lt;</span> arabian.txt</span>
<span id="cb4-2"><a href="#cb4-2" aria-hidden="true" tabindex="-1"></a><span class="ex">./grothe</span> 65000000 10000000 1344 <span class="op">&lt;</span> olympics.txt</span>
<span id="cb4-3"><a href="#cb4-3" aria-hidden="true" tabindex="-1"></a><span class="ex">./grothe</span> 65000000 10000000 1344 <span class="op">&lt;</span> test.txt</span></code></pre></div>
<p>Put on your “electronic ears” and then try:</p>
<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">./try.sh</span></span></code></pre></div>
<p>You may find using a tunable scanning electronic ear helps.</p>
<h2 id="judges-remarks">Judges’ remarks:</h2>
<p>Most of the time, interference is annoying. This entry is the
exception that proves the rule. What is a bug to some is a feature to
@@ -146,9 +142,9 @@ horizontal_total - total scan along the horizontal axis</code></pre>
<p>If you have <code>xvidtune</code> installed you can get the
<code>pixelclock</code> and <code>horizontal_total</code> with the
following command</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">xvidtune</span> <span class="at">-show</span> <span class="kw">|</span> <span class="fu">head</span> <span class="at">-n</span> 1 <span class="kw">|</span> <span class="fu">awk</span> <span class="st">&#39;{ print &quot;pixelclock &quot; $2 * 1000000 &quot; horizontal_total = &quot; $6 }&#39;</span></span></code></pre></div>
<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">xvidtune</span> <span class="at">-show</span> <span class="kw">|</span> <span class="fu">head</span> <span class="at">-n</span> 1 <span class="kw">|</span> <span class="fu">awk</span> <span class="st">&#39;{ print &quot;pixelclock &quot; $2 * 1000000 &quot; horizontal_total = &quot; $6 }&#39;</span></span></code></pre></div>
<p>Example from my laptops:</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">./grothe</span> 65000000 10000000 1344 <span class="op">&lt;</span> twinkle.txt</span></code></pre></div>
<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">./grothe</span> 65000000 10000000 1344 <span class="op">&lt;</span> twinkle.txt</span></code></pre></div>
<p>Even if the user gets a setting off, the sound will usually be able
to be heard on <a
href="https://en.wikipedia.org/wiki/AM_broadcasting">AM</a> at a
@@ -245,6 +241,9 @@ href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2006/grothe/olymp
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2006/grothe/test.txt">test.txt</a>
- sample input</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2006/grothe/try.sh">try.sh</a>
- how to run</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2006/grothe/twinkle.txt">twinkle.txt</a>
- sample input</li>
<li><a href="2006_grothe.tar.bz2">2006_grothe.tar.bz2</a> - download
+15 -11
View File
@@ -132,37 +132,35 @@ STATUS: INABIAF - please **DO NOT** fix</code></pre>
monge in bugs.md</a>.</p>
<h2 id="to-use">To use:</h2>
<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">./monge</span> expression ...</span></code></pre></div>
<h2 id="try">Try:</h2>
<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="ex">./monge</span> <span class="st">&quot;z = 0&quot;</span> <span class="st">&quot;z = z*z*z + c; Abs2(z) &lt; 4&quot;</span></span></code></pre></div>
<p>Incorrect formulas will ungracefully crash the program.</p>
<p>This is supposed to happen. As is written in the <a
href="http://catb.org/jargon/html/F/feature.html">The Jargon
File</a>:</p>
<pre><code>That&#39;s not a bug, that&#39;s a feature.</code></pre>
<h2 id="try">Try:</h2>
<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="ex">./try.sh</span></span></code></pre></div>
<h2 id="alternate-code">Alternate code:</h2>
<p>This alternate code lets you specify the width and height of the
image as well as the number of iterations to perform.</p>
<h3 id="alternate-build">Alternate build:</h3>
<p>To use the default values, the same as <a href="monge.c">monge.c</a>,
just do:</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="fu">make</span> alt</span></code></pre></div>
<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">make</span> alt</span></code></pre></div>
<p>But if you wish to actually make use of it you will want to redefine
one or more of the variables <code>W</code>, <code>H</code> and
<code>I</code>. The defaults are (respectively) 400, 300 and \128. If
you wish to change the image size to 500x500 but keep the iterations the
same then do:</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="fu">make</span> clobber WIDTH=500 HEIGHT=500 alt</span></code></pre></div>
<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="fu">make</span> clobber WIDTH=500 HEIGHT=500 alt</span></code></pre></div>
<p>If you wish to keep the dimensions the same but change the iterations
to 512:</p>
<div class="sourceCode" id="cb8"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb8-1"><a href="#cb8-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span> clobber ITERATIONS=512 alt</span></code></pre></div>
<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="fu">make</span> clobber ITERATIONS=512 alt</span></code></pre></div>
<p>If you specify a value less than 1 for any of these it sets it back
to the default. The value 1 was selected arbitrarily and such a small
number as 1 will not do anything useful but as long as it’s at least 1
it’ll not be redefined. Does not try taking care of overflows but such
large values would be impractical anyway.</p>
it’ll not be redefined. It does not try taking care of overflows but
such large values would be impractical anyway.</p>
<h3 id="alternate-use">Alternate use:</h3>
<p>Use <code>monge.alt</code> exactly as you would <code>monge</code>
above.</p>
<h3 id="alternate-try">Alternate try:</h3>
<div class="sourceCode" id="cb8"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb8-1"><a href="#cb8-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./try.alt.sh</span></span></code></pre></div>
<h2 id="judges-remarks">Judges’ remarks:</h2>
<p>For those who are familiar with the previous <a
href="/winners.html">IOCCC winners</a>, this program is best described
@@ -359,6 +357,12 @@ href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2006/monge/monge.
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2006/monge/monge.orig.c">monge.orig.c</a>
- original source</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2006/monge/try.alt.sh">try.alt.sh</a>
- how to run alternative code</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2006/monge/try.sh">try.sh</a>
- how to run</li>
<li><a href="2006_monge.tar.bz2">2006_monge.tar.bz2</a> - download
winning source</li>
</ul>
+12 -10
View File
@@ -133,16 +133,15 @@ number.</p>
<p>NOTE: <code>convert(1)</code> belongs to <a
href="https://imagemagick.org/index.php">ImageMagick</a>.</p>
<h2 id="try">Try:</h2>
<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="ex">./stewart</span> 400 1000000 maze <span class="op">&gt;</span> maze.xbm</span>
<span id="cb4-2"><a href="#cb4-2" aria-hidden="true" tabindex="-1"></a><span class="ex">convert</span> maze.xbm maze.png</span>
<span id="cb4-3"><a href="#cb4-3" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb4-4"><a href="#cb4-4" aria-hidden="true" tabindex="-1"></a><span class="ex">./stewart</span> 1024 1000000 gasket <span class="op">&gt;</span> gasket.xbm</span>
<span id="cb4-5"><a href="#cb4-5" aria-hidden="true" tabindex="-1"></a><span class="ex">convert</span> gasket.xbm gasket.png</span>
<span id="cb4-6"><a href="#cb4-6" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb4-7"><a href="#cb4-7" aria-hidden="true" tabindex="-1"></a><span class="ex">./stewart</span> 1024 1500000 dragon3 <span class="op">&gt;</span> dragon3.xbm</span>
<span id="cb4-8"><a href="#cb4-8" aria-hidden="true" tabindex="-1"></a><span class="ex">convert</span> dragon3.xbm dragon3.png</span></code></pre></div>
<p>Now open the images in your favourite graphics viewer or a web
browser.</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="ex">./try.sh</span></span></code></pre></div>
<p>After running the program on a few files it will ask you if you wish
to run it on the remaining files.</p>
<p>The script will try converting the xbm files created by the program
to png files. If it does it will list those that exist in the directory,
at the end of the script. If you do not have <code>convert(1)</code> it
will warn you once. In that case you’ll have to open the xbm files in a
graphics viewer capable of viewing xbm images. In any case choose your
favourite graphics viewer to look at the images created.</p>
<h2 id="judges-remarks">Judges’ remarks:</h2>
<p>Note the interesting choice of using a <code>#define</code> in the
output. The selection of input files makes this one endlessly fun to
@@ -281,6 +280,9 @@ href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2006/stewart/stew
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2006/stewart/build">build</a>
- how to compile</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2006/stewart/try.sh">try.sh</a>
- how to run</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2006/stewart/altar">altar</a>
- sample input</li>
<li><a
+35 -14
View File
@@ -118,6 +118,10 @@ Location: <a href="/temp-test-ioccc/location.html#FI">FI</a></p>
<!-- END: next line ends content generated by: bin/gen-author.sh -->
<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 alt version based on the author’s remarks. The <a
href="try.sh">try.sh</a> script will compile and use both but if you
wish to see the alternate version specifically see the <a
href="#alternate-code">Alternate code</a> section below.</p>
<h3 id="bugs-and-misfeatures">Bugs and (Mis)features:</h3>
<p>The current status of this entry is:</p>
<pre><code>STATUS: INABIAF - please **DO NOT** fix</code></pre>
@@ -129,10 +133,14 @@ sykes1 in bugs.md</a>.</p>
<h2 id="try">Try:</h2>
<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="ex">./sykes1</span> 10</span></code></pre></div>
<p>Refresh your browser.</p>
<p>You might also try:</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">./try.sh</span></span></code></pre></div>
<p>This will run both the original entry and the alt code to show some
differences.</p>
<h3 id="also-try">Also try:</h3>
<p>If you have all day :-) and wish to find out how fast your machine
can solve the maximum:</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="bu">time</span> ./sykes1 19186</span></code></pre></div>
<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="bu">time</span> ./sykes1 19186</span></code></pre></div>
<p>This was done on a Rocky Linux 9.2 server with
<code>Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz</code> with 16 cores (via
HyperThreading):</p>
@@ -143,10 +151,23 @@ sys 0m0.002s</code></pre>
<pre><code>real 7m10.786s
user 7m8.322s
sys 0m0.110s</code></pre>
<h2 id="alternate-code">Alternate code:</h2>
<p>This alternate code is based on the author’s remarks.</p>
<h3 id="alternate-build">Alternate build:</h3>
<div class="sourceCode" id="cb9"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb9-1"><a href="#cb9-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>sykes1.alt</code> as you would <code>sykes1</code>
above.</p>
<h3 id="alternate-try">Alternate try:</h3>
<p>The <a href="try.sh">try.sh</a> script will use both versions to show
some differences. You can do so like:</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">./try.sh</span></span></code></pre></div>
<h2 id="judges-remarks">Judges’ remarks:</h2>
<p>Read the <a href="sykes1.html">sykes1.html</a> page source. Now then
read the C source. Confused? :-) If it’s not clear try:</p>
<div class="sourceCode" id="cb8"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb8-1"><a href="#cb8-1" aria-hidden="true" tabindex="-1"></a><span class="fu">diff</span> <span class="at">-s</span> sykes1.c sykes1.html</span></code></pre></div>
<div class="sourceCode" id="cb11"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb11-1"><a href="#cb11-1" aria-hidden="true" tabindex="-1"></a><span class="fu">diff</span> <span class="at">-s</span> sykes1.c sykes1.html</span></code></pre></div>
<p>For extra credit, understand what happens when you give this entry an
negative number argument, and why.</p>
<p>See the author’s remarks for how to make your own shapes as well.</p>
@@ -158,15 +179,15 @@ href="http://en.wikipedia.org/wiki/Bedlam_cube">article about these
puzzles in wikipedia</a>.</p>
<p>Some instructions on how to make your own cube are in the included
file <a href="bedlam-cubes.pdf">bedlam-cubes.pdf</a>.</p>
<p>Finally, you can watch it being solved at <a
href="https://www.youtube.com/watch?v=a8s1AcYMLBc"
class="uri">https://www.youtube.com/watch?v=a8s1AcYMLBc</a>.</p>
<p>Finally, you can watch it being solved with the video file here, <a
href="solving-bedlam-cube.mp4">solving-bedlam-cube.mp4</a>.</p>
<p>Actually the cube is very hard to do by hand by just trying to fit it
together. I have not known anyone to solve it in this way - you would
need to be very lucky indeed to stumble across a solution.</p>
<h3 id="instructions">Instructions</h3>
<p>Compile the program, then test that it works:</p>
<div class="sourceCode" id="cb9"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb9-1"><a href="#cb9-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./sykes1</span></span></code></pre></div>
<div class="sourceCode" id="cb12"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb12-1"><a href="#cb12-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./sykes1</span></span></code></pre></div>
<p>Shortly you should see the first solution pop out on your screen. It
shows you how to build the cube piece by piece, rendered in glorious 3D
ASCII.</p>
@@ -177,24 +198,24 @@ helpfully contains an html document that should make the browser display
for you a nice animated GIF, showing you how to build the cube. Rendered
in glorious 3D color.</p>
<p>Want to see another solution? Try:</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">./sykes1</span> some_number</span></code></pre></div>
<div class="sourceCode" id="cb13"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb13-1"><a href="#cb13-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./sykes1</span> some_number</span></code></pre></div>
<p>The program will discard solutions up to the number, and output
numbered solution. Refresh your browser window to see the new
solution.</p>
<p>Try some more - there are exactly <code>19186</code> solutions to
choose from.</p>
<p>If you have a fast machine you might try the last solution:</p>
<div class="sourceCode" id="cb11"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb11-1"><a href="#cb11-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./sykes1</span> 19186</span></code></pre></div>
<div class="sourceCode" id="cb14"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb14-1"><a href="#cb14-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./sykes1</span> 19186</span></code></pre></div>
<p>On my machine this takes about half an hour to run.</p>
<h3 id="implementation">Implementation</h3>
<p>The implementation is an optimized recursive algorithm that tries to
fit the pieces into the cube one by one. The cube pieces are defined
near the start of the program:</p>
<div class="sourceCode" id="cb12"><pre class="sourceCode c"><code class="sourceCode c"><span id="cb12-1"><a href="#cb12-1" aria-hidden="true" tabindex="-1"></a><span class="dt">int</span> s<span class="op">[</span> <span class="op">]</span> <span class="op">=</span> <span class="op">{</span> <span class="dv">186</span><span class="op">,</span> <span class="dv">94</span><span class="op">,</span> <span class="dv">1426</span><span class="op">,</span> <span class="dv">3098</span></span>
<span id="cb12-2"><a href="#cb12-2" aria-hidden="true" tabindex="-1"></a> <span class="op">,</span><span class="dv">1047</span> <span class="op">,</span> <span class="dv">122</span> <span class="op">,</span> <span class="dv">1082</span> <span class="op">,</span> <span class="dv">3083</span> <span class="op">,</span> <span class="dv">1039</span></span>
<span id="cb12-3"><a href="#cb12-3" aria-hidden="true" tabindex="-1"></a> <span class="op">,</span> <span class="dv">569</span> <span class="op">,</span> <span class="dv">527</span> <span class="op">,</span> <span class="dv">1054</span> <span class="op">,</span> <span class="dv">531</span> <span class="op">}</span> <span class="op">;</span></span></code></pre></div>
<div class="sourceCode" id="cb15"><pre class="sourceCode c"><code class="sourceCode c"><span id="cb15-1"><a href="#cb15-1" aria-hidden="true" tabindex="-1"></a><span class="dt">int</span> s<span class="op">[</span> <span class="op">]</span> <span class="op">=</span> <span class="op">{</span> <span class="dv">186</span><span class="op">,</span> <span class="dv">94</span><span class="op">,</span> <span class="dv">1426</span><span class="op">,</span> <span class="dv">3098</span></span>
<span id="cb15-2"><a href="#cb15-2" aria-hidden="true" tabindex="-1"></a> <span class="op">,</span><span class="dv">1047</span> <span class="op">,</span> <span class="dv">122</span> <span class="op">,</span> <span class="dv">1082</span> <span class="op">,</span> <span class="dv">3083</span> <span class="op">,</span> <span class="dv">1039</span></span>
<span id="cb15-3"><a href="#cb15-3" aria-hidden="true" tabindex="-1"></a> <span class="op">,</span> <span class="dv">569</span> <span class="op">,</span> <span class="dv">527</span> <span class="op">,</span> <span class="dv">1054</span> <span class="op">,</span> <span class="dv">531</span> <span class="op">}</span> <span class="op">;</span></span></code></pre></div>
<p>Each piece is a bitmap, and represents a 3x3x3 cube.</p>
<p>For instance the first piece is <code>186</code> - this is
<code>010111010</code> in binary. Written out like this you can see that
@@ -229,7 +250,7 @@ the pieces, and provided that a solution is possible, it will be
found.</p>
<p>For example, if you modify line 13 of the source like this, the
program will solve for a different piece set:</p>
<div class="sourceCode" id="cb16"><pre class="sourceCode c"><code class="sourceCode c"><span id="cb16-1"><a href="#cb16-1" aria-hidden="true" tabindex="-1"></a><span class="dt">int</span> s<span class="op">[</span> <span class="op">]</span> <span class="op">=</span> <span class="op">{</span> <span class="dv">187</span><span class="op">,</span> <span class="dv">94</span><span class="op">,</span> <span class="dv">402</span><span class="op">,</span> <span class="dv">3098</span></span></code></pre></div>
<div class="sourceCode" id="cb19"><pre class="sourceCode c"><code class="sourceCode c"><span id="cb19-1"><a href="#cb19-1" aria-hidden="true" tabindex="-1"></a><span class="dt">int</span> s<span class="op">[</span> <span class="op">]</span> <span class="op">=</span> <span class="op">{</span> <span class="dv">187</span><span class="op">,</span> <span class="dv">94</span><span class="op">,</span> <span class="dv">402</span><span class="op">,</span> <span class="dv">3098</span></span></code></pre></div>
<p>And of course you can make your own.</p>
<p>After the pieces are defined, the first thing the program does it to
fit them into a 4x4 cube. It collects every possible placing of each of