From be20d8bef4628838c1948f9062d42adda89c7761 Mon Sep 17 00:00:00 2001 From: Cody Boone Ferguson <53008573+xexyl@users.noreply.github.com> Date: Sun, 9 Apr 2023 08:11:57 -0700 Subject: [PATCH 1/8] Format fixes in 1991/buzzard/README.md --- 1991/buzzard/README.md | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/1991/buzzard/README.md b/1991/buzzard/README.md index e922fc362..514f3e973 100644 --- a/1991/buzzard/README.md +++ b/1991/buzzard/README.md @@ -1,18 +1,22 @@ # Best Output: - Sean Barrett - University of Maryland - 5407 20th Place - Hyattsville MD 20782 - USA +Sean Barrett +University of Maryland +5407 20th Place +Hyattsville MD 20782 +USA ## To build: - make all +```sh +make all +``` ## To run: - ./buzzard +```sh +./buzzard +``` ## Judges' comments: @@ -25,13 +29,13 @@ You are invited to try to cheat, ... if you can figure out how! :-) ### HOW TO PLAY: When the game starts, you are at the far end of the maze from the -exit, looking down a corridor. To move forward, type 'f' and press -return. To turn 90 degrees right, type 'r'; left, 'l'. You can +exit, looking down a corridor. To move forward, type `f` and press +return. To turn 90 degrees right, type `r`; left, `l`. You can put multiple commands on one line, and the new view will be drawn after all the moves. The game ends if you get out the exit (you'll know it when you see -it) or when you type ^D. +it) or when you type `^D` (EOF). ### HINTS ON HOW TO CHEAT: (rot13 to read) From 1a155829793476a3e984622c743becc3b7c081d7 Mon Sep 17 00:00:00 2001 From: Cody Boone Ferguson <53008573+xexyl@users.noreply.github.com> Date: Sun, 9 Apr 2023 08:13:39 -0700 Subject: [PATCH 2/8] Minor format fixes in 1991/cdupont/README.md --- 1991/cdupont/README.md | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/1991/cdupont/README.md b/1991/cdupont/README.md index c2e615887..604cdc051 100644 --- a/1991/cdupont/README.md +++ b/1991/cdupont/README.md @@ -1,21 +1,25 @@ # Most Useful Label: - Christian Dupont - Ecole Normale Superieure de Lyon, - Laboratoire d'Informatique Parallele - 42, Rue H.Berlioz - 69009 Lyon - France +Christian Dupont +Ecole Normale Superieure de Lyon +Laboratoire d'Informatique Parallele +42, Rue H.Berlioz +69009 Lyon +France ## To build: - make all +```sh +make all +``` -## To run +## To run: - ./cdupont +```sh +./cdupont +``` -## Judges' comments +## Judges' comments: Why is the following label necessary? @@ -30,7 +34,7 @@ NOTE: One should remove the final trailing newline to obtain the original source file. This step is not needed to compile this entry. -## Author's comments +## Author's comments: Spoiler, rot13 to read: From 1c8452c4edb6a8e7e86200f66cc9bd0a892572d0 Mon Sep 17 00:00:00 2001 From: Cody Boone Ferguson <53008573+xexyl@users.noreply.github.com> Date: Sun, 9 Apr 2023 08:21:37 -0700 Subject: [PATCH 3/8] Format fixes to 1991/davidguy/README.md --- 1991/davidguy/README.md | 54 +++++++++++++++++++++++++++-------------- 1 file changed, 36 insertions(+), 18 deletions(-) diff --git a/1991/davidguy/README.md b/1991/davidguy/README.md index c47ae7eab..a90fa05a6 100644 --- a/1991/davidguy/README.md +++ b/1991/davidguy/README.md @@ -1,36 +1,53 @@ # Best X11 Graphics: - David Applegate Guy Jacobson - School of Computer Science AT&T Bell Laboratories - Carnegie Mellon University 600 Mountain Avenue - Pittsburgh PA 15213 Murray Hill NJ 07974 - USA USA +David Applegate +School of Computer Science +Carnegie Mellon University +Pittsburgh PA 15213 +USA + + +Guy Jacobson +AT&T Bell Laboratories +600 Mountain Avenue +Murray Hill NJ 07974 +USA + ## To build: - make all +```sh +make all +``` ## To run: - ./davidguy ip_address:server.screen +```sh +./davidguy ip_address:server.screen +``` where `ip_address` in an IP address of an X server. ## Try: - ./davidguy 127.0.0.1:0.0 +```sh +./davidguy 127.0.0.1:0.0 +``` Of course, you may need to supply a more reasonable address. :-) ## Also try: - cp -f davidguy guydavid - ./guydavid 127.0.0.1:0.0 - -## Judges' comments +```sh +cp -f davidguy guydavid +./guydavid 127.0.0.1:0.0 +``` Can you determine why this makes a difference? +## Judges' comments: + + We permitted this type of entry to win because: - it did not require X to be on the host system @@ -43,11 +60,11 @@ explain this further. We are pleased that this entry has helped bring new 'life' into the contest. -## Author's comments +## Authors' comments: The program is a fully-functional X client. It talks directly to the X server through a socket without using Xlib, Xt or any other -wussie toolkit junk. With no arguments, it will try to run +wussy toolkit junk. With no arguments, it will try to run locally using the unix-domain socket (only on BSD :-( ) or you can give it a command line argument identifying a display host address (in dotted octet notation, like 127.0.0.1:0.0) where the X server @@ -57,9 +74,9 @@ that the program works even when the server and the client have different architectures). It buffers communication to the X server for efficiency. -[[ NOTE: The original source in davidguy.c used only an IP address +NOTE: The original source in davidguy.c used only an IP address argument (assumed :0.0) and assumed the color of black -and white. ]] +and white. The program doesn't require any user interaction; you can just sit back and watch it run. All the action takes place in the root @@ -84,7 +101,8 @@ the program was supposed to do would still be hard to understand. ### Quasi-spoiler on internals: -The program plays Conway's game of Life in the root window's +The program plays [Conway's Game of +Life](https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life) in the root window's background pixmap. It starts by setting the background to random bits, and then plays Life, with one Life cell for each pixel of the screen. In the game of Life, a cell survives to the next round if @@ -96,7 +114,7 @@ if it has 4 or more neighbors. The algorithm used to compute the next generation is based on the observation that a cell's state in the next generation is a boolean function of its current state, and the states of its 8 neighbors -(ie, a boolean function from 9 bits to 1 bit). This function can +(i.e., a boolean function from 9 bits to 1 bit). This function can be computed by a boolean circuit. In addition, intermediate values computed by the circuit can be shared between neighboring cells, reducing the number of gates per cell required. These ideas From b79d7276b3d84b79c199f84bc39a882fcbaa5999 Mon Sep 17 00:00:00 2001 From: Cody Boone Ferguson <53008573+xexyl@users.noreply.github.com> Date: Sun, 9 Apr 2023 08:29:29 -0700 Subject: [PATCH 4/8] Format fixes in 1991/dds/README.md --- 1991/dds/README.md | 81 +++++++++++++++++++++++++++------------------- 1 file changed, 47 insertions(+), 34 deletions(-) diff --git a/1991/dds/README.md b/1991/dds/README.md index 42f3e774e..36ebac404 100644 --- a/1991/dds/README.md +++ b/1991/dds/README.md @@ -1,20 +1,24 @@ # Most Well Rounded: - Diomidis Spinellis - Imperial College, University of London - Myrsinis 1 - GR-145 62 Kifissia - Greece +Diomidis Spinellis +Imperial College, University of London +Myrsinis 1 +GR-145 62 Kifissia +Greece ## To build: - make all +```sh +make all +``` ## To run: - ./dds basic_program - ./a.out +```sh +./dds basic_program +./a.out +``` [Cody Boone Ferguson](/winners.html#Cody_Boone_Ferguson) fixed some segfaults in this entry as well as making it so `a` (was `a.out`, see below) can be generated @@ -77,10 +81,9 @@ Thank you Cody for your assistance! ## Judges' comments: -## Try: -Notice that a file a.c has been generated. Can you tell how a.c was -produced? How does a.c relate to LANDER.BAS? +Notice that a file `a.c` has been generated. Can you tell how `a.c` was +produced? How does `a.c` relate to [LANDER.BAS](LANDER.BAS)? This obfuscated program translates BASIC programs into obfuscated C programs by way of an obfuscated algorithm. @@ -89,28 +92,36 @@ NOTE: Due to minor problems with some strict ANSI C compilers, we have supplied a more portable ANSI version. -## Author's comments +## Author's comments: This program is a companion to the DDS-BASIC interpreter program that was submitted to the contest in 1990. This compiles BASIC programs into executable commands. The input format is almost identical to the input format of the DDS-BASIC interpreter. The program needs an executable C -compiler called `cc' in your path in order to work. +compiler called `cc` in your path in order to work. -Program commands: +### Program commands: - variable names A to Z variables initialized to 0 on RUN - FOR var = exp TO exp NEXT variable - GOSUB exp RETURN - GOTO exp IF exp THEN exp - INPUT variable PRINT string - PRINT exp var = exp - REM any text END + +- variable names A to Z +- FOR var = exp TO exp +- GOSUB exp +- GOTO exp +- INPUT variable +- PRINT exp +- REM any text +- variables initialized to 0 on RUN +- NEXT variable +- RETURN +- IF exp THEN exp +- PRINT string +- var = exp +- END Expressions are the same as the expressions of the C language. Many system calls and C library calls can be used. -Input format: +### Input format: - Free format positioning of tokens on the line. - No space is allowed before the line number. @@ -122,19 +133,21 @@ Error checking / error reports: The compiler silently ignores many errors. Other errors may produce errors in later phases of the compilation. -Can you figure out how the compiler works? Hint: +### Can you figure out how the compiler works? - The compiler is NOT written in C, so this is really a meta-obfuscated - program. The C code is an intepreter for the four register, seven - instruction COGNIMP$ machine that is contained in the s string. - (COGNIMP$ is named after the symbolic names of the seven instructions it - defines (Print Output Goto Match If, iNcrement and Copy). The $ sign - is used for labels.) The actual compiler is written in COGNIMP$. - Browsing through the COGNIMP$ code we encouriage you to examine the - loops for scanning the expression in the IF statement and the way a - decision tree is implemented in order to match the statements. (Of - course the 's' string is encoded by adding one to every character of it just - to confuse you). +Hint: + +The compiler is NOT written in C, so this is really a meta-obfuscated +program. The C code is an interpreter for the four register, seven +instruction COGNIMP$ machine that is contained in the `s` string. +(COGNIMP$ is named after the symbolic names of the seven instructions it +defines (Print Output Goto Match If, iNcrement and Copy). The `$` sign +is used for labels.) The actual compiler is written in COGNIMP$. +Browsing through the COGNIMP$ code we encourage you to examine the +loops for scanning the expression in the IF statement and the way a +decision tree is implemented in order to match the statements. (Of +course the `s` string is encoded by adding one to every character of it just +to confuse you). ## Copyright and CC BY-SA 4.0 License: From acb80b981b876b2b6f54d5bba3658df9082801f7 Mon Sep 17 00:00:00 2001 From: Cody Boone Ferguson <53008573+xexyl@users.noreply.github.com> Date: Sun, 9 Apr 2023 08:32:03 -0700 Subject: [PATCH 5/8] Minor fixes to 1991/fine/README.md I can now report that this file is more or less fine! :-) ... though I am sure I will check it at least once more ... --- 1991/fine/README.md | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/1991/fine/README.md b/1991/fine/README.md index b29dd875b..68cccb881 100644 --- a/1991/fine/README.md +++ b/1991/fine/README.md @@ -1,27 +1,37 @@ # Best One Liner: - Thomas A. Fine - Ohio State University - Department of Computer and Information Science - 2036 Neil Avenue Mall - Columbus, Ohio 43210 - USA +Thomas A. Fine +Ohio State University +Department of Computer and Information Science +2036 Neil Avenue Mall +Columbus, Ohio 43210 +USA ## To build: - make all +```sh +make all +``` + +## To run: + +```sh +echo text | ./fine +``` ## Try: - echo "green terra +```sh +echo "green terra vex tang vend onyx cheryl be flashy rail clerk" | ./fine +``` -## Judges' comments +## Judges' comments: This filter, 80 chars plus a newline, fits into a single line on most terminals (unless your terminal has a line wrap mis-feature :-)). From fcebc83dea74d07f53bc977f48d5b6eb1790ba2c Mon Sep 17 00:00:00 2001 From: Cody Boone Ferguson <53008573+xexyl@users.noreply.github.com> Date: Sun, 9 Apr 2023 08:34:42 -0700 Subject: [PATCH 6/8] Minor format fixes in 1991/rince/README.md --- 1991/rince/README.md | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/1991/rince/README.md b/1991/rince/README.md index 52b0cd0a9..72ef36677 100644 --- a/1991/rince/README.md +++ b/1991/rince/README.md @@ -1,34 +1,38 @@ # Best Game: - James Bonfield - University of Warwick - 7 Water End, - Wrestlingworth, - Sandy Beds, - SG19 2HA - England +James Bonfield +University of Warwick +7 Water End +Wrestlingworth +Sandy Beds +SG19 2HA +England ## To build: - make all +```sh +make all +``` ## To run: - ./rince +```sh +./rince +``` ## Judges' comments: -This entry has been updated to allow most ANSI C compiler. +This entry has been updated to allow most ANSI C compilers. -## Author's comments +## Author's comments: This program is a simple puzzle type game. (I'll leave you to play it to see the rest of it .. :-) .) The general idea was to try and write the smallest playable game, but keep the playability and enjoyment high. - Instructions (rot 13 to read). - ============================== +### Instructions (rot13 to read): + Xrl gb znc:- From 8896c22edb8ae42a1fa1c9be76e84cce38a53865 Mon Sep 17 00:00:00 2001 From: Cody Boone Ferguson <53008573+xexyl@users.noreply.github.com> Date: Sun, 9 Apr 2023 09:02:36 -0700 Subject: [PATCH 7/8] Format fixes in 1991/westley/README.md --- 1991/westley/README.md | 102 +++++++++++++++++++++++------------------ 1 file changed, 57 insertions(+), 45 deletions(-) diff --git a/1991/westley/README.md b/1991/westley/README.md index 4af841942..a33bee7f8 100644 --- a/1991/westley/README.md +++ b/1991/westley/README.md @@ -1,77 +1,89 @@ # Grand Prize: - Brian Westley (Merlyn LeRoy on usenet) - DigiBoard, Inc. - 1026 Blair Ave. - St. Paul, MN 55104 USA - - http://www.westley.org +Brian Westley (Merlyn LeRoy on usenet) +DigiBoard, Inc. +1026 Blair Ave. +St. Paul, MN 55104 +USA + ## To build: - make all +```sh +make all +``` -## To run +## To run: Make and run as follows: - ./westley [move_location] | tee nextmove.c - -where the 'move_location' is a digit from 1 to 9 that represents + +```sh +./westley [move_location] | tee nextmove.c +``` + +where the `move_location` is a digit from 1 to 9 that represents a move on a tic-tac-toe board: 1 2 3 4 5 6 7 8 9 -If you omit 'move_location', then the computer moves first. For your +If you omit `move_location`, then the computer moves first. For your next move, recompile `nextmove.c` and play it again: - make nextmove - ./nextmove move_location | tee nextmove.c +```sh +make nextmove +./nextmove move_location | tee nextmove.c +``` -## Judges' comments +## Judges' comments: - We have provided the shell script, ttt, to make it easier to play the game: +We have provided the shell script, [ttt](ttt.sh), to make it easier to play the game: - make ttt - ./ttt [first_move] <- omit first arg to have it move first - ./ttt next_move +```sh +make ttt +./ttt [first_move] <- omit first arg to have it move first +./ttt next_move - The shell script determines when the game is over, and automatically - replaces merlyn.c with an improved version after a loss. The ttt script - has two other modes: +``` + +The shell script determines when the game is over, and automatically +replaces `merlyn.c` (copied from [westley.c](westley.c) with an improved version after a loss. The [ttt](ttt.sh) script +has two other modes: - ./ttt quitgame <- cancel any game in process, revert to merlyn.c - ./ttt clobber <- remove all game files, revert to original source - - Try not to cheat, the computer has not learned how to catch you doing it. +```sh +./ttt quitgame # cancel any game in process, revert to merlyn.c +./ttt clobber # remove all game files, revert to original source +``` -## Author's comments +Try not to cheat, the computer has not learned how to catch you doing it. - A tic-tac-toe self-modifying program that "learns". This C program - plays standard tic-tac-toe on itself. The code is written as a - tic-tac-toe grid; moves are carried out within the code. +## Author's comments: - The human is X, the computer 0 [sic, "zero", not letter "O"]. +A tic-tac-toe self-modifying program that "learns". This C program +plays standard tic-tac-toe on itself. The code is written as a +tic-tac-toe grid; moves are carried out within the code. - The program, when run, reproduces itself with both the player's - move and the computer's move added. Recompile THIS program (using - the same compile line) and repeat until the game is finished. +The human is `X`, the computer `0` [sic, "zero", not letter "O"]. - If the computer wins, the "straight face" in the upper right-hand - corner ":-|" will change into a happy face ":-)". If it is a draw, - the face does not change. If the computer loses, the board is - blanked and the face changes into a sad face ":-(". If this - happens, the blank board should replace the original program; the - computer changes its play and will continue to do so until it no - longer loses games. +The program, when run, reproduces itself with both the player's +move and the computer's move added. Recompile THIS program (using +the same compile line) and repeat until the game is finished. - If you want a program that never loses, simply replace the string - "9999999999 :-| " with "9883857753 :-| ". +If the computer wins, the "straight face" in the upper right-hand +corner ":-|" will change into a happy face ":-)". If it is a draw, +the face does not change. If the computer loses, the board is +blanked and the face changes into a sad face ":-(". If this +happens, the blank board should replace the original program; the +computer changes its play and will continue to do so until it no +longer loses games. + +If you want a program that never loses, simply replace the string +`"9999999999 :-| "` with `"9883857753 :-| "`. + +### How It Works (rot13 to read): - How It Works (rot13 to read) - ---------------------------- Gur iregvpny "onef" bs gur tevq ner vqragvpny shapgvbaf, jvgu gur anzr bs gur shapgvba nf n(), o(), be p(). Nsgre rnpu shapgvba vf From 736b8bbe0d3089459cad32af26a1b098d6ba3493 Mon Sep 17 00:00:00 2001 From: Cody Boone Ferguson <53008573+xexyl@users.noreply.github.com> Date: Sun, 9 Apr 2023 09:05:25 -0700 Subject: [PATCH 8/8] Add 1991/westley to bugs.md I will be working on this in the near future but I want to note it for now. --- bugs.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/bugs.md b/bugs.md index c019ae999..350c8f48b 100644 --- a/bugs.md +++ b/bugs.md @@ -490,6 +490,11 @@ will be fixed in time but it's noted here for now. # 1991 +## [1991/westley](1991/westley/westley.c) ([README.md](1991/westley/README.md)) +## STATUS: compiled executable crashes - please help us fix + +This program crashes. This will be worked on in the near future. + # 1992