Updated 1337 hacker rulz to version 7. Added `1337.mk` to contain the updated 1337 hacker rulz (v7). We use an optional include of `1337.mk` (or `../1337.mk`, or `../../1337.mk`) to include the 1337 hacker rulz. Changed `make deep_magic` to `make more_magic`. Changed `bin/tar-entry.sh` VERSION from "1.3.7 2024-07-22" to "1.3.8 2024-07-23". Changed `bin/tar-year.sh` VERSION from "1.2.5 2024-07-22" to "1.2.6 2024-07-23". Add `make new_entry` to `YYYY/Makefile` and `template/Makefile.year`. Change `make new_year` to use `sort -n -u`. Made minor debug message fixes to `bin/new-year.sh`. Changed `bin/new-year.sh` VERSION from "1.3 2024-07-23" to "1.3.1 2024-07-23". Improved `bin/add-dir.sh` to update `YYYY/Makefile` with the new entry directory name. Changed `bin/add-dir.sh` VERSION from "1.0 2024-07-21" to "1.1 2024-07-23". Performed `make www` to accomplish the above and to test under macOS.
To build:
make all
There is an alternate version that does something different
that can be used if your compiler is incapable of compiling X=g()... in
main(). It can be used for another purpose too.
To use:
./pjr
Alternate code:
Note that some compilers will be unable to compile the expression X=g()... in
main() due to lack of temporary stack space. One might want to try replacing
main() with:
main(){X=s().v().o().o().l().S().d().l().i().o().w().N();}
if this is a problem, which is what this alternate code is.
NOTE: it prints something else and it is what the author suggested one try as well.
Alternate build:
make alt
Alternate use:
./pjr.alt
Judges' remarks:
This program prints out a string. Can you figure out how it is done?
By use of pointers to functions returning a struct of pointers to functions!
NOTICE to those who wish for a greater challenge:
If you want a greater challenge, don't read any further: just try to understand the program via the source.
If you get stuck, come back and read below for additional hints and information.
What this entry does:
This program prints out the string:
the quick brown fox jumped over the lazy dog
Author's remarks:
It is simple to make the program print other strings. Each alphabetical character from a to z is printed out as its opposite:
a->z b->y c->x etc
To encode a new string input the string as it is meant to come out:
X=s().v().o().o().l().S().d().l().i().o().w().N();
Note: S() represents a space and N() a newline. This will now
produce...
hello world
By the way, there is actually a piece of code which is not used in the original program! I leave it as an intellectual exercise to the reader to find out what it is.