From 95f384ec3f238b43c08ec7c157e99523ffd973ef Mon Sep 17 00:00:00 2001 From: Cody Boone Ferguson <53008573+xexyl@users.noreply.github.com> Date: Fri, 14 Apr 2023 06:18:56 -0700 Subject: [PATCH] Update 1987 winning entries' README.md files Format and typo fixes. --- 1987/biggar/README.md | 21 +++++++++++++-------- 1987/heckbert/README.md | 33 ++++++++++++++++++-------------- 1987/hines/README.md | 26 ++++++++++++++++--------- 1987/korn/README.md | 27 +++++++++++++++++--------- 1987/lievaart/README.md | 37 ++++++++++++++++++++---------------- 1987/wall/README.md | 39 +++++++++++++++++++++++--------------- 1987/westley/README.md | 42 +++++++++++++++++++++++++---------------- 7 files changed, 138 insertions(+), 87 deletions(-) diff --git a/1987/biggar/README.md b/1987/biggar/README.md index 42d51b877..09a7575d4 100644 --- a/1987/biggar/README.md +++ b/1987/biggar/README.md @@ -1,6 +1,6 @@ # Best Abuse of the Rules -Mark Biggar +Mark Biggar UNiSYS - System Development Group, Santa Monica 2525 Colorado AV MD 91-01 Santa Monica, CA @@ -8,27 +8,32 @@ Santa Monica, CA ## To build: - make all +```sh +make all +``` ## To run: - some_command | ./biggar | od -c +```sh +some_command | ./biggar | od -c +``` ## Try: - cat biggar.c | ./biggar | od -c - +```sh +cat biggar.c | ./biggar | od -c +``` ## Judges' remarks: By changing the compile line you can make this program do anything you -want. This is a very efficient way to transfer source, though it +want. This is a very efficient way to transfer source, though it increases the size of Makefiles. With only slight variations, this program can be set to many uses. Consider how easy it would be to release `Un*x` source in this form; -so what if the make files grow a little! :-) +so what if the Makefiles grow a little! :-) One vendor's lint got hung in an infinite loop over this entry! @@ -47,7 +52,7 @@ an infinite loop by this entry. ## Author's remarks: -No comments were provided by the author. +No remarks were provided by the author. ## Copyright and CC BY-SA 4.0 License: diff --git a/1987/heckbert/README.md b/1987/heckbert/README.md index ebbc4e06b..a26f9e0e1 100644 --- a/1987/heckbert/README.md +++ b/1987/heckbert/README.md @@ -5,8 +5,9 @@ Pixar ## To build: - make all - +```sh +make all +``` On System V systems, we had to compile with `-Dindex=strchr`. To compile on a 16 bit machine, change 300000 to 30000. @@ -15,35 +16,39 @@ To compile on a 16 bit machine, change 300000 to 30000. ## Try: - ./heckbert 40 < heckbert.c > ph.c; make ph - ./ph 21 < heckbert.c > bar.c; make bar - # or more generally fold some other file at a positive column: - ./ph col < file +```sh +./heckbert 40 < heckbert.c > ph.c; make ph +./ph 21 < heckbert.c > bar.c; make bar +# or more generally fold some other file at a positive column: +./ph col < file +``` Ask yourself what happens to `foo.md` if you try: - ./ph 40 < README.md > foo.md - +```sh +./ph 40 < README.md > foo.md +``` ## Judges' remarks: Folding at the wrong length may be equivalent to a "Spindle or Mutilate" operation. For example: - ./heckbert 40 < heckbert.c > ph.c ; make ph ; ./ph 20 < heckbert.c > bar.c ; make bar +```sh +./heckbert 40 < heckbert.c > ph.c ; make ph ; ./ph 20 < heckbert.c > bar.c ; make bar +``` Try not to [Fold, Spindle or Mutilate](https://repository.library.brown.edu/studio/item/bdr:788264/PDF/) files. :-) - -## Author's remarks: - -No comments were provided by the author. - The judges used this program to fold up very long lines which the BSD fold(1) was unable to process. This program has been added to the contest tool chest. +## Author's remarks: + +No remarks were provided by the author. + ## Copyright and CC BY-SA 4.0 License: This file is Copyright (c) 2023 by Landon Curt Noll. All Rights Reserved. diff --git a/1987/hines/README.md b/1987/hines/README.md index f1414594e..ea57e0f51 100644 --- a/1987/hines/README.md +++ b/1987/hines/README.md @@ -9,26 +9,34 @@ USA ## To build: - make all +```sh +make all +``` -## To run +## To run: - ./hines file.c +```sh +./hines file.c +``` ## Try: - ./hines hines.c +```sh +./hines hines.c +``` -### Alternate code +### Alternate code: -An alternate version of this entry is in `hines.alt.c`. With older compilers you +An alternate version of this entry is in [hines.alt.c](hines.alt.c). With older compilers you can try the alt version: - make alt +```sh +make alt +``` Use `hines.alt` as you would `hines` above. -## Judges' remarks +## Judges' remarks: This program was designed to maximize the bother function for structured programmers. This program takes goto statements to their @@ -41,7 +49,7 @@ See the Communications of the ACM, March 1987, Page 195-196. ## Author's remarks: -No comments were provided by the author. +No remarks were provided by the author. ## Copyright and CC BY-SA 4.0 License: diff --git a/1987/korn/README.md b/1987/korn/README.md index b4f036d9e..549c782e4 100644 --- a/1987/korn/README.md +++ b/1987/korn/README.md @@ -1,15 +1,17 @@ # Best One Liner -David Korn +David Korn AT&T Bell Labs -MH 3C-526B, AT&T Bell Labs -Murray Hill, NJ -07974 -USA +MH 3C-526B, AT&T Bell Labs +Murray Hill, NJ +07974 +USA ## To build: - make all +```sh +make all +``` ## Judges' remarks: @@ -29,7 +31,9 @@ Several points are important to understand in this program: 2) What is the value of the symbol "have"? (hint: the value is NOT 4 characters, or 'h', or a string) Consider the fact that: - char *x; + + char *x; + defines a pointer to a character (i.e. an address), and that the '=' assigns things is compatible types. Since: @@ -42,13 +46,18 @@ Several points are important to understand in this program: x[3] *(x+3) *(3+x) - since addition is communitive. What can be said about the value: + since addition is commutative. What can be said about the value: 3[x] -David Korn's /bin/ksh provides us with a greatly improved version of +David Korn's `/bin/ksh` provides us with a greatly improved version of the /bin/sh. The source for v7's /bin/sh greatly inspired this contest. +## Author's remarks: + +No remarks were provided by the author. + + ## Copyright and CC BY-SA 4.0 License: This file is Copyright (c) 2023 by Landon Curt Noll. All Rights Reserved. diff --git a/1987/lievaart/README.md b/1987/lievaart/README.md index d4626e0d6..f93561bb8 100644 --- a/1987/lievaart/README.md +++ b/1987/lievaart/README.md @@ -2,21 +2,24 @@ Roemer B. Lievaart VU Informatica -Churchilllaan 173-IV -Amsterdam, The Netherlands +Churchilllaan 173-IV +Amsterdam, The Netherlands ## To build: - make all +```sh +make all +``` NOTE: The original entry may be built with "make alt" if you have an old enough compiler. ## To run: - ./lievaart - # enter a level and start playing as described below - +```sh +./lievaart +# enter a level and start playing as described below +``` NOTE: if you enter invalid input the program will enter an infinite loop displaying a string like `"You:"` repeatedly. @@ -25,8 +28,10 @@ displaying a string like `"You:"` repeatedly. To see what it would have looked like without the size restrictions: - ./lievaart2 - # enter a level and start playing as described below +```sh +./lievaart2 +# enter a level and start playing as described below +``` ## Judges' remarks: @@ -34,19 +39,19 @@ To see what it would have looked like without the size restrictions: 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)! Compile and run. It then +This Plays the game of Reversi (Othello)! 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 a 99 to pass. Illegal moves (except for an illegal pass) are rejected. Then the computer does its move (or a 0 to pass), until the board is full. It plays rather well, for such a small program! Lievaart had to leave out the -board printing routine, so you'll have to take a real game board to -play it. ... Also due to space-limitations (the rules for 1987 had a -limit of 1024 byes), Lievaart took out the passing-handler, which -makes its ending-game rather poor. But further it knows all the -rules, uses alpha-beta pruning, and it plays f.i. on mobility(!). -Most important: it can play a pretty good game of Reversi! +board printing routine, so you'll have to take a real game board to play it (or +see below). ... Also due to space-limitations (the rules for 1987 had a limit +of 1024 byes), Lievaart took out the passing-handler, which makes its +ending-game rather poor. But further it knows all the rules, uses alpha-beta +pruning, and it plays f.i. on mobility(!). Most important: it can play a pretty +good game of Reversi! The Author was kind enough to supply the fully functional version of the program. The file lievaart2.c contains what the program would have @@ -56,7 +61,7 @@ logic and displays the board after each move! ## Author's remarks: -No comments were provided by the author. +No remarks were provided by the author. ## Copyright and CC BY-SA 4.0 License: diff --git a/1987/wall/README.md b/1987/wall/README.md index 9aec8bd19..a9aa09eec 100644 --- a/1987/wall/README.md +++ b/1987/wall/README.md @@ -23,35 +23,44 @@ make all ``` [Cody Boone Ferguson](/winners.html#Cody_Boone_Ferguson) made this safer by -using `fgets()` instead of `gets()`. This prevents a potentially alarming -warning at linking or runtime. +using `fgets()` instead of `gets()`. This prevents an annoying and potentially +alarming warning at compiling, linking or runtime. ## Try: - ./wall | bc | ./wall +```sh +./wall | bc | ./wall +``` and input the following: - x*x - c^2 - m*m +``` +x*x +c^2 +m*m - # can you figure out what this does? - 500 +# can you figure out what this does? +500 + +``` ### Also try: - ./wall | bc +```sh +./wall | bc - ./wall | cat +./wall | cat +``` and enter some input like: - x*x - 2^x - quit # for the cat version +``` +x*x +2^x +quit # for the cat version +``` ## Judges' remarks: @@ -64,12 +73,12 @@ be directly called. Even so, these pointers to functions are being used as an argument to signal. Can you determine why this is being done and how it is being exploited? -Some compilers complained about this file, so we changed: '=++I' to '= ++I'. +Some compilers complained about this file, so we changed: `=++I` to `= ++I`. ## Author's remarks: -No comments were provided by the author. +No remarks were provided by the author. ## Copyright and CC BY-SA 4.0 License: diff --git a/1987/westley/README.md b/1987/westley/README.md index 1d12594b5..65bc1cbc7 100644 --- a/1987/westley/README.md +++ b/1987/westley/README.md @@ -1,34 +1,40 @@ # Best Layout - Brian Westley (aka Merlyn Leroy on usenet) - Starfire Consulting - 1121 Hamline Ave. N. #17 - St. Paul, MN - 55108 - USA - - http://www.westley.org +Brian Westley (aka Merlyn Leroy on usenet) +Starfire Consulting +1121 Hamline Ave. N. #17 +St. Paul, MN +55108 +USA + ## To build: - make all +```sh +make all +``` [Cody Boone Ferguson](/winners.html#Cody_Boone_Ferguson) fixed this for modern systems. The problem was 'assignment to cast is illegal, lvalue casts are not supported'. For the original file see below. Thank you Cody for your assistance! -## Alternate code: +## To run: + +```sh +./westley +``` + +### Alternate code: If you have an older compiler you can try compiling the original source code which is true symmetry: - make alt +```sh +make alt +``` - -## To run: - - ./westley +Use `westley.alt` as you would `westley` above. ## Judges' remarks: @@ -40,7 +46,11 @@ top of the program. Line by line symmetry performed better than any C beautifier. Think of if it as a C ink blot. :-) -NOTE: This entry requires a non-standard K&R C compiler to compile. + +## Author's remarks: + +No remarks were provided by the author. + ## Copyright and CC BY-SA 4.0 License: