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
|
||||
|
||||
### 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:
|
||||
|
||||
|
||||
@@ -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} \
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
|
||||
|
||||
|
||||
Reference in new issue
Block a user