Files
ioccc/1990/dg
Cody Boone Ferguson 8125a24fdb Make award titles more consistent
A lot of the award titles that had more than one word capitalised were
changed to just one word capitalised, the first. Some were changed to
have multiple words capitalised. This happened when it was something
like '... prize' or '... award'. An exception to this is 2020/ferguson1:
'Don't tread on me award'. This is because I am not quite sure if I like
'Don't Tread On Me Award' or if it should be 'Don't Tread on Me Award'
(probably not that). For some like 'Grand Prize' or 'Bill Gates Award'
it's simple but I'm not so sure for my Snake entry of 2020. I will try
changing it and comparing it side-by-side to see which looks nicest.

This commit should make it easier to update the form of the award titles
in that they should all be consistent (or more consistent if not
completely) though it should be noted that the macOS Numbers application
(spreadsheet) is case-insensitive. A reason I did not change 'Don't
tread on me award' to 'Don't Tread On Me Award', yet, besides the above
reasons, is that it's a longer title and I am not sure how I like that
many words capitalised. Still it's a title of a slogan/whatever so it
might be better that way. This will be determined in the near future.

The tmp/year_prize.numbers had the text size increased a fair bit as
the default is too small for my pitiful vision (I changed it within
reason as it can become harder in another way if it's too big - 16"
MacBook Pro screen). One of the columns was also widened as it was too
short even for the smaller size.
2024-06-14 06:52:23 -07:00
..
2024-06-14 06:52:23 -07:00
2023-07-06 21:49:38 -07:00
2024-06-14 06:52:23 -07:00
2024-03-13 00:38:46 -07:00

To build:

    make all

To use:

    echo foo bar | ./dg

Try:

    ./try.sh

Judges' remarks:

Some C preprocessors got confused about single quotes in certain cases. In particular, the following source line:

    b12(ase(bco(acp(bi(acp(bcp(acp(bpl(aqu(bqu(A))))))))))))))))))))))))))))))

sometimes has to be changed to:

    b12(ase(bco(acp(bi(acp(bcp(acp(bpl('A'))))))))))))))))))))))))))))

particularly if the C preprocessor botches single quotes in cpp expansions, which we have done for the wider audience.

Author's remarks:

If my preprocessor could hack it, I could write this as one single line rather than 4, but when I do that I get a complaint "defines nested too deeply".

Obfuscation spoiler:

This is another rot13 job (believe it or not) - the #defines are a novel way of adding tokens: #define b12(x) 12 x means that at some point in the source a 12 is followed by the compressed nested #defines. The b12 gets the previous compression as an argument, and prepends the 12, thus making another step in the recreation of the source. The axx() #defines do the same, but add tokens after.

As for the rot13 algorithm, it relies on index(3) to find if the character is in the set A-Za-z. l[] is an array that gets filled with:

    "nopqrstuvwxyzzzzabcdefghijklmmmmNOPQRSTUVWXYZZZZABCDEFGHIJKLMMMM"

If index(3) says the char is in the alphabet, then XOR the offset with 16 to translate, and output, otherwise pass it unchanged.