From 8efe343e639393bdd821c8654dbb3c0f6004083f Mon Sep 17 00:00:00 2001 From: Cody Boone Ferguson <53008573+xexyl@users.noreply.github.com> Date: Fri, 14 Apr 2023 06:10:37 -0700 Subject: [PATCH] Fixes in 1995 winning entries' README.md files ...minus the ones that were fixed in earlier commits for specific reasons. Besides formatting and typo fixes I think the only thing noteworthy is that 1995/spinellis was missing the URL which has been added now. --- 1995/cdua/README.md | 2 +- 1995/dodsond1/README.md | 31 ++++---- 1995/dodsond2/README.md | 19 ++--- 1995/esde/README.md | 37 +++++----- 1995/garry/README.md | 35 +++++---- 1995/leo/README.md | 148 +++++++++++++++++++++++++-------------- 1995/makarios/README.md | 22 +++--- 1995/savastio/README.md | 29 +++++--- 1995/schnitzi/README.md | 21 ++++-- 1995/spinellis/README.md | 24 ++++--- 10 files changed, 226 insertions(+), 142 deletions(-) diff --git a/1995/cdua/README.md b/1995/cdua/README.md index 5d5e93f89..81ba826fa 100644 --- a/1995/cdua/README.md +++ b/1995/cdua/README.md @@ -20,7 +20,7 @@ macOS which he also fixed. Thank you Cody for your assistance! NOTE: on modern systems this was hard to see it solve it in real time because it goes so quickly so Cody added an alternate version which makes it easier with modern systems to see the maze actually being solved in real time. We encourage -you to use this version but we keep the original here to both preserve the +you to use that version but we keep the original here to both preserve the original code (the bug fixes notwithstanding) and it will also let you see just how fast your computer is :-) (and you can also use both to see the difference). For this alternate, slower version, please see below. diff --git a/1995/dodsond1/README.md b/1995/dodsond1/README.md index c63ee45a1..476a29110 100644 --- a/1995/dodsond1/README.md +++ b/1995/dodsond1/README.md @@ -1,32 +1,39 @@ # Most Humorous - Don Dodson - AG Communication Systems - 4101 W Union Hills Dr #1104 - Glendale, AZ 85308 - USA +Don Dodson +AG Communication Systems +4101 W Union Hills Dr #1104 +Glendale, AZ 85308 +USA ## To build: - make all +```sh +make all +``` ## To run: - ./dodsond1 < text_file +```sh +./dodsond1 < text_file +``` ## Try: - - ./dodsond1 < README.md +```sh +./dodsond1 < README.md +``` ## Judges' remarks: You might consider giving the following input: +``` ... a male (who) gets very, very frustrated sitting in a chair all the time because males are biologically driven to go out and hunt giraffes. -- Adjunct Professor Newt Gingrich, Reinhardt College, 1/7/95 +``` ... which can be done like: @@ -41,12 +48,12 @@ The obfuscation is on several levels. Most obviously, the shape of the program. -Underneath that, the variable names are in pig latin, as are the +Underneath that, the variable names are in pig Latin, as are the names of the standard C functions, such as putchar. Even main is -written as ainma. +written as `ainma`. The program construction is also very obfuscated, with all of the -code being inside the ()'s of one of the 6 "orfa" loops. +code being inside the ()'s of one of the 6 `orfa` loops. ## Copyright and CC BY-SA 4.0 License: diff --git a/1995/dodsond2/README.md b/1995/dodsond2/README.md index 2aaefd947..0ba254903 100644 --- a/1995/dodsond2/README.md +++ b/1995/dodsond2/README.md @@ -1,19 +1,22 @@ # Best Game - Don Dodson - AG Communication Systems - 4101 W Union Hills Dr #1104 - Glendale, AZ 85308 - USA +Don Dodson +AG Communication Systems +4101 W Union Hills Dr #1104 +Glendale, AZ 85308 +USA ## To build: - make all +```sh +make all +``` ## To run: - ./dodsond2 - +```sh +./dodsond2 +``` ## Judges' remarks: diff --git a/1995/esde/README.md b/1995/esde/README.md index b7cc7c73d..6ec517844 100644 --- a/1995/esde/README.md +++ b/1995/esde/README.md @@ -1,27 +1,32 @@ # Interesting Algorithm - Sebastian Deorowicz - ul. Radzionkowska 71a - 42-605 Tarnowskie Gory - Poland +Sebastian Deorowicz +ul. Radzionkowska 71a +42-605 Tarnowskie Gory +Poland ## To build: - make all +```sh +make all +``` ## To run: - ./esde data-file word +```sh +./esde data-file word +``` where data-file contains lines of < 255 chars in length. ## Try: - ./esde esde.data Johanson - ./esde esde.data2 read - ./esde README.md date - +```sh +./esde esde.data Johanson +./esde esde.data2 read +./esde README.md date +``` ## Judges' remarks: @@ -32,19 +37,19 @@ If you still don't know what it does, try [https://en.wikipedia.org/wiki/Soundex](https://en.wikipedia.org/wiki/Soundex). -## Author's remarks +## Author's remarks: -### what this program does: +### what this program does This program searches in the file words which have the same Soundex code -like the given word, and print out lines with these words. +of the given word, and print out lines with those words. -The Soundex code is using to find similar sounds words. +The Soundex code is used to find similar sounding words. Soundex code begins with the first letter of the word followed by a -three-digit code. There is the algorithm: +three-digit code. This is the algorithm: -0. Every letter in the word change by a digit (excluding the first letter). +0. Every letter in the word beyond the first letter is replaced by a digit. 1. Replace all pairs of the same code by single code (ex. R011235 -> R01235). 2. Remove all 0-codes (ex. R01235 -> R1235). 3. If length of code is > 4, get only first 4 codes (ex. R1235 -> R123). diff --git a/1995/garry/README.md b/1995/garry/README.md index 32d4a9e83..20b6aa329 100644 --- a/1995/garry/README.md +++ b/1995/garry/README.md @@ -56,35 +56,40 @@ the source called [garry.fmt.c](garry.fmt.c). ## Author's remarks: This program is a file filter, designed to do environment-expansion and -incorporating the ability to create binary from escaped data in the +incorporating the ability to create binary from escaped data in the environment variables. -The calling syntax is pretty simple, just use it with stdio-redirection +The calling syntax is pretty simple, just use it with stdio-redirection or inside pipelines, e.g.: - progname converted_file +```sh +./garry converted_file +``` or - cat all_my_files/* | progname | lp +```sh +cat all_my_files/* | ./garry | lp +``` -The syntax of the conversion of the input file is as follows: To include -the value of an environment variable in the output file, place the name -of the variable between "$"-signs in the input, e.g.: +The syntax of the conversion of the input file is as follows: To include the +value of an environment variable in the output file, place the name of the +variable between "$"-signs in the input, e.g.: My Home-Directory is: $HOME$ I'm using the path: $PATH$ -Unknown Env-variables or malformed expressions are ignored and kept -intact. +Unknown Env-variables or malformed expressions are ignored and kept intact. -Additionally, the filter replaces escaped octal values in the -environment variables by their binary representation, e.g.: +Additionally, the filter replaces escaped octal values in the environment +variables by their binary representation, e.g.: - $ TEST="\110\145\154\154\157" - $ export TEST - $ echo '$TEST$' | progname - Hello +```sh +$ TEST="\110\145\154\154\157" +$ export TEST +$ echo '$TEST$' | ./garry +Hello +``` ## Copyright and CC BY-SA 4.0 License: diff --git a/1995/leo/README.md b/1995/leo/README.md index 4d4e9778c..d910023df 100644 --- a/1995/leo/README.md +++ b/1995/leo/README.md @@ -1,30 +1,37 @@ # Best Use of Obfuscation - Leonid A. Broukhis - 46728 Crawford St., apt. 20 - Fremont, CA 94539 - USA +Leonid A. Broukhis +46728 Crawford St., apt. 20 +Fremont, CA 94539 +USA ## To build: - make all +```sh +make all +``` ## To run: - - ./leo [ deep ] [ right ] [ Variable ] [ cycle [ freq ] ] +```sh +./leo [ deep ] [ right ] [ Variable ] [ cycle [ freq ] ] +``` See the author's information below on these details. ## Try: - ./leo 1 | cat - /dev/tty | gs - +```sh +./leo 1 | cat - /dev/tty | gs - - ./leo 37 80 | cat - /dev/tty | gs - +./leo 37 80 | cat - /dev/tty | gs - +``` If you don't have gs or an equivalent postscript viewer, try: +```sh echo "" | ./leo 1 > foo.ps +``` and send foo.ps to your local postscript printer or open it in an appropriate application (e.g. GIMP). @@ -41,37 +48,39 @@ Some Ghostscripts/Postscript programs cleared the screen right after the image is drawn, so we added element 106 which acts as an input buffer. -To qualify for a category specially for yourself in the Geek code, -find out all the secret switches that the author doesn't divulge ! -(All switches are single characters on the command line - anything that's - not a number is a candidate) +To qualify for a category specially for yourself in the Geek code, find out all +the secret switches that the author doesn't divulge ! (All switches are single +characters on the command line - anything that's not a number is a candidate.) ## Author's remarks: The usage is: - ./leo [ deep ] [ right ] [ Variable ] [ cycle [ freq ] ] +```sh +./leo [ deep ] [ right ] [ Variable ] [ cycle [ freq ] ] +``` -where the first three are literal words, `cycle' is a positive -integer (0 is ignored), and `freq' is an integer (default = 0) -supposed to be in range 0..100 (bigger values are allowed, however). -Invalid parameters and options usually stop the command line -parsing (but not always, why?). The actual position of the word -options does not matter, so "prog.sh right Variable 1 70" -is equivalent to "prog.sh 0 0 0 1 Variable 70 right", etc. +where the first three are literal words, `cycle` is a positive integer (0 is +ignored), and `freq` is an integer (default = 0) that's supposed to be in the +range 0..100 (bigger values are allowed, however). Invalid parameters and +options usually stop the command line parsing (but not always, why?). The actual +position of the word options does not matter, so `./leo right Variable 1 70` is +equivalent to `./leo 0 0 0 1 Variable 70 right`, etc. If `Variable' is used, `cycle' is almost ignored (see below) but has to be present if you want to enter `freq' (and you usually do). Some options to try (besides the obvious): - ./leo 1 | cat - /dev/tty | gs - +```sh +./leo 1 | cat - /dev/tty | gs - +``` This draws the basic pattern I invented in high school: You take a big sheet of "arithmetic" paper and draw a line -of length 1 (between 2 crossings) it the center of the sheet: +of length 1 (between 2 crossings) at the center of the sheet: | @@ -79,23 +88,31 @@ This makes 2 open ends (I think the notion of an "open end" doesn't require explanations) in step 1. Now, until there are open ends in step N, repeat: for each open end pretend it points north and draw 2 lines going northwest and northeast from it to the nearest crossings. This needs to be -done "simultaneously" for all ends that are open at the moment. +done "simultaneously" for all ends that are open at that moment. Step 2: + +``` \./ | / \ +``` Step 3: + +``` __| |__ \./ | __ / \ __ | | +``` Step 4: + +``` . \./ \./ \__| |__/ @@ -104,9 +121,11 @@ Step 4: \__./ \.__/ / | | \ / \./ \ - +``` Step 5: + +``` ._| . |_. __| \./ \./ |__ \__| |__/ @@ -117,18 +136,21 @@ Step 5: |_./ \./ \._| | | -The lines marked by I show the places where "simultaneity" is significant. +``` -Note that so far all the drawings represent valid -structural formulas of some organic substances. +The lines marked by `I` show the places where "simultaneity" is significant. + +Note that so far all the drawings represent valid structural formulas of some +organic substances. step 1: ethane step 2: 2,3-dimethylbutane step 3: (2,5-dimethyl;3,4-isopropyl)-hexane step 4 and 5: I don't know. Do you? -etc. Step 6: + +``` \./ \./ \./ \./ ._| . |_. ._| . |_. \__| \./ \./ |__/ \__| \./ \./ |__/ @@ -140,13 +162,16 @@ Step 6: / |_./ \./ \._| / |_./ \./ \._| | | | | / \ / \ / \ / \ - + +``` + depending on the desired "hairiness". The original (paper-based) algorithm was "hairy", but it didn't look as good on the screen. The program cannot handle non-hairy mode 100% correctly - step 6 happens to be - + +``` |__ ...__/ ...__/ ... \ ... \. @@ -156,52 +181,66 @@ to be ...__/ ...__/ \ \.__ | - + +``` + and so on: the horisontal symmetry has been lost. That's why the opening for step 1 is not a single line but a cross: - + +``` \./ / \ +``` -To watch it repeatedly (as a screen saver), use: - - ./leo 2 | cat - /dev/tty | gs - +To watch it repeatedly (as a screensaver), use: + +```sh +./leo 2 | cat - /dev/tty | gs - +``` The command line: - ./leo Variable 1 | cat - /dev/tty | gs - +```sh +./leo Variable 1 | cat - /dev/tty | gs - +``` -This draws the same as above. Try: - - ./leo Variable 1 1 | cat - /dev/tty | gs - +draws the same as above. Try: -what happened to the picture? Increase `freq' and watch the changes. +```sh +./leo Variable 1 1 | cat - /dev/tty | gs - +``` -If `cycle' is more than 1, the program loops, allowing the user to -enjoy randomly changing patterns (the delay is 3 sec), -but there is a secret switch to suppress looping : useful +What happened to the picture? Increase `freq` and watch the changes. + +If `cycle` is more than 1, the program loops, allowing the user to +enjoy randomly changing patterns (the delay is 3 seconds), +but there is a secret switch to suppress looping: useful if you want to pipe the output to a printer. `uudecode` the spoiler below if you really want to know. +``` begin 664 spoiler1 M*%1H92!C;VQO;B J:7,J('1H92!S96-R970@ + ## To build: - make all +```sh +make all +``` ## To run: - ./schnitzi num +```sh +./schnitzi num +``` ## Try: - ./schnitzi 24 - ./schnitzi 18 - ./schnitzi 30 -NOTE: as the author warns do not use too high a number! If you wish to ignore +```sh +./schnitzi 24 +./schnitzi 18 +./schnitzi 30 +``` + +WARNING: the author warns to not use too high a number! If you wish to ignore the warning it is an exercise to determine how high is too high. :-) ## Judges' remarks: diff --git a/1995/spinellis/README.md b/1995/spinellis/README.md index 8c61c7794..7e0eb5aa2 100644 --- a/1995/spinellis/README.md +++ b/1995/spinellis/README.md @@ -1,27 +1,33 @@ # Abusing The Rules - Diomidis Spinellis - SENA S.A. - Kyprou 27 - GR-152 37 Filothei - Greece +Diomidis Spinellis +SENA S.A. +Kyprou 27 +GR-152 37 Filothei +Greece + ## To build: - make all +```sh +make all +``` ## To run: - ./spinellis < spinellis.c +```sh +./spinellis < spinellis.c +``` -## Judges' remarks +## Judges' remarks: While the code does not abuse the rules, its output surely does! P.S. Does the source have any spelling errors? -## Author's remarks + +## Author's remarks: 96% of the program lines (631 out of the 658) are comment text rendering the program readable and understandable. With the exception of the