fix more broken markdown links

We fix more markdown links in markdown files that refer to files
internally to the web site.

Added tmp tools to find and print various markdown links:

* `tmp/md-links.sh` - print all markdown links
* `tmp/md-token-links.sh` - print all markdown links that start with a **%%TOKEN%%**
* `tmp/md-local-links.sh` - print all markdown links to a local file
* `tmp/md-link-paths.sh` - print local file paths referenced in markdown links

Fixed a number of markdown formatting problems with `thanks-for-help.md`.
Fixed markdown links to files in `thanks-for-help.md`.  Improved
heading levels in `thanks-for-help.md`, and made entry sections consistent.

Changed all markdown links that end in "))" to end in a better way.

Explained in `markdown.md` why we are avoiding markdown links that
end in "))".

Ran `make www` to perform the above.

TODO: Fix stuff we broke by mistake doing the above.

TODO: Fix more broken markdown links.
This commit is contained in:
Landon Curt Noll committed 2024-04-26 04:17:20 -07:00
1 parent 60960e1650
commit 4f95e3f3d6
174 files changed
+4008 -2029

No files matched your search

+14 -14
View File
@@ -93,7 +93,7 @@ the rules were changed, requesting non-machine specific code.
This program was selected for the 1987 t-shirt collection.
The C startup routine (via [crt0.o](https://en.wikipedia.org/wiki/Crt0))
The C startup routine, via [crt0.o](https://en.wikipedia.org/wiki/Crt0),
transfers control to a location named `main`. In this case, `main` just happens
to be in the data area. The array of `short`s, which has been further
obfuscated by use of different data types, just happens to form a meaningful set
@@ -188,10 +188,10 @@ since there was no CS curriculum when we started). We had an assignment to
create a pair of programs for the computer networks course. The programs were
supposed to send data reliably from one program to the other over an unreliable
channel. This channel was simulated with a pair of
[pipes](https://en.wikipedia.org/wiki/Pipeline_(software)).
[pipes](https://en.wikipedia.org/wiki/Pipeline_(software)).
We decided for fun to create an
[obfuscated](https://en.wikipedia.org/wiki/Obfuscation_(software)) set of
[obfuscated](https://en.wikipedia.org/wiki/Obfuscation_(software)) set of
programs, only for the
[PDP](https://en.wikipedia.org/wiki/Programmed_Data_Processor), to do this, but
circumventing the channel (i.e. cheating, hence the needed obfuscation). Our
@@ -207,12 +207,12 @@ there](https://groups.google.com/g/net.lang.c/c/lx-TAuEyeRI/m/HdOOnNx6LC0J) and
it.
Since we had just recently created these [obfuscated
programs](https://en.wikipedia.org/wiki/Obfuscation_(software)) we decided we could
programs](https://en.wikipedia.org/wiki/Obfuscation_(software)) we decided we could
use the same technique for an obfuscated C program. We upped the ante a bit by
making it "portable".
To add to the
[obfuscation](https://en.wikipedia.org/wiki/Obfuscation_(software)), we used
[obfuscation](https://en.wikipedia.org/wiki/Obfuscation_(software)), we used
different formats for the integers in the array: some in decimal, some in octal,
some in hexadecimal, and when the value would fit, some as an ASCII character.
@@ -230,7 +230,7 @@ Our program is idempotent under `cb`.
When this program is compiled, the compiler places the array somewhere in
memory, just like it places any compiled code somewhere in memory. Usually, the
C startup code ([crt0.o](https://en.wikipedia.org/wiki/Crt0)) calls a routine
C startup code, [crt0.o](https://en.wikipedia.org/wiki/Crt0), calls a routine
named `main()`. The loader fills in the address in the startup code, but at
least on the old systems where this program ran, it doesn't know that the
`main()` in this program isn't code but data!
@@ -242,13 +242,13 @@ both a [PDP-11](https://en.wikipedia.org/wiki/PDP-11) and a
On the [VAX](https://en.wikipedia.org/wiki/VAX), the routine `main()` is called
with the `calls` instruction. This instruction uses the first (2-byte)
[word](https://en.wikipedia.org/wiki/Word_(computer_architecture)) of the called
[word](https://en.wikipedia.org/wiki/Word_(computer_architecture)) of the called
routine as a mask of
[registers](https://en.wikipedia.org/wiki/Processor_register) that are to be
saved on the [stack](https://en.wikipedia.org/wiki/Stack_(abstract_data_type)).
saved on the [stack](https://en.wikipedia.org/wiki/Stack(abstract_data_type)).
In other words, on the VAX the first word can be anything. On the
[PDP](https://en.wikipedia.org/wiki/Programmed_Data_Processor), the first word
is a [branch](https://en.wikipedia.org/wiki/Branch_(computer_science))
is a [branch](https://en.wikipedia.org/wiki/Branch_(computer_science))
[instruction](https://en.wikipedia.org/wiki/Instruction_set_architecture#Instructions)
that branches over the VAX code. The PDP and VAX codes are thus completely
separate.
@@ -356,7 +356,7 @@ program that we came up with is as follows:
The first word (after the label `vax`) is the
[PDP](https://en.wikipedia.org/wiki/Programmed_Data_Processor) [branch
instruction](https://en.wikipedia.org/wiki/Branch_(computer_science)).
instruction](https://en.wikipedia.org/wiki/Branch_(computer_science)).
[PDP](https://en.wikipedia.org/wiki/Programmed_Data_Processor) branch
instructions are octal `400` + the distance divided by `2`. The string that both
the [PDP](https://en.wikipedia.org/wiki/Programmed_Data_Processor) and
@@ -366,10 +366,10 @@ programs use is after the `str` label, and the
`pdp` label.
On the [VAX](https://en.wikipedia.org/wiki/VAX), the program
[pushes](https://en.wikipedia.org/wiki/Stack_(abstract_data_type)) 9 (the length
of the string), the address of the string and 1 (the [file
[pushes](https://en.wikipedia.org/wiki/Stack_(abstract_data_type)) 9 (the length
of the string), the address of the string and 1, the [file
descriptor](https://en.wikipedia.org/wiki/File_descriptor) on the
[stack](https://en.wikipedia.org/wiki/Stack_(abstract_data_type))) and calls
[stack](https://en.wikipedia.org/wiki/Stack_(abstract_data_type)), and calls
`write(2)`. Since we didn't know the exact calling sequence for [system
calls](https://en.wikipedia.org/wiki/System_call), we just copied the source for
the `write(2)` system call stub into our program. After `write(2)` finishes, the
@@ -455,7 +455,7 @@ The only problem we had was that the program had chosen an
Since everybody knows what a [PDP-11](https://en.wikipedia.org/wiki/PDP-11)
branch instruction looks like (everyone knows that the traditional magic word
for an executable, `0407`, is a [PDP-11](https://en.wikipedia.org/wiki/PDP-11)
[branch](https://en.wikipedia.org/wiki/Branch_(computer_science))), we changed
[branch](https://en.wikipedia.org/wiki/Branch_(computer_science)), we changed
that to [decimal](https://en.wikipedia.org/wiki/Decimal). After checking the
size of the resulting program we saw that it was one byte too long. The limit
was 512 bytes, and our program was 513 bytes. So we changed the word `and` in
+6 -6
View File
@@ -452,7 +452,7 @@ that has ever been received! Like all great contest entries, it resulted in a
change of rules for the following year. To prevent a flood of similar programs,
the rules were changed, requesting non-machine specific code.</p>
<p>This program was selected for the 1987 t-shirt collection.</p>
<p>The C startup routine (via <a href="https://en.wikipedia.org/wiki/Crt0">crt0.o</a>)
<p>The C startup routine, via <a href="https://en.wikipedia.org/wiki/Crt0">crt0.o</a>,
transfers control to a location named <code>main</code>. In this case, <code>main</code> just happens
to be in the data area. The array of <code>short</code>s, which has been further
obfuscated by use of different data types, just happens to form a meaningful set
@@ -549,7 +549,7 @@ Our program is idempotent under <code>cb</code>.</p>
<h3 id="more-detailed-analysis">More detailed analysis</h3>
<p>When this program is compiled, the compiler places the array somewhere in
memory, just like it places any compiled code somewhere in memory. Usually, the
C startup code (<a href="https://en.wikipedia.org/wiki/Crt0">crt0.o</a>) calls a routine
C startup code, <a href="https://en.wikipedia.org/wiki/Crt0">crt0.o</a>, calls a routine
named <code>main()</code>. The loader fills in the address in the startup code, but at
least on the old systems where this program ran, it doesn’t know that the
<code>main()</code> in this program isn’t code but data!</p>
@@ -562,7 +562,7 @@ with the <code>calls</code> instruction. This instruction uses the first (2-byte
<a href="https://en.wikipedia.org/wiki/Word_(computer_architecture)">word</a> of the called
routine as a mask of
<a href="https://en.wikipedia.org/wiki/Processor_register">registers</a> that are to be
saved on the <a href="https://en.wikipedia.org/wiki/Stack_(abstract_data_type)">stack</a>.
saved on the <a href="https://en.wikipedia.org/wiki/Stack(abstract_data_type)">stack</a>.
In other words, on the VAX the first word can be anything. On the
<a href="https://en.wikipedia.org/wiki/Programmed_Data_Processor">PDP</a>, the first word
is a <a href="https://en.wikipedia.org/wiki/Branch_(computer_science)">branch</a>
@@ -664,9 +664,9 @@ programs use is after the <code>str</code> label, and the
<code>pdp</code> label.</p>
<p>On the <a href="https://en.wikipedia.org/wiki/VAX">VAX</a>, the program
<a href="https://en.wikipedia.org/wiki/Stack_(abstract_data_type)">pushes</a> 9 (the length
of the string), the address of the string and 1 (the <a href="https://en.wikipedia.org/wiki/File_descriptor">file
of the string), the address of the string and 1, the <a href="https://en.wikipedia.org/wiki/File_descriptor">file
descriptor</a> on the
<a href="https://en.wikipedia.org/wiki/Stack_(abstract_data_type)">stack</a>) and calls
<a href="https://en.wikipedia.org/wiki/Stack_(abstract_data_type)">stack</a>, and calls
<code>write(2)</code>. Since we didn’t know the exact calling sequence for <a href="https://en.wikipedia.org/wiki/System_call">system
calls</a>, we just copied the source for
the <code>write(2)</code> system call stub into our program. After <code>write(2)</code> finishes, the
@@ -745,7 +745,7 @@ The only problem we had was that the program had chosen an
Since everybody knows what a <a href="https://en.wikipedia.org/wiki/PDP-11">PDP-11</a>
branch instruction looks like (everyone knows that the traditional magic word
for an executable, <code>0407</code>, is a <a href="https://en.wikipedia.org/wiki/PDP-11">PDP-11</a>
<a href="https://en.wikipedia.org/wiki/Branch_(computer_science)">branch</a>), we changed
<a href="https://en.wikipedia.org/wiki/Branch_(computer_science)">branch</a>, we changed
that to <a href="https://en.wikipedia.org/wiki/Decimal">decimal</a>. After checking the
size of the resulting program we saw that it was one byte too long. The limit
was 512 bytes, and our program was 513 bytes. So we changed the word <code>and</code> in
+1 -1
View File
@@ -6,7 +6,7 @@ and try to figure how it does what it does! You may then wish to look at the
Author's remarks for even more details.
Hints against machine dependent code were added to the [rules](rules.txt) to
avoid another 1984 style entry ([1984/mullender](../1984/mullender/index.html)).
avoid another 1984 style [1984/mullender](../1984/mullender/index.html) entry.
[Rules](rules.txt) and [results](../years.html#1985) were posted to _net.lang.c_
and _net.unix-wizards_. Larry Bassel was invited to help in the judging.
Awards were given to 5 classes of programs since we were unable to select only
+2 -2
View File
@@ -18,8 +18,8 @@
./try.sh
```
If you have the `primes(6)` tool (sometimes part of [BSD
Games](https://github.com/vattam/BSDGames)) you can see
If you have the `primes(6)` tool (sometimes part of
([BSD](https://github.com/vattam/BSDGames) Games) you can see
what of the output in the first `N` (say `15` or `25`) lines are primes:
``` <!---sh-->
+2 -2
View File
@@ -403,8 +403,8 @@ Location: <a href="../../location.html#SE">SE</a> - <em>Kingdom of Sweden</em> (
<pre><code> ./august</code></pre>
<h2 id="try">Try:</h2>
<pre><code> ./try.sh</code></pre>
<p>If you have the <code>primes(6)</code> tool (sometimes part of <a href="https://github.com/vattam/BSDGames">BSD
Games</a>) you can see
<p>If you have the <code>primes(6)</code> tool (sometimes part of
(<a href="https://github.com/vattam/BSDGames">BSD</a> Games) you can see
what of the output in the first <code>N</code> (say <code>15</code> or <code>25</code>) lines are primes:</p>
<pre><code> ./primes.sh # 15
./primes.sh 25</code></pre>
+1 -1
View File
@@ -388,7 +388,7 @@ to compile it and how to run the winning program. Look at the winning source
and try to figure how it does what it does! You may then wish to look at the
Author’s remarks for even more details.</p>
<p>Hints against machine dependent code were added to the <a href="rules.txt">rules</a> to
avoid another 1984 style entry (<a href="../1984/mullender/index.html">1984/mullender</a>).
avoid another 1984 style <a href="../1984/mullender/index.html">1984/mullender</a> entry.
<a href="rules.txt">Rules</a> and <a href="../years.html#1985">results</a> were posted to <em>net.lang.c</em>
and <em>net.unix-wizards</em>. Larry Bassel was invited to help in the judging.
Awards were given to 5 classes of programs since we were unable to select only
+1 -1
View File
@@ -13,7 +13,7 @@ A poll was taken for the worst code for
[BSD](https://en.wikipedia.org/wiki/Berkeley_Software_Distribution) and [System
V](https://en.wikipedia.org/wiki/UNIX_System_V) program. The [Bourne
Shell](https://en.wikipedia.org/wiki/Bourne_shell) (`/bin/sh`) won for both
systems. The BSD [finger](https://en.wikipedia.org/wiki/Finger_(protocol))
systems. The BSD [finger](https://en.wikipedia.org/wiki/Finger_&#x28;protocol&#x29;)
program took third place.
[Rules](rules.txt) and [results](../years.html#1986) were posted to _net.lang.c_
+2 -2
View File
@@ -19,8 +19,8 @@ This caused a number of System V C pre-preprocessors to gripe about a
syntax error.
This program is a masterpiece of obfuscation and humor. Larry Wall (the hacker
who gave us [rn](https://en.wikipedia.org/wiki/Rn_(newsreader)) and
[patch](https://en.wikipedia.org/wiki/Patch_(Unix))) asks you to compile and
who gave us [rn](https://en.wikipedia.org/wiki/Rn_&#x28;newsreader&#x29;) and
[patch](https://en.wikipedia.org/wiki/Patch_&#x28;Unix&#x29;), etc.) asks you to compile and
consider the warning message generated by the C compiler. Then execute the
program and type characters into its standard input. You will see why the
compiler documents the program.
+1 -1
View File
@@ -407,7 +407,7 @@ This caused a number of System V C pre-preprocessors to gripe about a
syntax error.</p>
<p>This program is a masterpiece of obfuscation and humor. Larry Wall (the hacker
who gave us <a href="https://en.wikipedia.org/wiki/Rn_(newsreader)">rn</a> and
<a href="https://en.wikipedia.org/wiki/Patch_(Unix)">patch</a>) asks you to compile and
<a href="https://en.wikipedia.org/wiki/Patch_(Unix)">patch</a>, etc.) asks you to compile and
consider the warning message generated by the C compiler. Then execute the
program and type characters into its standard input. You will see why the
compiler documents the program.</p>
+1 -1
View File
@@ -29,7 +29,7 @@ We believe that you too will be amazed at just how much power Mr. Lievaart
packed into 1024 bytes!
This Plays the game of [Reversi
(Othello)](https://en.wikipedia.org/wiki/Reversi)! Compile and run. It then
[Othello](https://en.wikipedia.org/wiki/Reversi)! Compile and run. It then
asks for a playing level. Enter 0-10 (easy-hard). It then asks for
your move. A move is a number within 11-88, or 99 to pass. Illegal
moves (except for an illegal pass) are rejected. Then the computer
+2 -2
View File
@@ -409,8 +409,8 @@ Location: <a href="../../location.html#NL">NL</a> - <em>Kingdom of the Netherlan
<h2 id="judges-remarks">Judges’ remarks:</h2>
<p>We believe that you too will be amazed at just how much power Mr. Lievaart
packed into 1024 bytes!</p>
<p>This Plays the game of <a href="https://en.wikipedia.org/wiki/Reversi">Reversi
(Othello)</a>! Compile and run. It then
<p>This Plays the game of [Reversi
<a href="https://en.wikipedia.org/wiki/Reversi">Othello</a>! Compile and run. It then
asks for a playing level. Enter 0-10 (easy-hard). It then asks for
your move. A move is a number within 11-88, or 99 to pass. Illegal
moves (except for an illegal pass) are rejected. Then the computer
+1 -1
View File
@@ -58,7 +58,7 @@ For an interesting document on APL, see
This program is a handy picoAPL interpreter written in `C--`. It
outputs the evaluation of an
[APL](https://en.wikipedia.org/wiki/APL_(programming_language)) expression from standard
[APL](https://en.wikipedia.org/wiki/APL_&#x28;programming_language&#x29;) expression from standard
input. Functions are limited to dyadic `+`,`-`,`x`, and unary `-`;
numerals must be binary. Parentheses may be used for
grouping. For example:
+1 -1
View File
@@ -80,7 +80,7 @@ by the receiver. Command shell archives alleviate this problem somewhat, but
still require standardization for the function of data compression and
mail-transparency encoding. On Unix, these coding format quandaries are overcome
by planting a novel [Trojan
Horse](https://en.wikipedia.org/wiki/Trojan_horse_(computing)) in the archive
Horse](https://en.wikipedia.org/wiki/Trojan_horse_&#x28;computing&#x29;) in the archive
header to perform negotiation-less decoding.
Specifically, we outline the development of an extraordinarily compact portable
+1 -1
View File
@@ -21,7 +21,7 @@ Why is the following label necessary?
```
Notice that if you C beautify (cb) or pre-process this program, it
will no longer work correctly, if at all. (go ahead, try it... :-))
will no longer work correctly, if at all. Go ahead, try it... :-)
NOTE: One should remove the final trailing newline to obtain the
original source file. This step is not needed to compile
+1 -1
View File
@@ -405,7 +405,7 @@ Location: <a href="../../location.html#FR">FR</a> - <em>French Republic</em> (<e
<p>Why is the following label necessary?</p>
<pre><code> sorryfor_this_unused_but_very_needed_label:</code></pre>
<p>Notice that if you C beautify (cb) or pre-process this program, it
will no longer work correctly, if at all. (go ahead, try it… :-))</p>
will no longer work correctly, if at all. Go ahead, try it… :-)</p>
<p>NOTE: One should remove the final trailing newline to obtain the
original source file. This step is not needed to compile
this entry.</p>
+1 -1
View File
@@ -30,7 +30,7 @@ rotated from `the rug gary lent`!
## Judges' remarks:
This filter, 80 chars plus a newline, fits into a single line on most
terminals (unless your terminal has a line wrap mis-feature :-)).
terminals, unless your terminal has a line wrap mis-feature :-).
Note in 2023: fixing this entry to work with modern systems increased the size,
originally to 106 characters but it was dropped back down to 80 with clever use
+1 -1
View File
@@ -412,7 +412,7 @@ those who have a harder time reading backwards it says: <code>Gary lent the rug<
rotated from <code>the rug gary lent</code>!</p>
<h2 id="judges-remarks">Judges’ remarks:</h2>
<p>This filter, 80 chars plus a newline, fits into a single line on most
terminals (unless your terminal has a line wrap mis-feature :-)).</p>
terminals, unless your terminal has a line wrap mis-feature :-).</p>
<p>Note in 2023: fixing this entry to work with modern systems increased the size,
originally to 106 characters but it was dropped back down to 80 with clever use
of the Makefile.</p>
+2 -2
View File
@@ -137,7 +137,7 @@ part.
For more information on what you can do once you've piped [third](%%REPO_URL%%/1992/buzzard.2/third) into
first, type `help` and consult
[FORTH](https://en.wikipedia.org/wiki/Forth_(programming_language)) manuals for
[FORTH](https://en.wikipedia.org/wiki/Forth_&#x28;programming_language&#x29;) manuals for
further reference. Six sample THIRD programs are included in the files
`demo1.th` through `demo6.th`. See [buzzard.2.README.html](buzzard.2.README.html)
for more information.
@@ -190,7 +190,7 @@ answer the question "what will this do when I run it". A reader who has
deciphered `first` to this point may think they know the answer to this
question, but they may not know the answer to the more important question, "what
will this program do when given the right input?"
[FORTH](https://en.wikipedia.org/wiki/Forth_(programming_language)) aficionados,
[FORTH](https://en.wikipedia.org/wiki/Forth_&#x28;programming_language&#x29;) aficionados,
and especially FORTH implementers, may recognize the similarity of the internal
compiler format to many FORTH internal representations, and, being aware that
FORTH interpreters can often be self-compiling, may be suspicious that this
+2 -2
View File
@@ -147,8 +147,8 @@ by comparing the function pointer with the function itself).
Fourth, there are no independent routines for generating potential moves.
Instead, the program generates its moves by brute force: for every piece it
controls on the board, it attempts to move it to every square on the board.
Those moves that are legal it then explores to see their effects (using
[alpha-beta search](https://en.wikipedia.org/wiki/Alpha-beta_pruning)). This
Those moves that are legal it then explores to see their effects, using
[alpha-beta search](https://en.wikipedia.org/wiki/Alpha-beta_pruning). This
tactic somewhat obfuscates the algorithm used by the program.
Finally, there are three key constants that occur throughout the program: `64`,
+2 -2
View File
@@ -499,8 +499,8 @@ by comparing the function pointer with the function itself).</p>
<p>Fourth, there are no independent routines for generating potential moves.
Instead, the program generates its moves by brute force: for every piece it
controls on the board, it attempts to move it to every square on the board.
Those moves that are legal it then explores to see their effects (using
<a href="https://en.wikipedia.org/wiki/Alpha-beta_pruning">alpha-beta search</a>). This
Those moves that are legal it then explores to see their effects, using
<a href="https://en.wikipedia.org/wiki/Alpha-beta_pruning">alpha-beta search</a>. This
tactic somewhat obfuscates the algorithm used by the program.</p>
<p>Finally, there are three key constants that occur throughout the program: <code>64</code>,
<code>8</code>, and <code>3</code> (<code>lg 8</code>). Rather than making these available at compile-time,
+1 -1
View File
@@ -13,7 +13,7 @@
where:
`datafile` is the initial pattern (default: [dgibson.data1](%%REPO_URL%%/1993/dgibson/dgibson.data1))
`datafile` is the initial pattern (default is the [dgibson.data1](%%REPO_URL%%/1993/dgibson/dgibson.data1) file)
## Try:
+1 -1
View File
@@ -402,7 +402,7 @@ Location: <a href="../../location.html#ZZ">ZZ</a> - <em>Unknown location</em></l
<h2 id="to-use">To use:</h2>
<pre><code> ./dgibson.sh [datafile]</code></pre>
<p>where:</p>
<p><code>datafile</code> is the initial pattern (default: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1993/dgibson/dgibson.data1">dgibson.data1</a>)</p>
<p><code>datafile</code> is the initial pattern (default is the <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1993/dgibson/dgibson.data1">dgibson.data1</a> file)</p>
<h2 id="try">Try:</h2>
<pre><code> ./try.sh</code></pre>
<h2 id="judges-remarks">Judges’ remarks:</h2>
+1 -1
View File
@@ -25,7 +25,7 @@ errors.
Rule abuse was encouraged this year - two of this year's winning entries found
new and interesting abuses of the rules. Next year's rules will change
due to these ([smr](smr/index.html) and [dodsond2](dodsond2/index.html)) entries'
due to these [smr](smr/index.html) and [dodsond2](dodsond2/index.html) entries'
forms of abuse.
+1 -1
View File
@@ -403,7 +403,7 @@ unable to find an ANSI C compiler that flagged such expressions as
errors.</p>
<p>Rule abuse was encouraged this year - two of this year’s winning entries found
new and interesting abuses of the rules. Next year’s rules will change
due to these (<a href="smr/index.html">smr</a> and <a href="dodsond2/index.html">dodsond2</a>) entries’
due to these <a href="smr/index.html">smr</a> and <a href="dodsond2/index.html">dodsond2</a> entries’
forms of abuse.</p>
<h2 id="want-to-be-an-ioccc-judge">Want to be an IOCCC Judge?</h2>
<p>We are thinking about adding a 3rd judge to our team. A 3rd judge
+4 -4
View File
@@ -67,18 +67,18 @@ The basic theme (pun) of this program is:
```
My entry ([shapiro.c](%%REPO_URL%%/1994/shapiro/shapiro.c)) is mostly comments, formatted in the shape of a
My entry, [shapiro.c](%%REPO_URL%%/1994/shapiro/shapiro.c), is mostly comments, formatted in the shape of a
clock. If you strip out the comments and look at the code you will
quickly realize that the comments were the important part and that
the code does very little (see pun above). It writes (to `stdout`)
another C program ([shapiro_t2.c](%%REPO_URL%%/1994/shapiro/shapiro_t2.c)). This is the first level of
another C program ([shapiro_t2.c](%%REPO_URL%%/1994/shapiro/shapiro_t2.c). This is the first level of
obfuscation.
The second program ([shapiro_t2.c](%%REPO_URL%%/1994/shapiro/shapiro_t2.c) (use `make everything` first)
prints a clock in the upper right hand corner of your VTxxx/ANSI display.
Most of the surface obfuscation in the second program
([shapiro_t2.c](%%REPO_URL%%/1994/shapiro/shapiro_t2.c)) was an attempt to make it as small as possible.
Most of the surface obfuscation in the second program,
[shapiro_t2.c](%%REPO_URL%%/1994/shapiro/shapiro_t2.c), was an attempt to make it as small as possible.
You should be able to see around this with `cb(1)` and some more intelligent
variable names. Once you get past this you will realize that the third level of
obfuscation is a six member client/server hierarchy. (See the
+4 -4
View File
@@ -430,16 +430,16 @@ this program. Note that this alt file is currently missing. See
<p>The basic theme (pun) of this program is:</p>
<pre><code> &quot;This time (everything) is not where it should be.&quot;
~~~~</code></pre>
<p>My entry (<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1994/shapiro/shapiro.c">shapiro.c</a>) is mostly comments, formatted in the shape of a
<p>My entry, <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1994/shapiro/shapiro.c">shapiro.c</a>, is mostly comments, formatted in the shape of a
clock. If you strip out the comments and look at the code you will
quickly realize that the comments were the important part and that
the code does very little (see pun above). It writes (to <code>stdout</code>)
another C program (<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1994/shapiro/shapiro_t2.c">shapiro_t2.c</a>). This is the first level of
another C program (<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1994/shapiro/shapiro_t2.c">shapiro_t2.c</a>. This is the first level of
obfuscation.</p>
<p>The second program (<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1994/shapiro/shapiro_t2.c">shapiro_t2.c</a> (use <code>make everything</code> first)
prints a clock in the upper right hand corner of your VTxxx/ANSI display.</p>
<p>Most of the surface obfuscation in the second program
(<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1994/shapiro/shapiro_t2.c">shapiro_t2.c</a>) was an attempt to make it as small as possible.
<p>Most of the surface obfuscation in the second program,
<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1994/shapiro/shapiro_t2.c">shapiro_t2.c</a>, was an attempt to make it as small as possible.
You should be able to see around this with <code>cb(1)</code> and some more intelligent
variable names. Once you get past this you will realize that the third level of
obfuscation is a six member client/server hierarchy. (See the
+1 -1
View File
@@ -380,7 +380,7 @@
<!-- BEFORE: 1st line of markdown file: 1994/shapiro/shapiro.md -->
<h1 id="hints">HINTS</h1>
<p>For the first program (<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1994/shapiro/shapiro.c">shapiro.c</a>):</p>
<p>For the first program, <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1994/shapiro/shapiro.c">shapiro.c</a>:</p>
<p>This is a very simple program:</p>
<pre><code> 1. #include &lt;stdio.h&gt;
2. main()
+1 -1
View File
@@ -1,6 +1,6 @@
# HINTS
For the first program ([shapiro.c](%%REPO_URL%%/1994/shapiro/shapiro.c)):
For the first program, [shapiro.c](%%REPO_URL%%/1994/shapiro/shapiro.c):
This is a very simple program:
+3 -3
View File
@@ -86,9 +86,9 @@ fix it without breaking something else?
This program contains four pairs of fractals/effects and three methods of
animating them. There are two windows for a pair of fractals, one of which
contains static fractal (e.g. [Mandelbrot
set](https://en.wikipedia.org/wiki/Mandelbrot_set)) and the other an animating
one (e.g. [Julia set](https://en.wikipedia.org/wiki/Julia_set)) which is derived
contains static fractal (e.g., [Mandelbrot](https://en.wikipedia.org/wiki/Mandelbrot_set) set)
and the other an animating
one (e.g., [Julia](https://en.wikipedia.org/wiki/Julia_set) set) which is derived
from the same formula as the static one. Only one pair of fractals can be
displayed in one process.
+3 -3
View File
@@ -434,9 +434,9 @@ fix it without breaking something else?</p>
<h3 id="interactive-fractals-for-x-window-system">Interactive Fractals for X Window System</h3>
<p>This program contains four pairs of fractals/effects and three methods of
animating them. There are two windows for a pair of fractals, one of which
contains static fractal (e.g. <a href="https://en.wikipedia.org/wiki/Mandelbrot_set">Mandelbrot
set</a>) and the other an animating
one (e.g. <a href="https://en.wikipedia.org/wiki/Julia_set">Julia set</a>) which is derived
contains static fractal (e.g., <a href="https://en.wikipedia.org/wiki/Mandelbrot_set">Mandelbrot</a> set)
and the other an animating
one (e.g., <a href="https://en.wikipedia.org/wiki/Julia_set">Julia</a> set) which is derived
from the same formula as the static one. Only one pair of fractals can be
displayed in one process.</p>
<p>To animate the fractal, you must move your mouse on the static
+1 -1
View File
@@ -77,7 +77,7 @@ event of a system shutdown or reboot.
### Bugs
The alternative version ([weisberg.alt.c](%%REPO_URL%%/1994/weisberg/weisberg.alt.c)) has never actually run
The alternative version ([weisberg.alt.c](%%REPO_URL%%/1994/weisberg/weisberg.alt.c) source) has never actually run
to completion. After running for close to a week it had reached somewhere around
250e6, when it became necessary to test the reboot feature (which worked
remarkably well). As there are quite a lot of primes to be found before reaching
+1 -1
View File
@@ -433,7 +433,7 @@ run to completion, so as an added feature, it will cease execution upon
reception of a signal (any will do equally well), as well as in the
event of a system shutdown or reboot.</p>
<h3 id="bugs">Bugs</h3>
<p>The alternative version (<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1994/weisberg/weisberg.alt.c">weisberg.alt.c</a>) has never actually run
<p>The alternative version (<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1994/weisberg/weisberg.alt.c">weisberg.alt.c</a> source) has never actually run
to completion. After running for close to a week it had reached somewhere around
250e6, when it became necessary to test the reboot feature (which worked
remarkably well). As there are quite a lot of primes to be found before reaching
+2 -2
View File
@@ -39,8 +39,8 @@ commands including a way to do the above command but with more steps.
Except for some silly requirements regarding input validation, CRC checking, and
similar unimportant fluff, this program is a fully compliant
[RFC1951](https://www.ietf.org/rfc/rfc1951.txt)/[RFC1952](https://www.ietf.org/rfc/rfc1952.txt)
([GNU Gzip](https://www.gnu.org/software/gzip/)) file uncompressor. Feed it a
[RFC1951](https://www.ietf.org/rfc/rfc1951.txt)/[RFC1952](https://www.ietf.org/rfc/rfc1952.txt),
[GNU Gzip](https://www.gnu.org/software/gzip/), file uncompressor. Feed it a
`gzip` compressed file on standard input, and it will write the fully
uncompressed original file to standard output.
+2 -2
View File
@@ -413,8 +413,8 @@ commands including a way to do the above command but with more steps.</p>
<h2 id="authors-remarks">Author’s remarks:</h2>
<p>Except for some silly requirements regarding input validation, CRC checking, and
similar unimportant fluff, this program is a fully compliant
<a href="https://www.ietf.org/rfc/rfc1951.txt">RFC1951</a>/<a href="https://www.ietf.org/rfc/rfc1952.txt">RFC1952</a>
(<a href="https://www.gnu.org/software/gzip/">GNU Gzip</a>) file uncompressor. Feed it a
<a href="https://www.ietf.org/rfc/rfc1951.txt">RFC1951</a>/<a href="https://www.ietf.org/rfc/rfc1952.txt">RFC1952</a>,
<a href="https://www.gnu.org/software/gzip/">GNU Gzip</a>, file uncompressor. Feed it a
<code>gzip</code> compressed file on standard input, and it will write the fully
uncompressed original file to standard output.</p>
<h3 id="objustifications-for-this-entry">ObJustifications for this entry:</h3>
+3 -2
View File
@@ -60,8 +60,9 @@ This 1-line program allows various analog ASCII clocks to print out the time;
the ASCII clock is built from the command line arguments, so many different
types of clocks can be generated. Three different scripts are supplied to print
out a grandfather clock, a mantle clock that runs backwards, and a linear-style
clock. (they are [clock1.sh](%%REPO_URL%%/1996/westley/clock1.sh), [clock2.sh](%%REPO_URL%%/1996/westley/clock2.sh), and
[clock3.sh](%%REPO_URL%%/1996/westley/clock3.sh))
clock. (they are [clock1.sh](%%REPO_URL%%/1996/westley/clock1.sh),
[clock2.sh](%%REPO_URL%%/1996/westley/clock2.sh), and
[clock3.sh](%%REPO_URL%%/1996/westley/clock3.sh).
The program makes the following (possibly non-portable) assumptions:
+3 -2
View File
@@ -426,8 +426,9 @@ understand it.</p>
the ASCII clock is built from the command line arguments, so many different
types of clocks can be generated. Three different scripts are supplied to print
out a grandfather clock, a mantle clock that runs backwards, and a linear-style
clock. (they are <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1996/westley/clock1.sh">clock1.sh</a>, <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1996/westley/clock2.sh">clock2.sh</a>, and
<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1996/westley/clock3.sh">clock3.sh</a>)</p>
clock. (they are <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1996/westley/clock1.sh">clock1.sh</a>,
<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1996/westley/clock2.sh">clock2.sh</a>, and
<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1996/westley/clock3.sh">clock3.sh</a>.</p>
<p>The program makes the following (possibly non-portable) assumptions:</p>
<ol type="1">
<li><p>Command line strings can be written to.</p></li>
+2 -2
View File
@@ -77,8 +77,8 @@ the letter `e`.
The IOCCC has been no stranger to this concept. Several winning entries from
years past have accomplished interesting feats while completely avoiding the use
of certain C constructs thought to be essential (e.g.
[1988/robison.c](%%REPO_URL%%/1988/robison/robison.c)). If you have to ask why they would
of certain C constructs thought to be essential (e.g.,
[1988/robison.c](%%REPO_URL%%/1988/robison/robison.c) file). If you have to ask why they would
do it this way, then this contest just isn't for you.
In continuing with this fine tradition, this program suggests to the ANSI
+2 -2
View File
@@ -441,8 +441,8 @@ entire novel (E. V. Wright’s “Gadsby”) in which no word contains
the letter <code>e</code>.</p>
<p>The IOCCC has been no stranger to this concept. Several winning entries from
years past have accomplished interesting feats while completely avoiding the use
of certain C constructs thought to be essential (e.g.
<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1988/robison/robison.c">1988/robison.c</a>). If you have to ask why they would
of certain C constructs thought to be essential (e.g.,
<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/1988/robison/robison.c">1988/robison.c</a> file). If you have to ask why they would
do it this way, then this contest just isn’t for you.</p>
<p>In continuing with this fine tradition, this program suggests to the ANSI
committee some new practical simplifications for the C language. For instance,
+4 -4
View File
@@ -123,7 +123,7 @@ The build script should give an example command to compile the program.
### Features
[Basic Block](https://en.wikipedia.org/wiki/Basic_block)
[Cache](https://en.wikipedia.org/wiki/Cache_(computing)): Rather than
[Cache](https://en.wikipedia.org/wiki/Cache_&#x28;computing&#x29;): Rather than
translating each instruction individually the dynamic binary translator
generates a translation for an entire basic block of subject code. Having
translated a block once, the target code generated will be stored for the
@@ -138,7 +138,7 @@ The program runs [dynamically
linked](https://en.wikipedia.org/wiki/Dynamic_linker) [ELF
binaries](https://en.wikipedia.org/wiki/Executable_and_Linkable_Format), and
when the subject program attempts to make a call to a standard
[library](https://en.wikipedia.org/wiki/Library_(computing)), the translator
[library](https://en.wikipedia.org/wiki/Library_&#x28;computing&#x29;), the translator
attempts to make an appropriate call to the native system libraries on the
target machine. This involves mangling between different calling conventions,
etc.
@@ -209,9 +209,9 @@ on to the next line of code.
Due to space limitations only a handful of instructions are supported; these
instructions which are supported are supported in somewhat non-conventional
ways: chunks of the architecture (e.g. flags) are just ignored, the ELF
[loader](https://en.wikipedia.org/wiki/Loader_(computing)) does not really load
[loader](https://en.wikipedia.org/wiki/Loader_&#x28;computing&#x29;) does not really load
the [ELF binary](https://en.wikipedia.org/wiki/Executable_and_Linkable_Format),
the target [library linking](https://en.wikipedia.org/wiki/Linker_(computing))
the target [library linking](https://en.wikipedia.org/wiki/Linker_&#x28;computing&#x29;)
can only pass up to 3 parameters to the target library function, etc.
In short, please consider this a full disclaimer for any bug that may
+2 -2
View File
@@ -53,8 +53,8 @@ You can use it by typing:
or by giving the C source to its standard input.
`args` are given to the `main()` function of `bellard.c` (`argv[0]` is
[bellard.c](%%REPO_URL%%/2001/bellard/bellard.c)).
`args` are given to the `main()` function of `bellard.c`, `argv[0]` is
[bellard.c](%%REPO_URL%%/2001/bellard/bellard.c).
### Examples:
+2 -2
View File
@@ -420,8 +420,8 @@ program.</p>
<p>You can use it by typing:</p>
<pre><code> ./bellard bellard.c [args]...</code></pre>
<p>or by giving the C source to its standard input.</p>
<p><code>args</code> are given to the <code>main()</code> function of <code>bellard.c</code> (<code>argv[0]</code> is
<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2001/bellard/bellard.c">bellard.c</a>).</p>
<p><code>args</code> are given to the <code>main()</code> function of <code>bellard.c</code>, <code>argv[0]</code> is
<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2001/bellard/bellard.c">bellard.c</a>.</p>
<h3 id="examples">Examples:</h3>
<ul>
<li>Sample compilation and execution:</li>
+1 -1
View File
@@ -162,7 +162,7 @@ program would probably be rated somewhere around 1700-1900. It is better
than most players, but will get destroyed by experienced human opponents.
This program searches to a fixed depth of 3
[ply](https://en.wikipedia.org/wiki/Ply_(game_theory)). Because it does not
[ply](https://en.wikipedia.org/wiki/Ply_&#x28;game_theory&#x29;). Because it does not
search very deep, it performs very poorly in quiet strategic positions.
In such positions, it will often just shuffle pieces around aimlessly
until a tactical exchange presents itself.
+1 -1
View File
@@ -19,7 +19,7 @@
```
If you use vi(m) you can see a pattern in [herrmann2.cup](%%REPO_URL%%/2001/herrmann2/herrmann2.cup) and
[herrmann2.ioccc][(%%REPO_URL%%/2001/herrmann2/herrmann2.ioccc]) by say:
[herrmann2.ioccc][(%%REPO_URL%%/2001/herrmann2/herrmann2.ioccc] by say:
```
+1 -1
View File
@@ -404,7 +404,7 @@ Location: <a href="../../location.html#DE">DE</a> - <em>Federal Republic of Germ
<h2 id="try">Try:</h2>
<pre><code> ./try.sh</code></pre>
<p>If you use vi(m) you can see a pattern in <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2001/herrmann2/herrmann2.cup">herrmann2.cup</a> and
[herrmann2.ioccc][(https://github.com/ioccc-src/temp-test-ioccc/blob/master/2001/herrmann2/herrmann2.ioccc]) by say:</p>
[herrmann2.ioccc][(https://github.com/ioccc-src/temp-test-ioccc/blob/master/2001/herrmann2/herrmann2.ioccc] by say:</p>
<pre><code> /[pon]\</code></pre>
<p>and</p>
<pre><code> /l</code></pre>
+2 -2
View File
@@ -93,8 +93,8 @@ transcription to standard output as a [portable
graymap](https://en.wikipedia.org/wiki/Netpbm#PGM_example) (PGM) file.
The specific transcription mode is the [Black
Speech](https://www.glyphweb.com/arda/b/blackspeech.html) ([Tengwar
mode](https://www.glyphweb.com/arda/t/tengwar.html)), as
Speech](https://www.glyphweb.com/arda/b/blackspeech.html)
([Tengwar](https://www.glyphweb.com/arda/t/tengwar.html) mode), as
used in the inscription on the [One
Ring](https://www.glyphweb.com/arda/o/onering.html). The program handles the
following digraphs:
+2 -2
View File
@@ -454,8 +454,8 @@ argument text into Tolkien’s Elvish letters, and writes the
transcription to standard output as a <a href="https://en.wikipedia.org/wiki/Netpbm#PGM_example">portable
graymap</a> (PGM) file.</p>
<p>The specific transcription mode is the <a href="https://www.glyphweb.com/arda/b/blackspeech.html">Black
Speech</a> (<a href="https://www.glyphweb.com/arda/t/tengwar.html">Tengwar
mode</a>), as
Speech</a>
(<a href="https://www.glyphweb.com/arda/t/tengwar.html">Tengwar</a> mode), as
used in the inscription on the <a href="https://www.glyphweb.com/arda/o/onering.html">One
Ring</a>. The program handles the
following digraphs:</p>
+1 -1
View File
@@ -114,7 +114,7 @@ although the compiler gives it special meaning) and no preprocessor
directives.
This program is a small
[ray-tracer](https://en.wikipedia.org/wiki/Ray_tracing_(graphics)). The first
[ray-tracer](https://en.wikipedia.org/wiki/Ray_tracing_&#x28;graphics&#x29;). The first
line of the source code may be modified if you want the resulting image to be of
some other resolution than the predefined. The `A` value is an anti-alias
factor. Setting it to `1` disables the anti-aliasing feature which makes the
+2 -2
View File
@@ -102,8 +102,8 @@ well as the judges' remarks below plus [gavin.html](gavin.html).
## Judges' remarks:
Over the years, we've seen a program that immediately dumps core if executed on
the "wrong" architectures (e.g., [1984/mullender](../../1984/mullender/index.html)) and a
program that dumps core after a while (e.g., [2001/bellard](../../2001/bellard/index.html)).
the "wrong" architectures (e.g., [1984/mullender](../../1984/mullender/index.html) entry) and a
program that dumps core after a while (e.g., [2001/bellard](../../2001/bellard/index.html) entry).
This entry will happily compile and execute on most any architecture - the trick
is that the result, to be useful, must be produced (and can only be enjoyed) on
a particular architecture. We have not decided yet whether to disallow this for
+2 -2
View File
@@ -441,8 +441,8 @@ generated are the same names. See <a href="#to-use">to use</a> and <a href="#try
well as the judges’ remarks below plus <a href="gavin.html">gavin.html</a>.</p>
<h2 id="judges-remarks">Judges’ remarks:</h2>
<p>Over the years, we’ve seen a program that immediately dumps core if executed on
the “wrong” architectures (e.g., <a href="../../1984/mullender/index.html">1984/mullender</a>) and a
program that dumps core after a while (e.g., <a href="../../2001/bellard/index.html">2001/bellard</a>).
the “wrong” architectures (e.g., <a href="../../1984/mullender/index.html">1984/mullender</a> entry) and a
program that dumps core after a while (e.g., <a href="../../2001/bellard/index.html">2001/bellard</a> entry).
This entry will happily compile and execute on most any architecture - the trick
is that the result, to be useful, must be produced (and can only be enjoyed) on
a particular architecture. We have not decided yet whether to disallow this for
+1 -1
View File
@@ -47,7 +47,7 @@ which line it is on.
make alt
```
The macro `Ag` ([silver](https://en.wikipedia.org/wiki/Silver)) controls how
The macro [Ag](https://en.wikipedia.org/wiki/Silver) controls how
many number of lines to print on a line. Set at default to 11 protons, salt, if
you wish to make it silver, 47 (a prime) protons, do:
+1 -1
View File
@@ -416,7 +416,7 @@ that don’t end up having too many line breaks it also makes it easier to see
which line it is on.</p>
<h3 id="alternate-build">Alternate build:</h3>
<pre><code> make alt</code></pre>
<p>The macro <code>Ag</code> (<a href="https://en.wikipedia.org/wiki/Silver">silver</a>) controls how
<p>The macro <a href="https://en.wikipedia.org/wiki/Silver">Ag</a> controls how
many number of lines to print on a line. Set at default to 11 protons, salt, if
you wish to make it silver, 47 (a prime) protons, do:</p>
<pre><code> make clobber Ag=47 alt</code></pre>
+1 -1
View File
@@ -157,7 +157,7 @@ Then run the program to reveal all prime numbers up to 32 (if you used
I wasn't able to compile the full program which calculates [prime
numbers](https://en.wikipedia.org/wiki/Prime_number) up to 1024 using GNU `cpp`
(or any other [pre-processor](https://en.wikipedia.org/wiki/C_preprocessor)) so
(or any other [pre-processor](https://en.wikipedia.org/wiki/C_preprocessor) tool) so
I had to write my own. Knowing how the program works it was quite easy to reduce
the compilation time from several hours to about one second. I also added some
statistics to my home made pre-processor and I found that calculating prime
+1 -1
View File
@@ -504,7 +504,7 @@ work. This will take some time….</p>
<h3 id="verification">Verification</h3>
<p>I wasn’t able to compile the full program which calculates <a href="https://en.wikipedia.org/wiki/Prime_number">prime
numbers</a> up to 1024 using GNU <code>cpp</code>
(or any other <a href="https://en.wikipedia.org/wiki/C_preprocessor">pre-processor</a>) so
(or any other <a href="https://en.wikipedia.org/wiki/C_preprocessor">pre-processor</a> tool) so
I had to write my own. Knowing how the program works it was quite easy to reduce
the compilation time from several hours to about one second. I also added some
statistics to my home made pre-processor and I found that calculating prime
+2 -2
View File
@@ -111,7 +111,7 @@ it as you wish, though please give me credit.
### What is a sudoku?
(If you know, feel free to skip this section. Get more details from [the
wikipedia entry](http://en.wikipedia.org/wiki/Sudoku))
wikipedia entry](http://en.wikipedia.org/wiki/Sudoku).
A sudoku is a type of logic puzzle. You are given a grid of 9x9 boxes, some
of which contain digits. This is divided into a 3x3 set up, e.g. (from the
@@ -177,7 +177,7 @@ program generated):
```
Be warned - it's evil! (I certainly haven't been able to solve it by hand. The
brute-force program given above, `sudoku-bfi.c` ([aidan.alt.c](%%REPO_URL%%/2005/aidan/aidan.alt.c)),
brute-force program given above, `sudoku-bfi.c`, [aidan.alt.c](%%REPO_URL%%/2005/aidan/aidan.alt.c),
also has trouble - it took 66 seconds to solve it - but probably for different
reasons. That's the worst performance I've had from brute-force so far!)
+2 -2
View File
@@ -457,7 +457,7 @@ Go find some unpopular multinational to sue instead.</p>
it as you wish, though please give me credit.</p>
<h3 id="what-is-a-sudoku">What is a sudoku?</h3>
<p>(If you know, feel free to skip this section. Get more details from <a href="http://en.wikipedia.org/wiki/Sudoku">the
wikipedia entry</a>)</p>
wikipedia entry</a>.</p>
<p>A sudoku is a type of logic puzzle. You are given a grid of 9x9 boxes, some
of which contain digits. This is divided into a 3x3 set up, e.g. (from the
Wikipedia article - fairly easy):</p>
@@ -507,7 +507,7 @@ program generated):</p>
3 . . | . . . | . . .
. . . | . . . | . 6 1</code></pre>
<p>Be warned - it’s evil! (I certainly haven’t been able to solve it by hand. The
brute-force program given above, <code>sudoku-bfi.c</code> (<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2005/aidan/aidan.alt.c">aidan.alt.c</a>),
brute-force program given above, <code>sudoku-bfi.c</code>, <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2005/aidan/aidan.alt.c">aidan.alt.c</a>,
also has trouble - it took 66 seconds to solve it - but probably for different
reasons. That’s the worst performance I’ve had from brute-force so far!)</p>
<h3 id="usage">Usage</h3>
+1 -1
View File
@@ -222,7 +222,7 @@ isolated `||` on line 68?
But wait... why aren't any statements terminated by semicolons? Why is there
only ONE semicolon in the entire program?! Why is the author opening nested
blocks by such strange things as `||` and `(`, and closing them by `||` and `))`? The
blocks by such strange things as `||` and `(`, and closing them by `||` and `)`? The
`for` loop isn't a `for` loop! The `do` loop isn't a `do` loop! Or... are they? Well,
the `for` loop is defined in terms of a `while` loop. But wait, the `while` loop is
defined in terms of the `do` loop. And the `do` loop is defined in terms of ...
+1 -1
View File
@@ -525,7 +525,7 @@ are there such strange statements, like that empty string on line 65, or that
isolated <code>||</code> on line 68?</p>
<p>But wait… why aren’t any statements terminated by semicolons? Why is there
only ONE semicolon in the entire program?! Why is the author opening nested
blocks by such strange things as <code>||</code> and <code>(</code>, and closing them by <code>||</code> and <code>))</code>? The
blocks by such strange things as <code>||</code> and <code>(</code>, and closing them by <code>||</code> and <code>)</code>? The
<code>for</code> loop isn’t a <code>for</code> loop! The <code>do</code> loop isn’t a <code>do</code> loop! Or… are they? Well,
the <code>for</code> loop is defined in terms of a <code>while</code> loop. But wait, the <code>while</code> loop is
defined in terms of the <code>do</code> loop. And the <code>do</code> loop is defined in terms of …
+1 -1
View File
@@ -121,7 +121,7 @@ diagrams](https://en.wikipedia.org/wiki/Voronoi_diagram), see
[Qhull](http://www.qhull.org/), [CGAL](https://www.cgal.org) and the like but
you may still encounter large output volumes (and have to handle some sort of
clipping in order to represent properly infinite regions of the diagram in
[SVG](https://www.w3.org/TR/SVG11/expanded-toc.html)).
[SVG](https://www.w3.org/TR/SVG11/expanded-toc.html).
Beware, compilation may report warnings about precision loss, linting may be a
disaster, but the code should remain portable, and the output accurate enough
+1 -1
View File
@@ -468,7 +468,7 @@ diagrams</a>, see
<a href="http://www.qhull.org/">Qhull</a>, <a href="https://www.cgal.org">CGAL</a> and the like but
you may still encounter large output volumes (and have to handle some sort of
clipping in order to represent properly infinite regions of the diagram in
<a href="https://www.w3.org/TR/SVG11/expanded-toc.html">SVG</a>).</p>
<a href="https://www.w3.org/TR/SVG11/expanded-toc.html">SVG</a>.</p>
<p>Beware, compilation may report warnings about precision loss, linting may be a
disaster, but the code should remain portable, and the output accurate enough
for most devices (including many inkjet printers). If you ever miss precision
+1 -1
View File
@@ -28,7 +28,7 @@ simple 3-character fix will make it slightly less so.
Quite a few BF programs found on the Net expect byte-based memory, quite a few
exceed the capacity of this interpreter, but there are many that work. Some
small [quines](https://en.wikipedia.org/wiki/Quine_(computing)) work, some don't.
small [quines](https://en.wikipedia.org/wiki/Quine_&#x28;computing&#x29;) work, some don't.
Why?
+5 -5
View File
@@ -68,14 +68,14 @@ get the first mode, run the program without arguments:
```
The other mode is accessible running the program with one argument
(5-[ply](https://en.wikipedia.org/wiki/Ply_(game_theory))
(5-[ply](https://en.wikipedia.org/wiki/Ply_&#x28;game_theory&#x29;)
analysis):
``` <!---sh-->
./toledo a
```
Two arguments for 6-[ply](https://en.wikipedia.org/wiki/Ply_(game_theory))
Two arguments for 6-[ply](https://en.wikipedia.org/wiki/Ply_&#x28;game_theory&#x29;)
analysis:
``` <!---sh-->
@@ -83,7 +83,7 @@ analysis:
```
And each successive argument will analyze one
[ply](https://en.wikipedia.org/wiki/Ply_(game_theory)) more. There is no ply
[ply](https://en.wikipedia.org/wiki/Ply_&#x28;game_theory&#x29;) more. There is no ply
limit, but beyond 7 ply is very slow, try it at your own risk and computing
time.
@@ -125,7 +125,7 @@ algorithms.
The interface accounts for only a fraction of the code, the core does multiples
functions: it is called recursively to analyze and evaluate each
[ply](https://en.wikipedia.org/wiki/Ply_(game_theory)), does [alpha-beta
[ply](https://en.wikipedia.org/wiki/Ply_&#x28;game_theory&#x29;), does [alpha-beta
pruning](https://en.wikipedia.org/wiki/Alpha-beta_pruning), move generation,
machine playing, check detection, illegal move verification and does moves after
they are verified.
@@ -142,7 +142,7 @@ Other features are:
* [Checkmate](https://en.wikipedia.org/wiki/Checkmate) detection.
* Stalemate detection.
* Computer is tough (check
7-[ply](https://en.wikipedia.org/wiki/Ply_(game_theory))) and even in 5 ply can give a surprise to
7-[ply](https://en.wikipedia.org/wiki/Ply_&#x28;game_theory&#x29;) and even in 5 ply can give a surprise to
amateur players.
+1 -1
View File
@@ -475,7 +475,7 @@ computer can do all legal chess moves.</p>
<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
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>
+1 -1
View File
@@ -29,7 +29,7 @@ sure to pay attention to commas! :-)
## Author's remarks:
This entry is a [Wolfenstein](https://en.wikipedia.org/wiki/Wolfenstein) style
[graphics engine](https://en.wikipedia.org/wiki/Rendering_(computer_graphics))
[graphics engine](https://en.wikipedia.org/wiki/Rendering_&#x28;computer_graphics&#x29;)
where a user can navigate in a
[3D](https://en.wikipedia.org/wiki/3D_computer_graphics) world. The
[maze](https://en.wikipedia.org/wiki/Maze) has walls with [bitmap
+2 -2
View File
@@ -41,7 +41,7 @@ A: Electronic Design Automation - Mechanical Abstract Machine Emulator
What is TOFU? It's not a veggie friendly food, nor it is
[Verilog](https://en.wikipedia.org/wiki/Verilog) or
[VHDL](https://en.wikipedia.org/wiki/VHDL) It is not even
[Pascal](https://en.wikipedia.org/wiki/Pascal_(programming_language))!
[Pascal](https://en.wikipedia.org/wiki/Pascal_&#x28;programming_language&#x29;)!
NOTE: On some systems, `file(1)` claims one of the `.tofu` files is Pascal
source. :-)
@@ -66,7 +66,7 @@ circuits)? This program is my tribute to the early computer pioneers like
tool designed to introduce students to digital circuit theory using technology
that was considered state of the art in the 1940s! To enable you to fully
understand the capabilities of this circuit simulator, I have included a 55 page
manual ([info.pdf](info.pdf)) in the info portion of the entry submission.
manual, [info.pdf](info.pdf), in the info portion of the entry submission.
The primary obfuscation is the data structure chosen for parsing the
input file and for executing the simulation. Oh man... coding that
+1 -1
View File
@@ -432,7 +432,7 @@ circuits)? This program is my tribute to the early computer pioneers like
tool designed to introduce students to digital circuit theory using technology
that was considered state of the art in the 1940s! To enable you to fully
understand the capabilities of this circuit simulator, I have included a 55 page
manual (<a href="info.pdf">info.pdf</a>) in the info portion of the entry submission.</p>
manual, <a href="info.pdf">info.pdf</a>, in the info portion of the entry submission.</p>
<p>The primary obfuscation is the data structure chosen for parsing the
input file and for executing the simulation. Oh man… coding that
data structure gave me such a bad headache. But, I figure, who needs
+3 -3
View File
@@ -89,10 +89,10 @@ include:
- constructors (invoked by the new operator).
- new operators (every class gets its own new operator at compile time).
- virtual method tables (all the virtual method tables have been combined to a
single [vtable](https://en.wikipedia.org/wiki/Virtual_method_table)).
single [vtable](https://en.wikipedia.org/wiki/Virtual_method_table) table).
- runtime method binding.
- [inheritance](https://en.wikipedia.org/wiki/Inheritance_(object-oriented_programming))
and [polymorphism](https://en.wikipedia.org/wiki/Polymorphism_(computer_science)).
- [inheritance](https://en.wikipedia.org/wiki/Inheritance_&#x28;object-oriented_programming&#x29;)
and [polymorphism](https://en.wikipedia.org/wiki/Polymorphism_&#x28;computer_science&#x29;).
It is left as an exercise to the reader to find a corresponding
implementation in a popular object-oriented programming language.
+1 -1
View File
@@ -450,7 +450,7 @@ include:</p>
<li>constructors (invoked by the new operator).</li>
<li>new operators (every class gets its own new operator at compile time).</li>
<li>virtual method tables (all the virtual method tables have been combined to a
single <a href="https://en.wikipedia.org/wiki/Virtual_method_table">vtable</a>).</li>
single <a href="https://en.wikipedia.org/wiki/Virtual_method_table">vtable</a> table).</li>
<li>runtime method binding.</li>
<li><a href="https://en.wikipedia.org/wiki/Inheritance_(object-oriented_programming)">inheritance</a>
and <a href="https://en.wikipedia.org/wiki/Polymorphism_(computer_science)">polymorphism</a>.</li>
+1 -1
View File
@@ -135,7 +135,7 @@ separated list of assignments to do once per pixel, and the second a semicolon
separated list of assignments and conditions that will be executed (and
conditions checked) for each iteration (up to the maximum). Using the left and
right mouse buttons you will be able to zoom in and out (a la
[XaoS](https://github.com/xaos-project/XaoS)), the zooming algorithm is a bit
[XaoS](https://github.com/xaos-project/XaoS) project), the zooming algorithm is a bit
slower than `XaoS`'s but it should give slightly better results.
Formulas can use all `a-z` (lowercase) variables, and the special
+1 -1
View File
@@ -468,7 +468,7 @@ separated list of assignments to do once per pixel, and the second a semicolon
separated list of assignments and conditions that will be executed (and
conditions checked) for each iteration (up to the maximum). Using the left and
right mouse buttons you will be able to zoom in and out (a la
<a href="https://github.com/xaos-project/XaoS">XaoS</a>), the zooming algorithm is a bit
<a href="https://github.com/xaos-project/XaoS">XaoS</a> project), the zooming algorithm is a bit
slower than <code>XaoS</code>’s but it should give slightly better results.</p>
<p>Formulas can use all <code>a-z</code> (lowercase) variables, and the special
variables <code>c</code> and <code>i</code> are respectively set by default to the
+1 -1
View File
@@ -102,7 +102,7 @@ and a disk controller, just like at the start of the personal computers
revolution (circa 1975).
It needs an initial memory image to do something usable, so along with it you
will find two files: ([C.BASIC](%%REPO_URL%%/2006/toledo2/C.BASIC) and [C.BIOS](%%REPO_URL%%/2006/toledo2/C.BIOS)). Rename
will find two files: [C.BASIC](%%REPO_URL%%/2006/toledo2/C.BASIC) and [C.BIOS](%%REPO_URL%%/2006/toledo2/C.BIOS). Rename
[C.BASIC](%%REPO_URL%%/2006/toledo2/C.BASIC) to `C` (NOTE from the judges: running `make` will do this for
you), run the emulator, and et voila! you have the public domain Palo Alto [Tiny
BASIC](https://en.wikipedia.org/wiki/Tiny_BASIC) (by Li-Chen Wang), published in
+1 -1
View File
@@ -452,7 +452,7 @@ removes those files extracted from the <code>KAYPROII.ZIP</code>.</p>
and a disk controller, just like at the start of the personal computers
revolution (circa 1975).</p>
<p>It needs an initial memory image to do something usable, so along with it you
will find two files: (<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2006/toledo2/C.BASIC">C.BASIC</a> and <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2006/toledo2/C.BIOS">C.BIOS</a>). Rename
will find two files: <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2006/toledo2/C.BASIC">C.BASIC</a> and <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2006/toledo2/C.BIOS">C.BIOS</a>. Rename
<a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2006/toledo2/C.BASIC">C.BASIC</a> to <code>C</code> (NOTE from the judges: running <code>make</code> will do this for
you), run the emulator, and et voila! you have the public domain Palo Alto <a href="https://en.wikipedia.org/wiki/Tiny_BASIC">Tiny
BASIC</a> (by Li-Chen Wang), published in
+1 -1
View File
@@ -82,7 +82,7 @@ a mistake and the computer surpasses you. ;)
### WHAT ABOUT THE ENGINE
Uses an [alpha-beta](https://en.wikipedia.org/wiki/Alpha_Beta) search up to a
depth of 3+level [ply](https://en.wikipedia.org/wiki/Ply_(game_theory)),
depth of 3+level [ply](https://en.wikipedia.org/wiki/Ply_&#x28;game_theory&#x29;),
extended with quiescence search, that helps playing strength, something around
1500 ELO (level 1) to 1700 ELO (level 3).
+1 -1
View File
@@ -33,7 +33,7 @@ threshold.
## Judges' remarks:
This program plays [Life](https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life)
(see also [here](https://conwaylife.com)), computes Pi to 16 digits
(see [here](https://conwaylife.com) also), computes Pi to 16 digits
if given its own source as input, and allows to check if your garden
is a [Garden of Eden](http://en.wikipedia.org/wiki/Garden_of_Eden_%28cellular_automaton%29), all in one source.
+1 -1
View File
@@ -410,7 +410,7 @@ Location: <a href="../../location.html#GB">GB</a> - <em>United Kingdom of Great
threshold.</p>
<h2 id="judges-remarks">Judges’ remarks:</h2>
<p>This program plays <a href="https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life">Life</a>
(see also <a href="https://conwaylife.com">here</a>), computes Pi to 16 digits
(see <a href="https://conwaylife.com">here</a> also), computes Pi to 16 digits
if given its own source as input, and allows to check if your garden
is a <a href="http://en.wikipedia.org/wiki/Garden_of_Eden_%28cellular_automaton%29">Garden of Eden</a>, all in one source.</p>
<p>If you have enough time to spare, put the plan of your garden in a text file,
+2 -2
View File
@@ -175,9 +175,9 @@ to help the IOCCC judges. Here's to shorter, more frequent contests!
### Description
This is a multilayer [perceptron](https://en.wikipedia.org/wiki/Perceptron) (a
This is a multilayer [perceptron](https://en.wikipedia.org/wiki/Perceptron), a
[feedforward artificial neural
network](https://en.wikipedia.org/wiki/Feedforward_neural_network))
network](https://en.wikipedia.org/wiki/Feedforward_neural_network),
which can be trained, using on-line
[backpropagation](https://en.wikipedia.org/wiki/Backpropagation), to classify input files.
+2 -2
View File
@@ -490,9 +490,9 @@ Data that XORs to 1</p></li>
intelligent</a> judging tool
to help the IOCCC judges. Here’s to shorter, more frequent contests!</p>
<h3 id="description">Description</h3>
<p>This is a multilayer <a href="https://en.wikipedia.org/wiki/Perceptron">perceptron</a> (a
<p>This is a multilayer <a href="https://en.wikipedia.org/wiki/Perceptron">perceptron</a>, a
<a href="https://en.wikipedia.org/wiki/Feedforward_neural_network">feedforward artificial neural
network</a>)
network</a>,
which can be trained, using on-line
<a href="https://en.wikipedia.org/wiki/Backpropagation">backpropagation</a>, to classify input files.</p>
<p>It has a fixed topology of <code>2^16</code> input neurons, 6 hidden neurons and 1 output
+3 -3
View File
@@ -75,8 +75,8 @@ This version of `grep` recognizes two more options, not present in normal
`grep` implementations:
* `-kN` Permit `N` insertions, deletions or mismatches of characters in the
matches (aka
[edit-distance](https://en.wikipedia.org/wiki/Edit_distance)). E.g.
matches, aka
[edit-distance](https://en.wikipedia.org/wiki/Edit_distance). E.g.,
"`obfuscated`" matches "`obfuscation`"
with one deletion and two mismatches. Likewise, "`obfuscate`" and
"`oversimplify`" match with 7
@@ -119,7 +119,7 @@ expressions by putting `]` as the first character, and putting `-` last.
### Other uses
* You can use this in place of [cat](https://en.wikipedia.org/wiki/Cat_(Unix)).
* You can use this in place of [cat](https://en.wikipedia.org/wiki/Cat_&#x28;Unix&#x29;).
Just say
+2 -2
View File
@@ -436,8 +436,8 @@ The options <code>-i</code>, <code>-c</code>, <code>-v</code> and <code>-n</code
<code>grep</code> implementations:</p>
<ul>
<li><p><code>-kN</code> Permit <code>N</code> insertions, deletions or mismatches of characters in the
matches (aka
<a href="https://en.wikipedia.org/wiki/Edit_distance">edit-distance</a>). E.g.
matches, aka
<a href="https://en.wikipedia.org/wiki/Edit_distance">edit-distance</a>. E.g.,
“<code>obfuscated</code>” matches “<code>obfuscation</code>”
with one deletion and two mismatches. Likewise, “<code>obfuscate</code>” and
“<code>oversimplify</code>” match with 7
+2 -2
View File
@@ -33,7 +33,7 @@ For more detailed information see [2011 richards bugs](../../bugs.html#2011_rich
## Judges' remarks:
Oh no, yet another
[dc](https://en.wikipedia.org/wiki/Dc_(computer_program))-style calculator? (see
[dc](https://en.wikipedia.org/wiki/Dc_&#x28;computer_program&#x29;)-style calculator? (see
[2000/dlowe](../../2000/dlowe/index.html) using an embedded Perl interpreter and deemed `Worst
Abuse of the Rules`). Well, this one does it (expression calculation, that is,
not the rule abuse) in a different way. The author claims that his calculator
@@ -44,7 +44,7 @@ without attempting to unravel the source?
## Author's remarks:
This is an implementation of the classic UNIX
[dc](https://en.wikipedia.org/wiki/Dc_(computer_program)) command, the
[dc](https://en.wikipedia.org/wiki/Dc_&#x28;computer_program&#x29;) command, the
[reverse Polish](https://en.wikipedia.org/wiki/Reverse_Polish_notation)
calculator. Actually it's a pretty bad implementation, since it only implements
32-bit integers (well, `sizeof(int)`-sized integers). It only implements the
+2 -2
View File
@@ -18,7 +18,7 @@ Windows](%%REPO_URL%%/2011/toledo/toledo.alt2.c). See [Alternate code](#alternat
```
## Alternate code:
## Alternate code
The first alt version, [toledo.alt.c](%%REPO_URL%%/2011/toledo/toledo.alt.c), allows you to reconfigure
the controls and the dimensions more easily.
@@ -191,7 +191,7 @@ Not really, just kidding :D
* It is written in the only true C: K&R, and no, that doesn't mean
Katherine & Rose.
* Vectorial scalable graphics: do you want a bigger viewport? Change variables
`M` and `N` (see the [alternate code](#alternate-code)).
`M` and `N` (see the [alternate](#alternate-code) code).
* Half of the program is formatted as 3D cube. View with tabs at 8 columns and a
square font.
* The other half of the program is unprintable source code, so no typing from
+2 -2
View File
@@ -405,7 +405,7 @@ controls and size</a> and <a href="https://github.com/ioccc-src/temp-test-ioccc/
Windows</a>. See <a href="#alternate-code">Alternate code</a> below.</p>
<h2 id="to-use">To use:</h2>
<pre><code> ./toledo</code></pre>
<h2 id="alternate-code">Alternate code:</h2>
<h2 id="alternate-code">Alternate code</h2>
<p>The first alt version, <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2011/toledo/toledo.alt.c">toledo.alt.c</a>, allows you to reconfigure
the controls and the dimensions more easily.</p>
<p>The second version, <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2011/toledo/toledo.alt2.c">toledo.alt2.c</a>, should work for Windows but
@@ -527,7 +527,7 @@ x86-64 512 MB).</li>
<li>It is written in the only true C: K&amp;R, and no, that doesn’t mean
Katherine &amp; Rose.</li>
<li>Vectorial scalable graphics: do you want a bigger viewport? Change variables
<code>M</code> and <code>N</code> (see the <a href="#alternate-code">alternate code</a>).</li>
<code>M</code> and <code>N</code> (see the <a href="#alternate-code">alternate</a> code).</li>
<li>Half of the program is formatted as 3D cube. View with tabs at 8 columns and a
square font.</li>
<li>The other half of the program is unprintable source code, so no typing from
+1 -1
View File
@@ -156,7 +156,7 @@ direction and surface normal.
#### Further details (contains spoilers):
The program is not quite a traditional [ray
tracer](https://en.wikipedia.org/wiki/Ray_tracing_(graphics)), but a "[sphere
tracer](https://en.wikipedia.org/wiki/Ray_tracing_&#x28;graphics&#x29;), but a "[sphere
tracer](sphere-tracing.pdf)" which uses distance fields to encode proximity to
objects in the scene. Using sphere tracing to compute visibility instead of
analytic ray tracing provides two advantages: first, it greatly eases the
+1 -1
View File
@@ -56,7 +56,7 @@ But don't ignore the other winning entries! There are games, utilities,
eye candy, calculators and graphical tools to explore.
This year, Yusuke Endoh won with two entries, one of which
([endoh1](endoh1/index.html)) won the special Honorable mention award. Eight of
([endoh1](endoh1/index.html) entry) won the special Honorable mention award. Eight of
the winning entries were from people who won in previous years.
This year we had a number of authors from Asia. We saw our second
+2 -2
View File
@@ -35,7 +35,7 @@ For more detailed information see [2012 blakely bugs](../../bugs.html#2012_blake
Several IOCCC themes ([RPN
calculator](https://en.wikipedia.org/wiki/Reverse_Polish_notation), animated
[GIF](https://en.wikipedia.org/wiki/GIF) generator, [ray
tracing](https://en.wikipedia.org/wiki/Ray_tracing_(graphics))) in one package!
tracing](https://en.wikipedia.org/wiki/Ray_tracing_&#x28;graphics&#x29;) graphics) in one package!
Very impressive!
The checkerboard pattern in the output can be broken. Could you figure out how?
@@ -49,7 +49,7 @@ Larger GIF files confuse some image viewers.
This program renders a generic
[RPN](https://en.wikipedia.org/wiki/Reverse_Polish_notation) expression in
[ray-traced](https://en.wikipedia.org/wiki/Ray_tracing_(graphics)) animated
[ray-traced](https://en.wikipedia.org/wiki/Ray_tracing_&#x28;graphics&#x29;) animated
[GIF](https://en.wikipedia.org/wiki/GIF) form. The expression in spatial
variables `x` and `y` is specified on the command-line with the required
resolution, and an animated GIF showing a fly-around of the resulting surface is
+1 -1
View File
@@ -411,7 +411,7 @@ Location: <a href="../../location.html#GB">GB</a> - <em>United Kingdom of Great
<p>Several IOCCC themes (<a href="https://en.wikipedia.org/wiki/Reverse_Polish_notation">RPN
calculator</a>, animated
<a href="https://en.wikipedia.org/wiki/GIF">GIF</a> generator, <a href="https://en.wikipedia.org/wiki/Ray_tracing_(graphics)">ray
tracing</a>) in one package!
tracing</a> graphics) in one package!
Very impressive!</p>
<p>The checkerboard pattern in the output can be broken. Could you figure out how?</p>
<p>Larger GIF files confuse some image viewers.</p>
+2 -2
View File
@@ -108,8 +108,8 @@ be `"`` ` ``cat deckmyn.c`` ` ``"`.
The second command line argument is the music itself. This is, again, a string,
not a file name. All music signs are entered as tokens of exactly 3 characters.
The code is very sensitive to bad spacing! So for instance, if you use a file to
write the music (e.g. [example\_greensleeves](%%REPO_URL%%/2012/deckmyn/example_greensleeves)), you should
keep in mind that newline is also a character!
write the music (e.g., [example\_greensleeves](%%REPO_URL%%/2012/deckmyn/example_greensleeves) file),
you should keep in mind that newline is also a character!
### Internals
+2 -2
View File
@@ -452,8 +452,8 @@ be <code>"``</code> <code>cat deckmyn.c</code> <code>``"</code>.</p>
<p>The second command line argument is the music itself. This is, again, a string,
not a file name. All music signs are entered as tokens of exactly 3 characters.
The code is very sensitive to bad spacing! So for instance, if you use a file to
write the music (e.g. <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/deckmyn/example_greensleeves">example_greensleeves</a>), you should
keep in mind that newline is also a character!</p>
write the music (e.g., <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/deckmyn/example_greensleeves">example_greensleeves</a> file),
you should keep in mind that newline is also a character!</p>
<h3 id="internals">Internals</h3>
<p>To minimise the memory footprint, this program has <em>no variable declarations at
all</em>, except for the arguments to <code>main()</code>. The only available memory space is
+2 -2
View File
@@ -291,8 +291,8 @@ casting) it to an integer-type variable.
[pour-out.txt](%%REPO_URL%%/2012/endoh1/pour-out.txt) pours you a cup of tea.
[tanada.txt](%%REPO_URL%%/2012/endoh1/tanada.txt) simulates "Terrace farming". ("Tanada" means a "[terraced rice
fields](https://en.wikipedia.org/wiki/Terrace_(earthworks))" in Japanese.)
[tanada.txt](%%REPO_URL%%/2012/endoh1/tanada.txt) simulates "Terrace farming". ("Tanada" means a
"[terraced rice](https://en.wikipedia.org/wiki/Terrace_(earthworks) fields)" in Japanese.)
[clock.txt](%%REPO_URL%%/2012/endoh1/clock.txt) is a "water" clock created by HAMANO Tsukasa.
+2 -2
View File
@@ -570,8 +570,8 @@ casting) it to an integer-type variable.</p>
<p><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/endoh1/logo.txt">logo.txt</a> is a source of the logo in this remark file.</p>
<p><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/endoh1/column.txt">column.txt</a> is a water column collapse, which is a popular demo of SPH.</p>
<p><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/endoh1/pour-out.txt">pour-out.txt</a> pours you a cup of tea.</p>
<p><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/endoh1/tanada.txt">tanada.txt</a> simulates “Terrace farming”. (“Tanada” means a “<a href="https://en.wikipedia.org/wiki/Terrace_(earthworks)">terraced rice
fields</a>” in Japanese.)</p>
<p><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/endoh1/tanada.txt">tanada.txt</a> simulates “Terrace farming”. (“Tanada” means a
“<a href="https://en.wikipedia.org/wiki/Terrace_(earthworks)%20fields">terraced rice</a>” in Japanese.)</p>
<p><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/endoh1/clock.txt">clock.txt</a> is a “water” clock created by HAMANO Tsukasa.</p>
<p>Other <code>*.txt</code> files are from the judges.</p>
<p><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/endoh1/endoh1_color.c">endoh1_color.c</a> is a variant that shows the density by using terminal 256
+6 -6
View File
@@ -34,7 +34,7 @@ and:
## Judges' remarks:
A
[pi](https://en.wikipedia.org/wiki/Pi)/[e](https://en.wikipedia.org/wiki/E_(mathematical_constant))
[pi](https://en.wikipedia.org/wiki/Pi)/[e](https://en.wikipedia.org/wiki/E_&#x28;mathematical_constant&#x29;)
printing quasi-[quine](https://en.wikipedia.org/wiki/Quine_(computing) in [ASCII
art](https://en.wikipedia.org/wiki/ASCII_art) with a compressed font in it; what
else to wish for in this program? [Virtual
@@ -47,7 +47,7 @@ Yeah, "Again". Sorry. But I don't feel guilty or uncomfortable.
This entry is based on 'over-used themes' such as self reproducing
program and [pi](https://en.wikipedia.org/wiki/Pi) or
[e](https://en.wikipedia.org/wiki/E_(mathematical_constant))) computation. I
[e](https://en.wikipedia.org/wiki/E_&#x28;mathematical_constant&#x28;) computation. I
know you're tired of them.
But have you ever seen them **all-in-one**?
@@ -65,18 +65,18 @@ This program generates a new program in the shape of the Greek letter
One more thing... When you give a command line argument `e` to the
first program, the generated one will compute [Napier's
constant](https://en.wikipedia.org/wiki/E_(mathematical_constant)))
constant](https://en.wikipedia.org/wiki/E_&#x28;mathematical_constant&#x29;)
rather than pi.
### Obfuscation
This program itself is in the shape of a
[spigot](https://en.wikipedia.org/wiki/Tap_(valve)). This is derived as an
[spigot](https://en.wikipedia.org/wiki/Tap_&#x28;valve&#x29;). This is derived as an
analogy with [spigot algorithm](https://en.wikipedia.org/wiki/Spigot_algorithm)
which infinitely computes the value of a mathematical constant such as
[pi](https://en.wikipedia.org/wiki/Pi) or
[e](https://en.wikipedia.org/wiki/E_(mathematical_constant)).
[e](https://en.wikipedia.org/wiki/E_&#x28;mathematical_constant&#x29;).
The two sets of programs, `314*.c` and `271*.c`, are almost the same
except their shape and constant computational part. I tailored the
@@ -85,7 +85,7 @@ tweaking the computational order and adding meaningless code fragments.
On the other hand, to make it fit inside one screen (80 x 25), my program is
shortened properly, more than it looks. (As you may know,
[quines](https://en.wikipedia.org/wiki/Quine_(computing)) need to make its
[quines](https://en.wikipedia.org/wiki/Quine_&#x28;computing&#x29;) need to make its
program size doubled.) For example, this program involves 3x5 bitmap font data
of ten characters (`0` -- `9`), as just 20 bytes: `G1%xJ{;Q7wunmuGuu%uu`. We
can decode character `n` as `275*s[n+10] - 8*s[n] - 8`. I solved the system of
+2 -2
View File
@@ -421,7 +421,7 @@ machine</a> emulation?</p>
<p>Yeah, “Again”. Sorry. But I don’t feel guilty or uncomfortable.</p>
<p>This entry is based on ‘over-used themes’ such as self reproducing
program and <a href="https://en.wikipedia.org/wiki/Pi">pi</a> or
<a href="https://en.wikipedia.org/wiki/E_(mathematical_constant)">e</a>) computation. I
<a href="https://en.wikipedia.org/wiki/E_(mathematical_constant(">e</a> computation. I
know you’re tired of them.</p>
<p>But have you ever seen them <strong>all-in-one</strong>?</p>
<h3 id="what-it-is">What it is</h3>
@@ -436,7 +436,7 @@ know you’re tired of them.</p>
</ul>
<p>One more thing… When you give a command line argument <code>e</code> to the
first program, the generated one will compute <a href="https://en.wikipedia.org/wiki/E_(mathematical_constant)">Napier’s
constant</a>)
constant</a>
rather than pi.</p>
<h3 id="obfuscation">Obfuscation</h3>
<p>This program itself is in the shape of a
+1 -1
View File
@@ -65,7 +65,7 @@ confused.
The results can be viewed with Acrobat Reader,
[evince](http://en.wikipedia.org/wiki/Evince) and Apple's
[Preview](https://en.wikipedia.org/wiki/Preview_(macOS)).
[Preview](https://en.wikipedia.org/wiki/Preview_&#x28;macOS&#x29;).
The updated version can also be viewed using Ghostscript.
+1 -1
View File
@@ -421,7 +421,7 @@ very likely say <a href="http://bit.ly/R6ALpK">wow</a> as we did!</p></li>
<p>But don’t ignore the other winning entries! There are games, utilities,
eye candy, calculators and graphical tools to explore.</p>
<p>This year, Yusuke Endoh won with two entries, one of which
(<a href="endoh1/index.html">endoh1</a>) won the special Honorable mention award. Eight of
(<a href="endoh1/index.html">endoh1</a> entry) won the special Honorable mention award. Eight of
the winning entries were from people who won in previous years.</p>
<p>This year we had a number of authors from Asia. We saw our second
authors from China and first from Korea. We are pleased to see
+1 -1
View File
@@ -153,7 +153,7 @@ Output code has these features:
* Uses a fairly efficient encoding scheme, better than `uuencode` for
files larger than ~13K, and better than `base64` for files larger
than 20K.
* Encryption with [ISAAC](https://en.wikipedia.org/wiki/ISAAC_(cipher)), a
* Encryption with [ISAAC](https://en.wikipedia.org/wiki/ISAAC_&#x28;cipher&#x29;), a
cryptographically secure pseudorandom number generator.
* Trivial 3 language polyglot.
+4 -4
View File
@@ -71,8 +71,8 @@ representation in lambda calculus), and translates the evaluated result back
into a stream of bits to be output.
Lambda is encoded as 00, application as 01, and the variable bound by the `n`th
enclosing lambda (denoted `n` in so-called [De Bruijn
notation](https://en.wikipedia.org/wiki/De_Bruijn_notation)) as `1^{n}0`.
enclosing lambda (denoted `n` in so-called [De Bruijn](https://en.wikipedia.org/wiki/De_Bruijn_notation)
notation) as `1^{n}0`.
That's all there is to
[BLC](https://tromp.github.io/cl/Binary_lambda_calculus.html)!
@@ -110,8 +110,8 @@ The size of the term space is fixed at compile time with `-DA`.
### A half byte `cat`
The shortest (closed) lambda calculus term is `\x x (\ 1` in [De Bruijn
notation](https://en.wikipedia.org/wiki/De_Bruijn_notation)) which is the
The shortest (closed) lambda calculus term is `\x x (\ 1` in
[De Bruijn](https://en.wikipedia.org/wiki/De_Bruijn_notation) notation which is the
identity function. When its encoding `0010` is fed into the universal machine,
it will simply copy the input to the output (well, not that simply, since each
byte is smashed to bits and rebuilt from scratch). Voila: a half byte cat:
+4 -4
View File
@@ -435,8 +435,8 @@ the remainder of input (translated to a lazy list of
representation in lambda calculus), and translates the evaluated result back
into a stream of bits to be output.</p>
<p>Lambda is encoded as 00, application as 01, and the variable bound by the <code>n</code>th
enclosing lambda (denoted <code>n</code> in so-called <a href="https://en.wikipedia.org/wiki/De_Bruijn_notation">De Bruijn
notation</a>) as <code>1^{n}0</code>.
enclosing lambda (denoted <code>n</code> in so-called <a href="https://en.wikipedia.org/wiki/De_Bruijn_notation">De Bruijn</a>
notation) as <code>1^{n}0</code>.
That’s all there is to
<a href="https://tromp.github.io/cl/Binary_lambda_calculus.html">BLC</a>!</p>
<p>For example the encoding of lambda term <code>S = \x \y \z (x z) (y z)</code>,
@@ -459,8 +459,8 @@ bit of input, and using characters <code>0</code> and <code>1</code> for output.
1,2,3,4,8,9: result not in list form</code></pre>
<p>The size of the term space is fixed at compile time with <code>-DA</code>.</p>
<h3 id="a-half-byte-cat">A half byte <code>cat</code></h3>
<p>The shortest (closed) lambda calculus term is <code>\x x (\ 1</code> in <a href="https://en.wikipedia.org/wiki/De_Bruijn_notation">De Bruijn
notation</a>) which is the
<p>The shortest (closed) lambda calculus term is <code>\x x (\ 1</code> in
<a href="https://en.wikipedia.org/wiki/De_Bruijn_notation">De Bruijn</a> notation which is the
identity function. When its encoding <code>0010</code> is fed into the universal machine,
it will simply copy the input to the output (well, not that simply, since each
byte is smashed to bits and rebuilt from scratch). Voila: a half byte cat:</p>
+1 -1
View File
@@ -31,7 +31,7 @@ will not detect multiple issues.
## Alternate code:
The alternate code, [zeitak.alt.c](z%%REPO_URL%%/2012/zeitak/eitak.alt.c), is a version that was slightly
The alternate code, [zeitak.alt.c](%%REPO_URL%%/2012/zeitak/zeitak.alt.c), is a version that was slightly
deobfuscated by the author. You may find reading it helpful in your attempt to
understand this extremely subtle entry.
+1 -1
View File
@@ -411,7 +411,7 @@ text files that are not code.</p>
<p>NOTE: the program prints an error and exits on the first nesting error so it
will not detect multiple issues.</p>
<h2 id="alternate-code">Alternate code:</h2>
<p>The alternate code, <a href="zhttps://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/zeitak/eitak.alt.c">zeitak.alt.c</a>, is a version that was slightly
<p>The alternate code, <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/zeitak/zeitak.alt.c">zeitak.alt.c</a>, is a version that was slightly
deobfuscated by the author. You may find reading it helpful in your attempt to
understand this extremely subtle entry.</p>
<h3 id="alternate-build">Alternate build:</h3>
+5 -5
View File
@@ -177,8 +177,8 @@ would not be necessary:
For reference, the names of the 7
[tetriminos](https://en.wikipedia.org/wiki/Tetromino) (the game pieces or
actually a kind of geometric shape used in
[Tetris](https://en.wikipedia.org/wiki/Tetris)) appear in the table below.
actually a kind of geometric shape used in the
[Tetris](https://en.wikipedia.org/wiki/Tetris) game) appear in the table below.
<img src="names.png"
alt="image of names of the 7 Tetris game pieces"
@@ -333,7 +333,7 @@ rate in which the terminal application receives and displays the [ANSI
escape](https://en.wikipedia.org/wiki/ANSI_escape_code) sequences.
To slow down the output programmatically, introduce a delay immediately after the
call to `fflush(3)` (N.B: see [birken.alt.c](%%REPO_URL%%/2013/birken/birken.alt.c)).
call to `fflush(3)` (N.B: see [birken.alt.c](%%REPO_URL%%/2013/birken/birken.alt.c) source).
### IOCCC Size Tool Bug
@@ -529,7 +529,7 @@ origin of each file is detailed below (character, game, company, year).
* [belmont.txt](belmont.txt) - [Simon
Belmont](https://en.wikipedia.org/wiki/Simon_Belmont),
[Castlevania](https://en.wikipedia.org/wiki/Castlevania_(1986_video_game)),
[Castlevania](https://en.wikipedia.org/wiki/Castlevania_&#x28;1986_video_game&#x29;),
[Konami](https://en.wikipedia.org/wiki/Konami), 1986.
* [bloober.txt](bloober.txt) - Bloober, [Super Mario
@@ -573,7 +573,7 @@ Plant](https://www.mariowiki.com/Piranha_Plant), Super Mario Brothers, Nintendo,
* [samus.txt](samus.txt) - [Samus
Aran](https://metroid.fandom.com/wiki/Samus_Aran),
[Metroid](https://metroid.fandom.com/wiki/Metroid_(game)), Nintendo/[Intelligent
[Metroid](https://metroid.fandom.com/wiki/Metroid_&#x28;game&#x29;), Nintendo/[Intelligent
Systems](https://en.wikipedia.org/wiki/Intelligent_Systems), 1986.
* [toad.txt](toad.txt) - [Toad](https://www.mariowiki.com/Toad), Super Mario
+3 -3
View File
@@ -501,8 +501,8 @@ would not be necessary:</p>
<h3 id="single-square-emitters">Single Square Emitters</h3>
<p>For reference, the names of the 7
<a href="https://en.wikipedia.org/wiki/Tetromino">tetriminos</a> (the game pieces or
actually a kind of geometric shape used in
<a href="https://en.wikipedia.org/wiki/Tetris">Tetris</a>) appear in the table below.</p>
actually a kind of geometric shape used in the
<a href="https://en.wikipedia.org/wiki/Tetris">Tetris</a> game) appear in the table below.</p>
<p><img src="names.png"
alt="image of names of the 7 Tetris game pieces"
width=696 height=144></p>
@@ -620,7 +620,7 @@ represented using ANSI escape sequences.</p>
rate in which the terminal application receives and displays the <a href="https://en.wikipedia.org/wiki/ANSI_escape_code">ANSI
escape</a> sequences.</p>
<p>To slow down the output programmatically, introduce a delay immediately after the
call to <code>fflush(3)</code> (N.B: see <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/birken/birken.alt.c">birken.alt.c</a>).</p>
call to <code>fflush(3)</code> (N.B: see <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/birken/birken.alt.c">birken.alt.c</a> source).</p>
<h3 id="ioccc-size-tool-bug">IOCCC Size Tool Bug</h3>
<p>This program demonstrates how to exploit a bug in IOCCC size tool version
<code>2013-07-30-v17</code>. The first line of the program is reproduced below.</p>
Loaded 100 of 174 files, more files were not shown because too many files have changed in this diff. Show more