Attempt number 3..I really enjoyed this one. although somehowHere is a quick overview of how I feel it's gonna last less long thancreated the first two.code:
I started from the Brainfuck "Hello World!" on esolangs:
++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.
I had to modify it slightly to add the comma, but let's ignore the details...
BF can be converted to ML fairly easily: change
>
and<
to)
and(
respectively. Add a main floor beneath the program. Then implement loops via helper floors and elevators. That turns the above program into:++++++++++>)+++++++)++++++++++)+++)+((((-[!)++.)+.+++++++..+++.)++.((+++++++++++++++.).+++.------.--------.)+.). =========="===============================#===================================================================== ! < #==============================="
This is a working "Hello World!" program in MarioLANG. (This code corresponds to the incorrect "Hello World!" on esolangs, not the obfuscated ML code above.)
At this point, we can golf the code a bit my actually moving some of the loop code into the auxiliary floor. I'm now switching to the actual code from this answer:
++++++++++>)+++++++)++++++++++((-[!)++.)+.+++++++..+++.))]-.(----.((+++++++++++++++.).+++.------.--------.)+. =========="=======================#========================================================================== !((((-(.[)++++++)++++)))< #======================="
And now the actual obfuscation: I figured the
=
would be a dead giveaway for Sp3000 who knew the language (he had used it in Evolution of OEIS). But MarioLANG also has "walls" instead of "floors", represented by|
. These are functionally identical though, so I used the less common character. I also figured the hanging floor would look suspicious so I padded the two lines with other characters. For good measure I added the first line again to the end, and made the padding in the middle line the opposite characters of the first line. I also added matching square brackets (which are ignored by MarioLANG), because I figured an unmatched[
might be another strong hint. Finally, I wrote a CJam script to sprinkle exactly 13=
into random floor positions (13, because that's the length ofHello, World!
) and changed the padding characters in the fourth row toHelo, Wrd!
to make it look like I'm reading the characters from the source code, like a Befunge answer might. Voilà, obfuscated MarioLANG! :)