Whyfuck
Whyfuck is confusing derivate of well-known esoteric programming language Brainfuck. It shares brainfuck's possibilities and adds some new ones, but makes programming annoying and slow, though you could create a script to produce code. (And that is cheating!)
Working Mechanism
Whyfuck uses 10 commands whose 8 is shared with brainfuck with 2 extra commands, giving small addition to command arsenal. Syntax otherways is same.
Brainfuck | Whyfuck | Meaning |
---|---|---|
> | 0 | move selector into next cell in tape |
< | 1 | move selector back in tape |
+ | 2 | increase value of current cell by 1 |
- | 3 | decrease value of current cell by 1 |
[ | 4 | jump to next corresponding ] if cell value is zero |
] | 5 | jump back to corresponding [ if cell value is zero |
. | 6 | output current cell value as corresponding character |
, | 7 | input user-given character as corresponding integer value into current cell |
8 | skip next command | |
9 | reverse read direction |
But, as this would be way too easy, each character is crypted into new one, with this python-syntax function:
str((number+1)*(number_index_in_code+1)*71)[-2]
Meaning, that each number is different, depending on it's position in code. You must type the code the way that output does the things you ordered it to.
So a raw code which simply looks like this without crypting:
0422205
Will look like this after crypting, which is then executed using those number commands:
7135628
And we can easily make script which creates 'true' output values:
| index: 0 | 7 4 1 8 5 2 9 6 3 1 8 5 2 9 6 3 0 7 4 2 9 6 3 0 7 1 | 4 8 2 6 1 5 9 3 7 2 6 0 4 8 3 7 1 5 9 4 8 2 6 0 5 2 | 1 2 3 5 6 7 9 0 1 3 4 5 6 8 9 0 2 3 4 6 7 8 9 1 2 3 | 8 6 5 3 2 0 8 7 5 4 2 0 9 7 6 4 2 1 9 8 6 4 3 1 0 4 | 5 1 6 2 7 3 8 4 9 5 0 6 1 7 2 8 3 9 4 0 5 1 6 2 7 5 | 2 5 7 0 3 5 8 0 3 6 8 1 3 6 9 1 4 6 9 2 4 7 9 2 5 6 | 9 9 9 8 8 8 7 7 7 7 6 6 6 5 5 5 4 4 4 4 3 3 3 2 2 7 | 6 3 0 7 4 0 7 4 1 8 4 1 8 5 2 8 5 2 9 6 2 9 6 3 0 8 | 3 7 1 5 9 3 7 1 5 9 2 6 0 4 8 2 6 0 4 8 1 5 9 3 7
Examples
Hello World
865320875485976421926431086532087582593857598233308653207454217768159864310865320871340972061728994051627097114
Ascii MAchine
Loop which counts numbers to infinity and prints the matching symbol
35376