diff --git a/1992/lush/README.md b/1992/lush/README.md index cbd620e00..b0265c077 100644 --- a/1992/lush/README.md +++ b/1992/lush/README.md @@ -1,9 +1,10 @@ # Worst Abuse of the C Preprocessor: -Ed Luke -Mississippi State University -P.O. Box 6176 -Mississippi State, MS 39762, USA +Ed Luke +Mississippi State University +P.O. Box 6176 +Mississippi State, MS 39762 +USA ## To build: diff --git a/1992/marangon/README.md b/1992/marangon/README.md index cebc1c1e2..55ce3befb 100644 --- a/1992/marangon/README.md +++ b/1992/marangon/README.md @@ -1,18 +1,22 @@ # Best Game: - Marangoni Andrea - Department of Computer Science at Milano - Via Pausula, 72 - 62014 Corridonia (MC) - Italy +Marangoni Andrea +Department of Computer Science at Milano +Via Pausula, 72 +62014 Corridonia (MC) +Italy ## To build: - make all +```sh +make all +``` ## To run: - ./marangon +```sh +./marangon +``` ## Judges' comments: diff --git a/1992/nathan/README.md b/1992/nathan/README.md index 7db60be05..c0225fbdf 100644 --- a/1992/nathan/README.md +++ b/1992/nathan/README.md @@ -1,27 +1,34 @@ -# Worst Abuse of the Rules: +# Worst Abuse of the Rules - Nathan Sidwell - Inmos UK - 1000 Aztec West - Almondsbury - Bristol - UK BS12 4SQ +Nathan Sidwell +Inmos UK +1000 Aztec West +Almondsbury +Bristol +UK BS12 4SQ ## To build: - make all +```sh +make all +``` ## To run - ./nathan +```sh +./nathan +``` -## Judges' comments +## Try: -Try: +```sh +./nathan obfuscate < nathan.c > foobarf.c +./nathan - obfuscate < foobarf.c > barfoof.c +diff nathan.c barfoof.c +``` - ./nathan obfuscate < nathan.c > foobarf.c - ./nathan - obfuscate < foobarf.c > barfoof.c - diff nathan.c barfoof.c + +## Judges' comments: ### WARNING: @@ -77,7 +84,7 @@ re-distribute a program contest winner to the network! ## Author's comments -### PROGRAM USE +### PROGRAM USE: This program is a hello world text encryptor/decryptor. It uses an enigma (I think) style encryption algorithm, where the encryption @@ -93,12 +100,12 @@ before the key. (Actually encryption and decryption proper inverse operations, so you can use decrypt to scramble and encrypt to descramble, if you're perverse.) -### PORTABILITY (A little knowledge is a dangerous thing) +### PORTABILITY (A little knowledge is a dangerous thing): It's written in ANSI C, and doesn't even assume an ASCII character set, (it has an array of the characters to convert), so should be -portable across many platforms. It passes gcc -ansi -pedantic -O --Wall with no warnings (You may get assignment in conditional +portable across many platforms. It passes `gcc -ansi -pedantic -O +-Wall` with no warnings (You may get assignment in conditional warnings on other platforms though). Because I've heard that conditional jumps slow down fast processors, I've eliminated all the ifs from the code, indeed, as its only one statement, it should @@ -109,7 +116,7 @@ another scoping level does not need to be opened. Being an encryptor/decryptor, you probably want the source code to be obfuscated, to hide the algorithm. -### OBFUSCATION +### OBFUSCATION: In spite of the fact that it looks like a nice friendly hello world program, it isn't (as documented above). (Short lines have been padded, diff --git a/1993/ant/README.md b/1993/ant/README.md index 8c759967e..03083508d 100644 --- a/1993/ant/README.md +++ b/1993/ant/README.md @@ -1,31 +1,37 @@ # Best Utility: - Anthony Howe - Mortice Kern Systems, Inc. - Unit 1, 14 Weber Street North, - Waterloo, Ontario, N2J 3G4 - Canada +Anthony Howe +Mortice Kern Systems, Inc. +Unit 1, 14 Weber Street North +Waterloo, Ontario, N2J 3G4 +Canada ## To build: - make all +```sh +make all +``` ## To run: - ./ant 'ERE' [file ...] +```sh +./ant 'ERE' [file ...] +``` ## Try: You may also want to try the author's test suite: - make -f ant.test.mk +```sh +make -f ant.test.mk +``` ## Judges' comments: -See the author's Posix P1003.2-like documentation file ant.txt -for more information. +See the author's POSIX P1003.2-like documentation file ant.txt for more +information. -This program demonstrates that Posix doesn't guarantee readability. :-) +This program demonstrates that POSIX doesn't guarantee readability. :-) ## Author's comments: diff --git a/1993/cmills/README.md b/1993/cmills/README.md index 75a311c63..99f38fb09 100644 --- a/1993/cmills/README.md +++ b/1993/cmills/README.md @@ -1,14 +1,16 @@ # "Bill Gates" Award: - Chris Mills - Pagine Corporation - 1961-A Concourse Drive - San Jose, CA 95131 - USA +Chris Mills +Pagine Corporation +1961-A Concourse Drive +San Jose, CA 95131 +USA ## To build: - make all +```sh +make all +``` NOTE: this entry requires `X11/Xlib.h` header file and the X11 library to compile. macOS users running Mountain Lion and later will need to download and @@ -17,13 +19,15 @@ entry. ## To run: - DISPLAY="your_X_server_display" - export DISPLAY - ./cmills [speed] # must be run on an X11 server +```sh +DISPLAY="your_X_server_display" +export DISPLAY +./cmills [speed] # must be run on an X11 server +``` - where: +where: - speed update speed from 1 to 9 (default is 9) +`speed` is update speed from 1 to 9 (default is 9). ## Judges' comments: @@ -31,19 +35,19 @@ From the San Jose Mercury News (May 15, 1993 page 20A "West Hackers trounce East in computer quiz game"): - "Since 1984, a contest has been held on Usenet for the most - unreadable, creative, bizarre but working C program", Gates - said. "What is the name of this contest?" - - "Windows," shot back Gassee, naming Microsoft's premier product - - a product over which Apple sued Microsoft five years ago. Not - the right answer - it's "The Obfuscated C Contest [sic]" - but - it brought down the house of Apple partisans... +> "Since 1984, a contest has been held on Usenet for the most +> unreadable, creative, bizarre but working C program", Gates +> said. "What is the name of this contest?" +> +> "Windows," shot back Gassee, naming Microsoft's premier product +> - a product over which Apple sued Microsoft five years ago. Not +> the right answer - it's "The Obfuscated C Contest [sic]" - but +> it brought down the house of Apple partisans... [The expression on Bill Gates' face was a sight to behold, as reported to us by several who were there]. -You must set $DISPLAY in your environment or the program will +You must set `$DISPLAY` in your environment or the program will dump core. This is not a bug as the author documented it as a feature. :-) diff --git a/1993/dgibson/README.md b/1993/dgibson/README.md index 6807efc09..53698ae3f 100644 --- a/1993/dgibson/README.md +++ b/1993/dgibson/README.md @@ -1,63 +1,70 @@ # Best Abuse of the C Preprocessor: - David Gibson - University of Cape Town - - 1 Sweet Valley Road - Bergvliet - 7945 - South Africa +David Gibson +University of Cape Town +1 Sweet Valley Road +Bergvliet +7945 +South Africa ## To build: - make all +```sh +make all +``` -## To run +## To run: - ./dgibson.sh [datafile] +```sh +./dgibson.sh [datafile] +``` where: - - - datafile initial pattern (default: dgibson.data1) + +`datafile` is the initial pattern (default: dgibson.data1) ## Try: - - ./dgibson.sh dgibson.data3 +```sh +./dgibson.sh dgibson.data3 +``` ## Judges' comments: -We have provided the shell script `dgibson.sh` to make it easier +We have provided the shell script [dgibson.sh](dgibson.sh) to make it easier to run this entry. Run this shell script several times to see what happens. There are a number of data files available: - dgibson.data1 - dgibson.data2 - dgibson.data3 - dgibson.data4 - dgibson.data5 +- [dgibson.data1](dgibson.data1) +- [dgibson.data2](dgibson.data2) +- [dgibson.data3](dgibson.data3) +- [dgibson.data4](dgibson.data4) +- [dgibson.data5](dgibson.data5) -For `dgibson.data5` you will need a large screen, lots of virtual +For [dgibson.data5](dgibson.data5) you will need a large screen, lots of virtual memory and lots of time! Good luck trying to use a debugger on this entry! Life is not always pretty. -## Author's comments +## Author's comments: -This program plays the Game of Life. +This program plays the [Game of +Life](https://en.wikipedia.org/wiki/Conway's_Game_of_Life). Life is a cellular automaton invented by J. H. Conway, in which each of a rectangular grid of cells can be alive or dead, and cells with more than 3 or less than 2 (out of 8) live neighbours die, and empty cells with exactly 3 neighbours give birth. -Some notes: the "STAT n" information does not have to be present in the -initial configuration; the initial configuration should not have live -cells around the edges; the grid should be a perfect rectangle. +### Some notes: + +- the "STAT n" information does not have to be present in the initial +configuration +- the initial configuration should not have live cells around the edges +- the grid should be a perfect rectangle. Further features: the current generation number is preserved, and the grid automatically resizes itself as the object gets too big or too