Update 1994 winning entries' README.md files
Format and typo fixes.
This commit is contained in:
1 parent
ee4ee3497d
commit
2501c808c6
9 files changed
+155
-119
No files matched your search
+14
-10
@@ -1,20 +1,24 @@
|
|||||||
# Best Game
|
# Best Game
|
||||||
|
|
||||||
Don Dodson
|
Don Dodson
|
||||||
AG Communication Systems
|
AG Communication Systems
|
||||||
17239 N. 19th Ave. #1003
|
17239 N. 19th Ave. #1003
|
||||||
Phoenix, AZ 85023
|
Phoenix, AZ 85023
|
||||||
USA
|
USA
|
||||||
|
|
||||||
## To build:
|
## To build:
|
||||||
|
|
||||||
make all
|
```sh
|
||||||
|
make all
|
||||||
|
```
|
||||||
|
|
||||||
## To run
|
## To run:
|
||||||
|
|
||||||
./dodsond1
|
```sh
|
||||||
|
./dodsond1
|
||||||
NOTE: At the prompt, try entering E3.
|
```
|
||||||
|
|
||||||
|
NOTE: At the prompt, try entering `E3`.
|
||||||
|
|
||||||
## Judges' remarks:
|
## Judges' remarks:
|
||||||
|
|
||||||
|
|||||||
+20
-14
@@ -1,18 +1,22 @@
|
|||||||
# Most Obfuscated Packaging
|
# Most Obfuscated Packaging
|
||||||
|
|
||||||
Don Dodson
|
Don Dodson
|
||||||
AG Communication Systems
|
AG Communication Systems
|
||||||
17239 N. 19th Ave. #1003
|
17239 N. 19th Ave. #1003
|
||||||
Phoenix, AZ 85023
|
Phoenix, AZ 85023
|
||||||
USA
|
USA
|
||||||
|
|
||||||
## To build:
|
## To build:
|
||||||
|
|
||||||
make all
|
```sh
|
||||||
|
make all
|
||||||
|
```
|
||||||
|
|
||||||
## To run:
|
## To run:
|
||||||
|
|
||||||
./dodsond2
|
```sh
|
||||||
|
./dodsond2
|
||||||
|
```
|
||||||
|
|
||||||
## Judges' remarks:
|
## Judges' remarks:
|
||||||
|
|
||||||
@@ -33,9 +37,11 @@ dodsond2.gz: gzip compressed data, last modified: Mon Aug 29 21:54:39 1994, max
|
|||||||
The [dodsond2.gz](dodsond2.gz) file was submitted as source
|
The [dodsond2.gz](dodsond2.gz) file was submitted as source
|
||||||
in an effort to get around the 1994 version of Rule 2:
|
in an effort to get around the 1994 version of Rule 2:
|
||||||
|
|
||||||
2) Your entry must be <= 3217 bytes in length. The number of characters
|
```
|
||||||
excluding whitespace (tab, space, newline), and excluding any ; { or }
|
2) Your entry must be <= 3217 bytes in length. The number of characters
|
||||||
followed by either whitespace or end of file, must be <= 1536.
|
excluding whitespace (tab, space, newline), and excluding any ; { or }
|
||||||
|
followed by either whitespace or end of file, must be <= 1536.
|
||||||
|
```
|
||||||
|
|
||||||
Indeed, when [dodsond2.gz](dodsond2.gz) is uncompressed, it is identical
|
Indeed, when [dodsond2.gz](dodsond2.gz) is uncompressed, it is identical
|
||||||
to the [dodsond2.c](dodsond2.c) file you find today.
|
to the [dodsond2.c](dodsond2.c) file you find today.
|
||||||
@@ -58,11 +64,11 @@ be detected from 2 rooms away.
|
|||||||
|
|
||||||
To win, you must find one or more arrows, determine where the Wumpus
|
To win, you must find one or more arrows, determine where the Wumpus
|
||||||
is, and shoot him, all without falling into a pit or becoming the
|
is, and shoot him, all without falling into a pit or becoming the
|
||||||
next meal for the Wumpus. To shoot an arrow, type "s". Then give a
|
next meal for the Wumpus. To shoot an arrow, type `s`. Then give a
|
||||||
list of the rooms you want to shoot into. The rooms must be
|
list of the rooms you want to shoot into. The rooms must be
|
||||||
connected in the order you list them, or else the arrow may bounce
|
connected in the order you list them, or else the arrow may bounce
|
||||||
back and hit you. An arrow can go through as many as four rooms.
|
back and hit you. An arrow can go through as many as four rooms.
|
||||||
But beware, because shooting an arrow and missing the Wumpus may
|
But beware that shooting an arrow and missing the Wumpus may
|
||||||
awaken him.
|
awaken him.
|
||||||
|
|
||||||
There is a robber who waits in an unknown room. If you enter
|
There is a robber who waits in an unknown room. If you enter
|
||||||
@@ -71,8 +77,8 @@ and move to a new room. If he steals all the arrows in the
|
|||||||
Caverns, you may catch him and recover all of them. Doing this
|
Caverns, you may catch him and recover all of them. Doing this
|
||||||
gives you a bonus on your score.
|
gives you a bonus on your score.
|
||||||
|
|
||||||
You can quit at any time by typing 'q'. Typing 'i' will tell
|
You can quit at any time by typing `q`. Typing `i` will tell
|
||||||
you how many arrows you are carrying. 'l' prints the description
|
you how many arrows you are carrying. `l` prints the description
|
||||||
of the current room again.
|
of the current room again.
|
||||||
|
|
||||||
## Copyright and CC BY-SA 4.0 License:
|
## Copyright and CC BY-SA 4.0 License:
|
||||||
|
|||||||
+37
-27
@@ -1,28 +1,36 @@
|
|||||||
# Most Obfuscated Algorithm
|
# Most Obfuscated Algorithm
|
||||||
|
|
||||||
Ian Collier
|
Ian Collier
|
||||||
Oxford University
|
Oxford University
|
||||||
57 Wyndham Avenue (home address)
|
57 Wyndham Avenue (home address)
|
||||||
BOLTON
|
Bolton
|
||||||
BL3 4LG
|
BL3 4LG
|
||||||
England
|
England
|
||||||
|
|
||||||
## To build:
|
## To build:
|
||||||
|
|
||||||
make all
|
```sh
|
||||||
|
make all
|
||||||
|
```
|
||||||
|
|
||||||
## To run:
|
## To run:
|
||||||
|
|
||||||
To use:
|
```sh
|
||||||
./imc INTEGER
|
./imc [NUMBER]
|
||||||
|
```
|
||||||
|
|
||||||
|
where `[NUMBER]` is an optional number. Default is 5.
|
||||||
|
|
||||||
## Try:
|
## Try:
|
||||||
|
|
||||||
./imc 3
|
```sh
|
||||||
./imc 3
|
./imc 3
|
||||||
./imc 4
|
./imc 3
|
||||||
./imc 4
|
./imc 4
|
||||||
./imc 6
|
./imc 4
|
||||||
|
./imc 6
|
||||||
|
./imc 13
|
||||||
|
```
|
||||||
|
|
||||||
## Judges' remarks:
|
## Judges' remarks:
|
||||||
|
|
||||||
@@ -32,15 +40,15 @@ This entry's algorithm is as magic as its output!
|
|||||||
## Author's remarks:
|
## Author's remarks:
|
||||||
|
|
||||||
This program may be compiled with an ANSI or K&R compiler. A few
|
This program may be compiled with an ANSI or K&R compiler. A few
|
||||||
harmless warnings are displayed only if "gcc -Wall" is used.
|
harmless warnings are displayed only if `gcc -Wall` is used.
|
||||||
|
|
||||||
This entry is really a set of library functions, but an example
|
This entry is really a set of library functions, but an example
|
||||||
main function has been added so that the library can be tested. If
|
main function has been added so that the library can be tested. If
|
||||||
the program appears too large, consider that functions o and s can
|
the program appears too large, consider that functions `o` and `s` can
|
||||||
each be separated from the rest of the program (except for the short
|
each be separated from the rest of the program (except for the short
|
||||||
functions p and r, which they require) and used alone. However, the
|
functions `p` and `r`, which they require) and used alone. However, the
|
||||||
main part of the program is the function e, which does require all the
|
main part of the program is the function `e`, which does require all the
|
||||||
other functions (apart from main).
|
other functions (apart from `main`).
|
||||||
|
|
||||||
The program should be supplied with an integer parameter. If no
|
The program should be supplied with an integer parameter. If no
|
||||||
parameter or an invalid parameter is given, then 5 is assumed. The
|
parameter or an invalid parameter is given, then 5 is assumed. The
|
||||||
@@ -53,22 +61,24 @@ OK, so you have probably seen magic square printers before. But what
|
|||||||
about one that deals with even sizes as well as odd ones, or one that
|
about one that deals with even sizes as well as odd ones, or one that
|
||||||
prints out a different one each time (or attempts to, at any rate)?
|
prints out a different one each time (or attempts to, at any rate)?
|
||||||
|
|
||||||
I have formatted the important functions o, s and e to show how useful
|
I have formatted the important functions `o`, `s` and `e` to show how useful
|
||||||
the word "for" is, and (in function e) how useful the words "if" and
|
the word "for" is, and (in function `e`) how useful the words "if" and
|
||||||
"else" are. In fact, hardly anything happens that isn't in one of these
|
"else" are. In fact, hardly anything happens that isn't in one of these
|
||||||
instructions. I did this in order to simplify the code - the algorithms
|
instructions. I did this in order to simplify the code - the algorithms
|
||||||
used to make the random squares are quite complex without being shrouded
|
used to make the random squares are quite complex without being shrouded
|
||||||
in obfuscated code! :-) Incidentally, I was surprised to find out how
|
in obfuscated code! :-) Incidentally, I was surprised to find out how
|
||||||
useful the exclusive-or operator was while writing function s.
|
useful the exclusive-or operator was while writing function `s`.
|
||||||
|
|
||||||
Here are the descriptions of the functions in the library:
|
Here are the descriptions of the functions in the library:
|
||||||
|
|
||||||
o(n,a,q,d): makes a magic square of order n when n is odd and at least 3.
|
```
|
||||||
s(n,a,q,d): makes a magic square of order n when n equals 4.
|
o(n,a,q,d): makes a magic square of order n when n is odd and at least 3.
|
||||||
e(n,a,q,d): makes a magic square of order n when n is even and at least 6.
|
s(n,a,q,d): makes a magic square of order n when n equals 4.
|
||||||
|
e(n,a,q,d): makes a magic square of order n when n is even and at least 6.
|
||||||
|
```
|
||||||
|
|
||||||
In the above, `a` (of type `int*`) points to an area of memory in which
|
In the above, `a` (of type `int *`) points to an area of memory in which
|
||||||
the magic square will be stored and `q` (also of type `int*`) points to
|
the magic square will be stored and `q` (also of type `int *`) points to
|
||||||
an area of memory of length at least `n*sizeof(int)` bytes which can be
|
an area of memory of length at least `n*sizeof(int)` bytes which can be
|
||||||
used as a work space. Both `a` and `q` must be allocated by the caller.
|
used as a work space. Both `a` and `q` must be allocated by the caller.
|
||||||
The integer parameter `d`, usually zero, indicates the length of a gap
|
The integer parameter `d`, usually zero, indicates the length of a gap
|
||||||
|
|||||||
+15
-10
@@ -5,7 +5,7 @@ ISX Corporation
|
|||||||
1165 Northchase Pkwy, Suite 120
|
1165 Northchase Pkwy, Suite 120
|
||||||
Marietta, GA 30067
|
Marietta, GA 30067
|
||||||
USA
|
USA
|
||||||
<http://computronium.org/ioccc.html>
|
<http://computronium.org/ioccc.html>
|
||||||
|
|
||||||
|
|
||||||
## To build:
|
## To build:
|
||||||
@@ -32,10 +32,11 @@ it is not as easy to change it to `fgets()`. [Cody Boone
|
|||||||
Ferguson](/winners.html#Cody_Boone_Ferguson) gives some hints in the
|
Ferguson](/winners.html#Cody_Boone_Ferguson) gives some hints in the
|
||||||
[bugs.md](/bugs.md) file on how this entry works which might be useful in order
|
[bugs.md](/bugs.md) file on how this entry works which might be useful in order
|
||||||
to get this to use `fgets()` which would prevent a warning at linking or
|
to get this to use `fgets()` which would prevent a warning at linking or
|
||||||
runtime. The file [schnitzi.alt.c](schnitzi.alt.c) has this to get anyone
|
runtime, the latter of which is interspersed with the output of the program. The
|
||||||
started, should they wish to tackle it (Cody will in time). The problem with
|
file [schnitzi.alt.c](schnitzi.alt.c) has this to get anyone started, should
|
||||||
changing the buffer size is that even when it works the generated output (see
|
they wish to tackle it (Cody might in time). The problem with changing the buffer
|
||||||
judges' remarks below) will not be 100% correct duplication of the program.
|
size is that even when it works the generated output (see judges' remarks below)
|
||||||
|
will not be 100% correct duplication of the program.
|
||||||
|
|
||||||
### Alternate code:
|
### Alternate code:
|
||||||
|
|
||||||
@@ -69,16 +70,20 @@ down to the bottom right. In other words, the first row in the
|
|||||||
file ends up written down the first column of the result, the
|
file ends up written down the first column of the result, the
|
||||||
second row is written down the second column, etc. The program
|
second row is written down the second column, etc. The program
|
||||||
is run by redirecting a file into the executable on the command
|
is run by redirecting a file into the executable on the command
|
||||||
line; for instance, for the included 'info' file, the program
|
line; for instance, for the file 'info', the program
|
||||||
would be run as follows:
|
would be run as follows:
|
||||||
|
|
||||||
schnitzi < info
|
```sh
|
||||||
|
schnitzi < info
|
||||||
|
```
|
||||||
|
|
||||||
The program generates interesting results when its source file is
|
The program generates interesting results when its source file is
|
||||||
used as input:
|
used as input:
|
||||||
|
|
||||||
|
```sh
|
||||||
schnitzi < schnitzi.c
|
schnitzi < schnitzi.c
|
||||||
|
```
|
||||||
|
|
||||||
The result of this command is a program which does the exact same
|
The result of this command is a program which does the exact same
|
||||||
thing -- in other words, both the program and the "flipped"
|
thing -- in other words, both the program and the "flipped"
|
||||||
version of itself work identically (you'll need to redirect the
|
version of itself work identically (you'll need to redirect the
|
||||||
|
|||||||
+15
-11
@@ -1,24 +1,26 @@
|
|||||||
# Most Well Rounded Obfuscation
|
# Most Well Rounded Obfuscation
|
||||||
|
|
||||||
Andrew T. Shapiro
|
Andrew T. Shapiro
|
||||||
CSES/CIRES University of Colorado
|
CSES/CIRES University of Colorado
|
||||||
Campus Box 216
|
Campus Box 216
|
||||||
Boulder, CO 80309-0216
|
Boulder, CO 80309-0216
|
||||||
USA
|
USA
|
||||||
|
|
||||||
## To build:
|
## To build:
|
||||||
|
|
||||||
make all
|
```sh
|
||||||
|
make all
|
||||||
|
```
|
||||||
|
|
||||||
[Cody Boone Ferguson](/winners.html#Cody_Boone_Ferguson) fixed a bug on systems
|
[Cody Boone Ferguson](/winners.html#Cody_Boone_Ferguson) fixed a bug on systems
|
||||||
where `EOF != -1`. The problem is that `getc()` and the related functions do not
|
where `EOF != -1`. The problem is that `getc()` and the related functions do not
|
||||||
return `-1` on EOF or error but rather `EOF`. However `EOF` is not required to be
|
return `-1` on EOF or error but rather `EOF`. However `EOF` is not required to be
|
||||||
`-1` but merely an int < 0 and this program assumed that `getc()` will return
|
`-1` but merely an int < 0 and this program assumed that `getc()` will return
|
||||||
`-1` on EOF or error, not `EOF`. On systems where `EOF != -1` it could be a
|
`-1` on EOF or error, not `EOF`. On systems where `EOF != -1` it could result in
|
||||||
problem. For the same reason one should not use `EOF` for the `getopt()`
|
an infinite loop (for the same reason one should not use `EOF` for the `getopt()`
|
||||||
functions as they return `-1` when all options are parsed (for details on the
|
functions as they return `-1` when all options are parsed (for details on the
|
||||||
definition of `EOF` see `7.21 Input/output<stdio.h>` subsection 1 of the
|
definition of `EOF` see `7.21 Input/output<stdio.h>` subsection 1 of the
|
||||||
standard). An interesting problem occurred where changing the `-1` to `EOF`
|
standard)). An interesting problem occurred where changing the `-1` to `EOF`
|
||||||
caused both `warning: illegal character encoding in string literal` and `error:
|
caused both `warning: illegal character encoding in string literal` and `error:
|
||||||
source file is not valid UTF-8`. But since `EOF` is simply an int < 0 and making
|
source file is not valid UTF-8`. But since `EOF` is simply an int < 0 and making
|
||||||
the loop condition check that the return value is >= 0 does not cause a
|
the loop condition check that the return value is >= 0 does not cause a
|
||||||
@@ -28,7 +30,9 @@ assistance!
|
|||||||
|
|
||||||
## To run:
|
## To run:
|
||||||
|
|
||||||
./shapiro &
|
```sh
|
||||||
|
./shapiro &
|
||||||
|
```
|
||||||
|
|
||||||
## Try:
|
## Try:
|
||||||
|
|
||||||
@@ -86,7 +90,7 @@ obfuscation is a six member client/server hierarchy.
|
|||||||
(See the [shapiro.md](shapiro.md) file for a detailed description of the
|
(See the [shapiro.md](shapiro.md) file for a detailed description of the
|
||||||
algorithm.)
|
algorithm.)
|
||||||
|
|
||||||
Lint complains about: precedence confusion, `K` may be used before set,
|
`lint` complains about: precedence confusion, `K` may be used before set,
|
||||||
main() returns random value to invocation environment, value type used
|
main() returns random value to invocation environment, value type used
|
||||||
inconsistently, value type declared inconsistently, function argument
|
inconsistently, value type declared inconsistently, function argument
|
||||||
(number) used inconsistently, function returns value which is always
|
(number) used inconsistently, function returns value which is always
|
||||||
|
|||||||
+11
-10
@@ -1,14 +1,16 @@
|
|||||||
# Worst Abuse of the Rules
|
# Worst Abuse of the Rules
|
||||||
|
|
||||||
Szymon Rusinkiewicz
|
Szymon Rusinkiewicz
|
||||||
Massachusetts Institute of Technology
|
Massachusetts Institute of Technology
|
||||||
305 Memorial Dr., Room 005B
|
305 Memorial Dr., Room 005B
|
||||||
Cambridge, Ma 02139
|
Cambridge, Ma 02139
|
||||||
USA
|
USA
|
||||||
|
|
||||||
## To build:
|
## To build:
|
||||||
|
|
||||||
make all
|
```sh
|
||||||
|
make all
|
||||||
|
```
|
||||||
|
|
||||||
## To run:
|
## To run:
|
||||||
|
|
||||||
@@ -36,10 +38,9 @@ compiler can't, the build instructions supplied with this entry
|
|||||||
will produce an executable file. On most systems, the stdout
|
will produce an executable file. On most systems, the stdout
|
||||||
from the executable will exactly match original source.
|
from the executable will exactly match original source.
|
||||||
|
|
||||||
In the future, the contest rules will specify a minimum size
|
In the future, the contest rules will specify a minimum size that is one
|
||||||
that is one character larger than this entry, forever eliminating
|
character larger than this entry, forever eliminating this sort of program from
|
||||||
this sort of program from contest. After all, how many variations
|
the contest. After all, how many variations can one make on this entry? :-)
|
||||||
can one make on this entry? :-)
|
|
||||||
|
|
||||||
## Author's remarks:
|
## Author's remarks:
|
||||||
|
|
||||||
|
|||||||
+24
-17
@@ -1,14 +1,16 @@
|
|||||||
# Best X11 Program
|
# Best X11 Program
|
||||||
|
|
||||||
Teemu Rantanen
|
Teemu Rantanen
|
||||||
Helsinki University of Technology
|
Helsinki University of Technology
|
||||||
Melkonkatu 5 A 8
|
Melkonkatu 5 A 8
|
||||||
00210 Helsinki
|
00210 Helsinki
|
||||||
Finland
|
Finland
|
||||||
|
|
||||||
## To build:
|
## To build:
|
||||||
|
|
||||||
make all
|
```sh
|
||||||
|
make all
|
||||||
|
```
|
||||||
|
|
||||||
## To run:
|
## To run:
|
||||||
|
|
||||||
@@ -98,13 +100,13 @@ the fourth is a variation of that with more nice effects.
|
|||||||
|
|
||||||
|
|
||||||
The first parameter is the operating-mode of the program. There are 4 fractal
|
The first parameter is the operating-mode of the program. There are 4 fractal
|
||||||
pairs, 3 display modes, making total of 12 modes. `Screensize` is half of the
|
pairs and 3 display modes, making total of 12 modes. `screensize` is half of the
|
||||||
actual `screenlength/width`. I.e. if you use 128 as a second parameter, you will
|
actual `screenlength/width`. I.e. if you use 128 as a second parameter, you will
|
||||||
get two 256x256 windows.
|
get two 256x256 windows.
|
||||||
|
|
||||||
The program needs reasonable values for both of these parameters to
|
The program needs reasonable values for both of these parameters to
|
||||||
operate. A good first try could be "0 128" or "8 128". `Colormap` has
|
operate. A good first try could be "0 128" or "8 128". The `colormap` has
|
||||||
to be piped into the programs standard input.
|
to be redirected into the programs standard input via the `colormapfile`.
|
||||||
|
|
||||||
Note that you will need approximately `(second_parameter^2)*64` bytes of free
|
Note that you will need approximately `(second_parameter^2)*64` bytes of free
|
||||||
main memory or the machine will swap heavily (memory references are quite random
|
main memory or the machine will swap heavily (memory references are quite random
|
||||||
@@ -112,23 +114,23 @@ and may confuse paging algorithms easily). This means that for 512x512 windows
|
|||||||
you will need 4M of memory.
|
you will need 4M of memory.
|
||||||
|
|
||||||
|
|
||||||
### `Colormapfile`:
|
### `colormapfile`
|
||||||
|
|
||||||
This is the file from which program reads colors for screen `colormap`. The
|
This is the file from which program reads colors for screen `colormap`. The
|
||||||
first line of the file must be a number between `3..254`. This informs the
|
first line of the file must be a number between `3..254`. This informs the
|
||||||
program how many colors there are to be expected. This is also the maximum
|
program how many colors there are to be expected. This is also the maximum
|
||||||
number of iterations used on picture calculations. Lines after that are X11
|
number of iterations used on picture calculations. Lines after that are X11
|
||||||
color names. The program expects to find, and it uses, the number of colors
|
color names. The program expects to find, and will use, the number of colors
|
||||||
reported on the first line.
|
reported on the first line.
|
||||||
|
|
||||||
There are two `colormapfiles` to start with. One with colors and another with
|
There are two `colormapfile`s to start with. One with colors and another with
|
||||||
only black and white. If you have enough colors on your display you can use the
|
only black and white. If you have enough colors on your display you can use the
|
||||||
one with colors (even on `grayscale`). The other is meant mainly for a one bit
|
one with colors (even on `grayscale`). The other is meant mainly for a one bit
|
||||||
plane display (on which the picture looks terrible compared to a 8 bit plane
|
plane display (on which the picture looks terrible compared to a 8 bit plane
|
||||||
display).
|
display).
|
||||||
|
|
||||||
|
|
||||||
### Compilation:
|
### Compilation
|
||||||
|
|
||||||
You should compile this entry with an optimizing compiler with the
|
You should compile this entry with an optimizing compiler with the
|
||||||
highest level of optimization possible. You will also need an ANSI
|
highest level of optimization possible. You will also need an ANSI
|
||||||
@@ -157,6 +159,8 @@ between the X server and the client is slow. (Don't try this on 9600 bps modem
|
|||||||
line. I did ;) )
|
line. I did ;) )
|
||||||
|
|
||||||
|
|
||||||
|
### Obfuscation
|
||||||
|
|
||||||
Obfuscation is done on different levels. Almost none of it is made at the macro
|
Obfuscation is done on different levels. Almost none of it is made at the macro
|
||||||
level, so `cpp`ing the code won't give you much. Perhaps most notable is the
|
level, so `cpp`ing the code won't give you much. Perhaps most notable is the
|
||||||
algorithmic obfuscation. Simple formula has been turned into something
|
algorithmic obfuscation. Simple formula has been turned into something
|
||||||
@@ -166,33 +170,36 @@ left out of the program because speed of animation was one of the key issues.
|
|||||||
Well, obfuscated or not, some of the effects are very nice ;)
|
Well, obfuscated or not, some of the effects are very nice ;)
|
||||||
|
|
||||||
|
|
||||||
### Memory refreshment:
|
### Memory refreshment
|
||||||
|
|
||||||
Mandelbrot set is calculated from the formula
|
Mandelbrot set is calculated from the formula
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
2
|
2
|
||||||
Z = Z + Z
|
Z = Z + Z
|
||||||
n+1 n 0
|
n+1 n 0
|
||||||
|
```
|
||||||
|
|
||||||
and the Julian set is calculated from the formula
|
and the Julian set is calculated from the formula
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
2
|
2
|
||||||
Z = Z + C
|
Z = Z + C
|
||||||
n+1 n
|
n+1 n
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
where `C` is the same throughout the picture. Both calculation are finished
|
where `C` is the same throughout the picture. Both calculation are finished
|
||||||
when `|Z| >= 2.0`. For the other fractals, the basic methods are the same but
|
when `|Z| >= 2.0`. For the other fractals, the basic methods are the same but
|
||||||
the formula is different (look at the source ;)
|
the formula is different (look at the source ;) )
|
||||||
|
|
||||||
Note that Mandelbrot and Julian on this program aren't exactly correct. Find out
|
Note that Mandelbrot and Julian on this program aren't exactly correct. Find out
|
||||||
why ;)
|
why ;)
|
||||||
|
|
||||||
|
|
||||||
### Bugs:
|
### Bugs
|
||||||
|
|
||||||
- No error checking. If DISPLAY is not set program dumps core. This may also
|
- No error checking. If DISPLAY is not set program dumps core. This may also
|
||||||
happen if a request of some of the resources fails e.g. getting colors.
|
happen if a request of some of the resources fails e.g. getting colors.
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
# Best Short Program
|
# Best Short Program
|
||||||
|
|
||||||
Jeff Weisberg
|
Jeff Weisberg
|
||||||
University of Rochester
|
University of Rochester
|
||||||
Dept of Electrical Engineering
|
Dept of Electrical Engineering
|
||||||
Computer Studies Bldg
|
Computer Studies Bldg
|
||||||
Rochester, NY 14627
|
Rochester, NY 14627
|
||||||
USA
|
USA
|
||||||
|
|
||||||
## To build:
|
## To build:
|
||||||
|
|
||||||
@@ -43,7 +43,7 @@ it was read on stdin instead of via `cc -E`.
|
|||||||
|
|
||||||
## Author's remarks:
|
## Author's remarks:
|
||||||
|
|
||||||
### Description:
|
### Description
|
||||||
|
|
||||||
The following short program implements the "Yet Another" algorithm for
|
The following short program implements the "Yet Another" algorithm for
|
||||||
generating prime numbers. It will generate all primes up to 33554432,
|
generating prime numbers. It will generate all primes up to 33554432,
|
||||||
@@ -53,7 +53,7 @@ run to completion, so as an added feature, it will cease execution upon
|
|||||||
reception of a signal (any will do equally well), as well as in the
|
reception of a signal (any will do equally well), as well as in the
|
||||||
event of a system shutdown or reboot.
|
event of a system shutdown or reboot.
|
||||||
|
|
||||||
### Bugs:
|
### Bugs
|
||||||
|
|
||||||
The alternative version ([weisberg.alt](weisberg.alt.c)) has never actually run
|
The alternative version ([weisberg.alt](weisberg.alt.c)) has never actually run
|
||||||
to completion. After running for close to a week it had reached somewhere around
|
to completion. After running for close to a week it had reached somewhere around
|
||||||
@@ -63,7 +63,7 @@ remarkably well). As there are quite a lot of primes to be found before reaching
|
|||||||
the output through your favorite pager (`more` or `less`), and not output to a
|
the output through your favorite pager (`more` or `less`), and not output to a
|
||||||
paper output device (unless you have *LOTS* of paper).
|
paper output device (unless you have *LOTS* of paper).
|
||||||
|
|
||||||
### Technical:
|
### Technical
|
||||||
|
|
||||||
The original "Yet Another Prime Program" algorithm used here was developed as a
|
The original "Yet Another Prime Program" algorithm used here was developed as a
|
||||||
Computer Architecture course micro-programming exercise, and was designed to
|
Computer Architecture course micro-programming exercise, and was designed to
|
||||||
|
|||||||
+10
-11
@@ -1,11 +1,11 @@
|
|||||||
# Worst Abuse of the C Preprocessor
|
# Worst Abuse of the C Preprocessor
|
||||||
|
|
||||||
Brian Westley (Merlyn LeRoy on Usenet)
|
Brian Westley (Merlyn LeRoy on Usenet)
|
||||||
Digi International
|
Digi International
|
||||||
1906 James Ave.
|
1906 James Ave.
|
||||||
St. Paul, MN 55105
|
St. Paul, MN 55105
|
||||||
USA
|
USA
|
||||||
<http://www.westley.org>
|
<http://www.westley.org>
|
||||||
|
|
||||||
## To build:
|
## To build:
|
||||||
|
|
||||||
@@ -20,12 +20,8 @@ game!
|
|||||||
|
|
||||||
## To run:
|
## To run:
|
||||||
|
|
||||||
```sh
|
There is no running as such. See below.
|
||||||
./westley
|
|
||||||
```
|
|
||||||
|
|
||||||
NOTE: your terminal should be set to 80 columns, 8 character tabs, and
|
|
||||||
wraparound.
|
|
||||||
|
|
||||||
|
|
||||||
## Try:
|
## Try:
|
||||||
@@ -38,6 +34,9 @@ cc -Describe -Door westley.c
|
|||||||
cc -Describe -Drain westley.c
|
cc -Describe -Drain westley.c
|
||||||
```
|
```
|
||||||
|
|
||||||
|
NOTE: your terminal should be set to 80 columns, 8 character tabs, and
|
||||||
|
wraparound.
|
||||||
|
|
||||||
## Judges' remarks:
|
## Judges' remarks:
|
||||||
|
|
||||||
Not all compiler errors are bad.
|
Not all compiler errors are bad.
|
||||||
|
|||||||
Reference in new issue
Block a user