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
+37
-27
@@ -1,28 +1,36 @@
|
||||
# Most Obfuscated Algorithm
|
||||
|
||||
Ian Collier
|
||||
Oxford University
|
||||
57 Wyndham Avenue (home address)
|
||||
BOLTON
|
||||
BL3 4LG
|
||||
England
|
||||
Ian Collier
|
||||
Oxford University
|
||||
57 Wyndham Avenue (home address)
|
||||
Bolton
|
||||
BL3 4LG
|
||||
England
|
||||
|
||||
## To build:
|
||||
|
||||
make all
|
||||
```sh
|
||||
make all
|
||||
```
|
||||
|
||||
## To run:
|
||||
|
||||
To use:
|
||||
./imc INTEGER
|
||||
```sh
|
||||
./imc [NUMBER]
|
||||
```
|
||||
|
||||
where `[NUMBER]` is an optional number. Default is 5.
|
||||
|
||||
## Try:
|
||||
|
||||
./imc 3
|
||||
./imc 3
|
||||
./imc 4
|
||||
./imc 4
|
||||
./imc 6
|
||||
```sh
|
||||
./imc 3
|
||||
./imc 3
|
||||
./imc 4
|
||||
./imc 4
|
||||
./imc 6
|
||||
./imc 13
|
||||
```
|
||||
|
||||
## Judges' remarks:
|
||||
|
||||
@@ -32,15 +40,15 @@ This entry's algorithm is as magic as its output!
|
||||
## Author's remarks:
|
||||
|
||||
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
|
||||
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
|
||||
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
|
||||
other functions (apart from main).
|
||||
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
|
||||
other functions (apart from `main`).
|
||||
|
||||
The program should be supplied with an integer parameter. If no
|
||||
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
|
||||
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
|
||||
the word "for" is, and (in function e) how useful the words "if" and
|
||||
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
|
||||
"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
|
||||
used to make the random squares are quite complex without being shrouded
|
||||
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:
|
||||
|
||||
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.
|
||||
e(n,a,q,d): makes a magic square of order n when n is even and at least 6.
|
||||
```
|
||||
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.
|
||||
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
|
||||
the magic square will be stored and `q` (also of type `int*`) points to
|
||||
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
|
||||
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.
|
||||
The integer parameter `d`, usually zero, indicates the length of a gap
|
||||
|
||||
Reference in new issue
Block a user