README.md and Makefile files from various years

These are mostly just formatting fixes but there might be some typos
here and there.

These years have not been checked thoroughly but I made fixes and want
them in for when I do work on them.

As far as the Makefiles go: notes were added that correspond to the
notes in the README.md files which is why I have put them in the same
commit.
This commit is contained in:
Cody Boone Ferguson committed 2023-03-18 11:31:15 -07:00
1 parent fa2a763f6c
commit c91b3c5565
11 files changed
+121 -105

No files matched your search

+3 -3
View File
@@ -10,17 +10,17 @@
make all
### To run
### To run:
./buzzard
## Judges' comments
## Judges' comments:
You will be A-mazed.
You are invited to try to cheat, ... if you can figure out how! :-)
## Author's comments
## Author's comments:
### HOW TO PLAY:
+3 -1
View File
@@ -182,7 +182,9 @@ all: data ${TARGET}
supernova deep_magic magic charon pluto
${PROG}: ${PROG}.c
@echo "NOTE: This entry might not compile when using modern compilers."
@echo "NOTE: This will not compile when using modern compilers because"
@echo "it relies on a compiler bug which was fixed in gcc 2.3.3 (a very"
@echo "long time ago now)."
${RM} -f \"\;main\(\)\{puts\(\"Hello\ World!\"\)\;\}char\*C=\".c
${CP} lmfjyh.c \"\;main\(\)\{puts\(\"Hello\ World!\"\)\;\}char\*C=\".c
${CC} ${CFLAGS} \
+5 -6
View File
@@ -9,7 +9,9 @@
make all
NOTE: This entry might not compile when using modern compilers.
NOTE: This entry will not compile on modern systems because it
relies on a compiler bug which was fixed in gcc 2.3.3 (a very
long time ago now).
### To run
@@ -17,13 +19,10 @@
## Judges' comments
See the makefile for details.
See the Makefile for details.
There's more than one way to get around disk quotas. :-)
There's more than one way to get around disk quotas. :-)
This entry will not compile on modern systems because it
relies on a compiler bug which was fixed in gcc 2.3.3 (a very
long time ago now).
## Author's comments
+11 -12
View File
@@ -10,7 +10,12 @@
make all
NOTE: This entry might not compile when using modern compilers.
NOTE: we could not compile this entry under modern macOS but it will work
fine under linux. It likely fails to compile under macOS because its gcc is
actually just clang which is more strict about the type of the third
argument of main(). If you have gcc under macOS it might work just as well.
We did not test other systems.
### To run
@@ -21,7 +26,7 @@
## Judges' comments
The octal expression may contain:
The octal expression may contain:
unary operators: +, -
binary operators +, -, *, /, %
@@ -30,17 +35,11 @@
octal numbers: octal digits
grouping: ()
No spaces are allowed in the expression. To avoid shell expansion,
one should surround the expression in single quotes.
No spaces are allowed in the expression. To avoid shell expansion,
one should surround the expression in single quotes.
It is a good thing that this program consists of only one
expression, otherwise it might become hard to understand. :-)
NOTE: we could not compile this entry under modern macOS but it will work
fine under linux. It likely fails to compile under macOS because its gcc is
actually just clang which is more strict about the type of the third
argument of main(). If you have gcc under macOS it might work just as well.
We did not test other systems.
It is a good thing that this program consists of only one
expression, otherwise it might become hard to understand. :-)
## Author's comments
+2
View File
@@ -182,6 +182,8 @@ all: data ${TARGET}
supernova deep_magic magic charon pluto
${PROG}: ${PROG}.c
@echo "NOTE: this entry has different compiler errors based on compilation line."
@echo "The purpose is to find the right error message to win the game!"
-${CC} ${CFLAGS} $< -o $@ ${LIBS}
# alternative executable
+9 -4
View File
@@ -10,21 +10,26 @@
make all
NOTE: the purpose of this entry is to escape the dungeon via the compiler line
where you get messages as compiler errors. Depending on the compiler line you
will get different error messages and one compiler line will make you win the
game!
### To run
./westley
## Judges' comments
But for something more interesting try compiling it with
different cc arguments. For example:
But for something more interesting try compiling it with
different cc arguments. For example:
cc -Describe -Door westley.c
cc -Describe -Drain westley.c
Not all compiler errors are bad.
Not all compiler errors are bad.
For spoilers see the end of the notes from the author below.
For spoilers see the end of the notes from the author below.
## Author's comments
+37 -34
View File
@@ -11,61 +11,64 @@
make all
NOTE: This entry uses non-standard args to main() that do not work with modern compilers.
NOTE: This entry uses non-standard args to main() that do not work with modern compilers.
### To run
## To run:
./dalbec
## Judges' comments
## Try:
The output is mis-leading ... why does it also print 2047?
Also try:
./dalbec 3
why does it output 121?
Why does it output 121?
For a hint see:
http://www.utm.edu/research/primes/prove2.html#sprp
## Judges' comments:
and then try to understand the source! :-)
The output is mis-leading ... why does it also print 2047?
We (the judges) recommend that you take the time needed to understand
how this program works. The source is small enough to make the effort
reasonable, and complex enough to make it interesting.
For a hint see
[https://web.archive.org/web/20000510191341/https://www.utm.edu/research/primes/prove2.html](https://web.archive.org/web/20000510191341/https://www.utm.edu/research/primes/prove2.html).
... and then try to understand the source! :-)
We (the judges) recommend that you take the time needed to understand
how this program works. The source is small enough to make the effort
reasonable, and complex enough to make it interesting.
## Author's comments
This program assumes that your terminal wraps lines automatically.
If this is not the case, you may need to change the space in the
"printf" format string to a newline character.
This program assumes that your terminal wraps lines automatically.
If this is not the case, you may need to change the space in the
"printf" format string to a newline character.
An extra feature of this program is that it allows you (in most
cases) to estimate the stack space available to programs on your
system. Simply allow the program to run to completion. The stack
space is roughly proportional to the last number printed.
An extra feature of this program is that it allows you (in most
cases) to estimate the stack space available to programs on your
system. Simply allow the program to run to completion. The stack
space is roughly proportional to the last number printed.
(On SunOS/cc, the proportionality constant is about 48 bytes.)
(On SunOS/cc, the proportionality constant is about 48 bytes.)
On completion, the program produces a core file that may be used to
refine this estimate. (Or you could try typing "limit" if you're
running csh.) In rare cases the stack space may exceed 24*MAXINT
bytes, in which case the program will produce an inaccurate estimate.
On completion, the program produces a core file that may be used to
refine this estimate. (Or you could try typing "limit" if you're
running `csh`.) In rare cases the stack space may exceed `24*MAXINT`
bytes, in which case the program will produce an inaccurate estimate.
This program is obfuscated:
This program is obfuscated:
(1) by the use of easily-confused variable names
1. by the use of easily-confused variable names
(2) by using the implicit !=0 in conditional expressions
2. by using the implicit !=0 in conditional expressions
(3) by substituting expressions such as !a for 0 where a!=0
and !a for 1 where a==0
3. by substituting expressions such as !a for 0 where a!=0 and !a for 1 where a==0
(4) by the fact that main() is a single expression and so beautifies poorly
4. by the fact that main() is a single expression and so beautifies poorly
(5) by the fact that main() is used
(a) to compute powers in modular arithmetic
(b) to recursively call itself in the main loop
5. by the fact that main() is used
- to compute powers in modular arithmetic
- to recursively call itself in the main loop
+5 -5
View File
@@ -16,11 +16,11 @@
## Judges' comments
We were impressed by the author's ability to render spheres in 3D
in a very small chunk of code.
We were impressed by the author's ability to render spheres in 3D
in a very small chunk of code.
## Author's comments
This program shows flying spheres. The program eats CPU on lesser
equipt systems. The program will run until termination. Terminal
must be vt100 or better with 80 columns and 24 rows or more.
This program shows flying spheres. The program eats CPU on lesser
equipped systems. The program will run until termination. Terminal
must be vt100 or better with 80 columns and 24 rows or more.
+22 -20
View File
@@ -12,40 +12,42 @@
make all
### To run
### To run:
echo 'Huffman Decoding' | ./huffman
## Judges' comments
Try:
## Try:
echo 'seeing or feeling is believing' | ./huffman
echo 'CC OR NOT CC' | ./huffman | ./huffman
If you are still confused and want to read a spoiler, check out
the source and it will be clear as mud!
And for a misleading hint, consider who won! :-)
## Judges' comments:
And if you really can't see what is going on, here is an extra spoiler:
If you are still confused and want to read a spoiler, check out
the source and it will be clear as mud!
And for a misleading hint, consider who won! :-)
And if you really can't see what is going on, here is an extra spoiler:
./huffman < huffman.c
This entry was very well received at the IOCCC BOF.
This entry was very well received at the IOCCC BOF.
## Author's comments
## Author's comments:
This filter program is really not obfuscated code. It compiles cleanly
with an ANSI C compiler and comes with user documentation that even a
blind person could read.
This filter program is really not obfuscated code. It compiles cleanly
with an ANSI C compiler and comes with user documentation that even a
blind person could read.
The program is a bi-directional filter with the output of the program
suitable for its input. The output of this program, when used as input,
undoes the original program filtering.
The program is a bi-directional filter with the output of the program
suitable for its input. The output of this program, when used as input,
undoes the original program filtering.
This program accepts any alphanumeric text that has lines less than 100
characters. The user is encouraged to use the program's source as input
to the executable.
This program accepts any alphanumeric text that has lines less than 100
characters. The user is encouraged to use the program's source as input
to the executable.
This program is best appreciated on a tactile monitor.
This program is best appreciated on a tactile monitor.
+17 -16
View File
@@ -16,27 +16,28 @@
./jonth
## Judges' comments
Also try:
## Try:
./jonth host1:0 host2:0
## Judges' comments
For extra credit, figure out how you can cheat by taking over
a square already occupied by an opponent.
## Author's comments
This is mulituser tictactoe for X Windows. You may give one or two X
displays as arguments to this game.
Known bugs:
Sometimes on Solaris X gets confused and this program core dumps,
solution: give two display arguments (prog host:0 host:0)
If one (or both) windows look like a copy of the window(s) below,
try xrefresh command.
Have a nice(1) day.
This is multi-user tic-tac-toe for X Windows. You may give one or two X
displays as arguments to this game.
Known bugs:
Sometimes on Solaris X gets confused and this program core dumps,
solution: give two display arguments (prog host:0 host:0)
If one (or both) windows look like a copy of the window(s) below,
try xrefresh command.
Have a nice(1) day.
+7 -4
View File
@@ -9,17 +9,20 @@
make all
### To run
### To run:
./rcm < rfc1951.gz
## Judges' comments
## Try:
And for more information try:
For more information try:
./rcm < rfc1952.gz
For a good noop try:
## Judges' comments
For a good noop try:
gzip -c < rcm.c | ./rcm