Files
ioccc/1998/bas1
Landon Curt Noll 96e0f2b966 move some rules into 1337.mk
A number of rules have been moved from entry `Makefile`s into the
`1337.mk` include file to make it easier for these common rules to be
updated or modified globally (by modifying the `1337.mk` include file).

The entry level `Makefile`s are now similar in form to the
/Makefile.example](https://github.com/ioccc-src/mkiocccentry/blob/master/Makefile.example)
file from the other repo.

The following make rules were moved into the `1337.mk` include file:

- `make indent.c`
- `make install`
- `make diff_orig_prog`
- `make diff_prog_orig`
- `make diff_alt_prog`
- `make diff_prog_alt`

This simplifies the entry level `Makefile`s so that they mostly reflect
the specifics of the particular entry.

Mentioned in FAQ 4.2, that the make diff rules are in the `1337.mk` include file.

Fixed invalid TAB character in `faq.md`.

Removed `make clean` directives that removed `indent.c`.  This file is now
removed via `make indent_clean`, a clean rule that also removes `indent.c`.

Removed `make clobber` directives that removed sandwich,  This file is now
removed via `make indent_clobber`, a clean rule that also removes `sandwich`.

Added `make indent_clean` and `make indent_clobber` rules into the top level
`Makefile` and the year level `YYYY/Makefile`.

Performed `make quick_www` to accomplish the above and to test under macOS.
2024-08-21 23:42:28 -07:00
..
2023-11-25 10:23:41 -08:00
2023-07-06 21:49:38 -07:00
2024-08-21 23:42:28 -07:00

To build:

    make all

To use:

    ./bas1.sh

Judges' remarks:

The output is supposed to be a 3D maze, but it is somewhat more than that. If you've seen any of the Maurits Escher's works, you'll know what we're talking about.

When trying to run the program with command line arguments, be generous.

Author's remarks:

BEMAZING

"You're in a twisty little maze of beams, all different."

Bemazing is "amazing" taken one step (letter) further. Bemazing creates a 3D maze of beams. Try to go from the entrance (the unfinished beam in one corner) to the exit (the unfinished beam in the opposite corner) or vice versa.

For maximum portability, Bemazing is not tied to any window system, but creates postscript output. The picture it makes will fit on either A4 or letter size paper.

In addition, because postscript is rather verbose, Bemazing creates the postscript in gzip(1) format, in order to save precious bits on your hard disk for the latest version of GNU Emacs (after all, you wouldn't want to use an editor without a psychoanalyze-pinhead function, now would you). Again for maximum portability, Bemazing will take special care that the binary output will not contain any newline or return characters that may get weird treatment on systems that do not use the One True Line Separator.

NOTES

Be sure to view the source with something that can display characters \240-\377. Use LESSCHARSET=latin1, M-x standard-display-european in GNU Emacs etc. The source does not use characters in the range \200-\237 (we are not an unnamed word processor that tends to create HTML containing these control characters).

Because this is not the obfuscated postscript contest, the postscript does not contain any for, if or other control structures. All the logic is in the C code. There are only a few straightforward defs, because otherwise the output would become much larger.

Try running Bemazing with command line arguments and see what happens. (But note that the program only guarantees that there actually is a route from entrance to exit if you run it without command line arguments.)