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:
1 parent
fa2a763f6c
commit
c91b3c5565
11 files changed
+121
-105
No files matched your search
@@ -10,17 +10,17 @@
|
|||||||
|
|
||||||
make all
|
make all
|
||||||
|
|
||||||
### To run
|
### To run:
|
||||||
|
|
||||||
./buzzard
|
./buzzard
|
||||||
|
|
||||||
## Judges' comments
|
## Judges' comments:
|
||||||
|
|
||||||
You will be A-mazed.
|
You will be A-mazed.
|
||||||
|
|
||||||
You are invited to try to cheat, ... if you can figure out how! :-)
|
You are invited to try to cheat, ... if you can figure out how! :-)
|
||||||
|
|
||||||
## Author's comments
|
## Author's comments:
|
||||||
|
|
||||||
### HOW TO PLAY:
|
### HOW TO PLAY:
|
||||||
|
|
||||||
|
|||||||
@@ -182,7 +182,9 @@ all: data ${TARGET}
|
|||||||
supernova deep_magic magic charon pluto
|
supernova deep_magic magic charon pluto
|
||||||
|
|
||||||
${PROG}: ${PROG}.c
|
${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
|
${RM} -f \"\;main\(\)\{puts\(\"Hello\ World!\"\)\;\}char\*C=\".c
|
||||||
${CP} lmfjyh.c \"\;main\(\)\{puts\(\"Hello\ World!\"\)\;\}char\*C=\".c
|
${CP} lmfjyh.c \"\;main\(\)\{puts\(\"Hello\ World!\"\)\;\}char\*C=\".c
|
||||||
${CC} ${CFLAGS} \
|
${CC} ${CFLAGS} \
|
||||||
|
|||||||
@@ -9,7 +9,9 @@
|
|||||||
|
|
||||||
make all
|
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
|
### To run
|
||||||
|
|
||||||
@@ -17,13 +19,10 @@
|
|||||||
|
|
||||||
## Judges' comments
|
## 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
|
## Author's comments
|
||||||
|
|
||||||
|
|||||||
+11
-12
@@ -10,7 +10,12 @@
|
|||||||
|
|
||||||
make all
|
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
|
### To run
|
||||||
|
|
||||||
@@ -21,7 +26,7 @@
|
|||||||
|
|
||||||
## Judges' comments
|
## Judges' comments
|
||||||
|
|
||||||
The octal expression may contain:
|
The octal expression may contain:
|
||||||
|
|
||||||
unary operators: +, -
|
unary operators: +, -
|
||||||
binary operators +, -, *, /, %
|
binary operators +, -, *, /, %
|
||||||
@@ -30,17 +35,11 @@
|
|||||||
octal numbers: octal digits
|
octal numbers: octal digits
|
||||||
grouping: ()
|
grouping: ()
|
||||||
|
|
||||||
No spaces are allowed in the expression. To avoid shell expansion,
|
No spaces are allowed in the expression. To avoid shell expansion,
|
||||||
one should surround the expression in single quotes.
|
one should surround the expression in single quotes.
|
||||||
|
|
||||||
It is a good thing that this program consists of only one
|
It is a good thing that this program consists of only one
|
||||||
expression, otherwise it might become hard to understand. :-)
|
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.
|
|
||||||
|
|
||||||
## Author's comments
|
## Author's comments
|
||||||
|
|
||||||
|
|||||||
@@ -182,6 +182,8 @@ all: data ${TARGET}
|
|||||||
supernova deep_magic magic charon pluto
|
supernova deep_magic magic charon pluto
|
||||||
|
|
||||||
${PROG}: ${PROG}.c
|
${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}
|
-${CC} ${CFLAGS} $< -o $@ ${LIBS}
|
||||||
|
|
||||||
# alternative executable
|
# alternative executable
|
||||||
|
|||||||
@@ -10,21 +10,26 @@
|
|||||||
|
|
||||||
make all
|
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
|
### To run
|
||||||
|
|
||||||
./westley
|
./westley
|
||||||
|
|
||||||
## Judges' comments
|
## Judges' comments
|
||||||
|
|
||||||
But for something more interesting try compiling it with
|
But for something more interesting try compiling it with
|
||||||
different cc arguments. For example:
|
different cc arguments. For example:
|
||||||
|
|
||||||
cc -Describe -Door westley.c
|
cc -Describe -Door westley.c
|
||||||
cc -Describe -Drain 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
|
## Author's comments
|
||||||
|
|
||||||
|
|||||||
+37
-34
@@ -11,61 +11,64 @@
|
|||||||
|
|
||||||
make all
|
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
|
./dalbec
|
||||||
|
|
||||||
## Judges' comments
|
## Try:
|
||||||
|
|
||||||
The output is mis-leading ... why does it also print 2047?
|
|
||||||
|
|
||||||
Also try:
|
|
||||||
|
|
||||||
./dalbec 3
|
./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
|
For a hint see
|
||||||
how this program works. The source is small enough to make the effort
|
[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).
|
||||||
reasonable, and complex enough to make it interesting.
|
|
||||||
|
|
||||||
|
... 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
|
## Author's comments
|
||||||
|
|
||||||
This program assumes that your terminal wraps lines automatically.
|
This program assumes that your terminal wraps lines automatically.
|
||||||
If this is not the case, you may need to change the space in the
|
If this is not the case, you may need to change the space in the
|
||||||
"printf" format string to a newline character.
|
"printf" format string to a newline character.
|
||||||
|
|
||||||
An extra feature of this program is that it allows you (in most
|
An extra feature of this program is that it allows you (in most
|
||||||
cases) to estimate the stack space available to programs on your
|
cases) to estimate the stack space available to programs on your
|
||||||
system. Simply allow the program to run to completion. The stack
|
system. Simply allow the program to run to completion. The stack
|
||||||
space is roughly proportional to the last number printed.
|
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
|
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
|
refine this estimate. (Or you could try typing "limit" if you're
|
||||||
running csh.) In rare cases the stack space may exceed 24*MAXINT
|
running `csh`.) In rare cases the stack space may exceed `24*MAXINT`
|
||||||
bytes, in which case the program will produce an inaccurate estimate.
|
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
|
3. by substituting expressions such as !a for 0 where a!=0 and !a for 1 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
|
5. by the fact that main() is used
|
||||||
(a) to compute powers in modular arithmetic
|
|
||||||
(b) to recursively call itself in the main loop
|
- to compute powers in modular arithmetic
|
||||||
|
|
||||||
|
- to recursively call itself in the main loop
|
||||||
@@ -16,11 +16,11 @@
|
|||||||
|
|
||||||
## Judges' comments
|
## Judges' comments
|
||||||
|
|
||||||
We were impressed by the author's ability to render spheres in 3D
|
We were impressed by the author's ability to render spheres in 3D
|
||||||
in a very small chunk of code.
|
in a very small chunk of code.
|
||||||
|
|
||||||
## Author's comments
|
## Author's comments
|
||||||
|
|
||||||
This program shows flying spheres. The program eats CPU on lesser
|
This program shows flying spheres. The program eats CPU on lesser
|
||||||
equipt systems. The program will run until termination. Terminal
|
equipped systems. The program will run until termination. Terminal
|
||||||
must be vt100 or better with 80 columns and 24 rows or more.
|
must be vt100 or better with 80 columns and 24 rows or more.
|
||||||
+22
-20
@@ -12,40 +12,42 @@
|
|||||||
|
|
||||||
make all
|
make all
|
||||||
|
|
||||||
### To run
|
### To run:
|
||||||
|
|
||||||
|
|
||||||
echo 'Huffman Decoding' | ./huffman
|
echo 'Huffman Decoding' | ./huffman
|
||||||
|
|
||||||
## Judges' comments
|
## Try:
|
||||||
|
|
||||||
Try:
|
|
||||||
|
|
||||||
echo 'seeing or feeling is believing' | ./huffman
|
echo 'seeing or feeling is believing' | ./huffman
|
||||||
echo 'CC OR NOT CC' | ./huffman | ./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
|
./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
|
This filter program is really not obfuscated code. It compiles cleanly
|
||||||
with an ANSI C compiler and comes with user documentation that even a
|
with an ANSI C compiler and comes with user documentation that even a
|
||||||
blind person could read.
|
blind person could read.
|
||||||
|
|
||||||
The program is a bi-directional filter with the output of the program
|
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,
|
suitable for its input. The output of this program, when used as input,
|
||||||
undoes the original program filtering.
|
undoes the original program filtering.
|
||||||
|
|
||||||
This program accepts any alphanumeric text that has lines less than 100
|
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
|
characters. The user is encouraged to use the program's source as input
|
||||||
to the executable.
|
to the executable.
|
||||||
|
|
||||||
This program is best appreciated on a tactile monitor.
|
This program is best appreciated on a tactile monitor.
|
||||||
+17
-16
@@ -16,27 +16,28 @@
|
|||||||
|
|
||||||
./jonth
|
./jonth
|
||||||
|
|
||||||
## Judges' comments
|
## Try:
|
||||||
|
|
||||||
Also try:
|
|
||||||
|
|
||||||
./jonth host1:0 host2:0
|
./jonth host1:0 host2:0
|
||||||
|
|
||||||
|
## Judges' comments
|
||||||
|
|
||||||
|
|
||||||
For extra credit, figure out how you can cheat by taking over
|
For extra credit, figure out how you can cheat by taking over
|
||||||
a square already occupied by an opponent.
|
a square already occupied by an opponent.
|
||||||
|
|
||||||
## Author's comments
|
## Author's comments
|
||||||
|
|
||||||
This is mulituser tictactoe for X Windows. You may give one or two X
|
This is multi-user tic-tac-toe for X Windows. You may give one or two X
|
||||||
displays as arguments to this game.
|
displays as arguments to this game.
|
||||||
|
|
||||||
Known bugs:
|
Known bugs:
|
||||||
|
|
||||||
Sometimes on Solaris X gets confused and this program core dumps,
|
Sometimes on Solaris X gets confused and this program core dumps,
|
||||||
solution: give two display arguments (prog host:0 host:0)
|
solution: give two display arguments (prog host:0 host:0)
|
||||||
|
|
||||||
If one (or both) windows look like a copy of the window(s) below,
|
If one (or both) windows look like a copy of the window(s) below,
|
||||||
try xrefresh command.
|
try xrefresh command.
|
||||||
|
|
||||||
Have a nice(1) day.
|
Have a nice(1) day.
|
||||||
|
|
||||||
+7
-4
@@ -9,17 +9,20 @@
|
|||||||
|
|
||||||
make all
|
make all
|
||||||
|
|
||||||
### To run
|
### To run:
|
||||||
|
|
||||||
./rcm < rfc1951.gz
|
./rcm < rfc1951.gz
|
||||||
|
|
||||||
## Judges' comments
|
## Try:
|
||||||
|
|
||||||
And for more information try:
|
For more information try:
|
||||||
|
|
||||||
./rcm < rfc1952.gz
|
./rcm < rfc1952.gz
|
||||||
|
|
||||||
For a good noop try:
|
|
||||||
|
## Judges' comments
|
||||||
|
|
||||||
|
For a good noop try:
|
||||||
|
|
||||||
gzip -c < rcm.c | ./rcm
|
gzip -c < rcm.c | ./rcm
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user