I was bored today ;P So I made an esoteric programming language based on Brainfuck and COW, only based on anime smilies
There is an array of 3000 entries, all set to zero. You can move around the pointer around in the array, and modify the contents.
>_> increments the pointer number, >__> increments it twice, etc.
<_< decrements the pointer number, <__< decrements it twice, etc.
(that is ^ _ ^) increments the number at the pointer, ^__^ twice, etc
;_; decrements it, you get the picture
(that is @ _ @) outputs the number at the pointer as a character
o_O Starts a loop
O_o Jumps to the o_O if the pointer is not zero, otherwise it continues
^________________________________________^ @ _@
The long ^__^ has 40 underscores - this adds 40 to the value. @ _@ outputs character 40 - a left bracket (.
^________________________________________^ @ _@ ^ _^ @ _@
This does the same as before, except it adds another 1 to the value afterwards, and outputs it again - the output is ().
^_________________________________^ @___@
Moves the value to 33 and outputs character 33 three times - result !!!.
^__________^ >_> ^_________________________________^ @___@
This adds 10 to the value, then moves the pointer along one, then adds 33 to the new value, then outputs !!! as above. The array looks like this:
...0 0 0 10 32 0 0...
The 10 is ignored by the program - it is in a different position in the array from the one being read. >_> and <_< shift about the position in the array.
^________________________________________^ o_O @ _@ ;_; O_o
This outputs('&%$#"! and some squares (The squares are the unprintable characters 0-31). The ^___^ adds 40 to the value. Then, the o_O starts a loop. The two commands in the loop, @ _@ and ;_; , are run - Character 40 is printed ( , then 1 is taken away from it. Then the O_o loops back to the o_O, so Character 39 is printed ' , and 1 is taken away from it. Then character 38 &, and so on, until the value is 0. The O_o doesn't loop back if the value is 0.
>_> ^___^ o_O <_< ^____^ >_> ;_; O_o <_< @ _@
Instead of typing a ^____^ with many underscores, you can loop it over and over again. This is quite complicated, so here's a list.
1) The >_> shifts over a position, and ^___^ adds 3 to it. 0 | 3
2) The o_O starts a loop
3) The <_< shifts back, and ^____^ adds 4 to it. 4 | 3
4) We shift back to the second position, subtract 1 from it, and go back to the start. 4 | 2
5) Kept up? We go back to the first position, and another 4 is added to it. 8 | 2
6) Then 1 is taken away from the second column. 8 | 1
7) It loops back, another 4 is added to the first: 12 | 1
8 ) Another one is taken away: 12 | 0
9) This time, the value in the second (and current) column is 0, so the loop ends.
10) We go back to the first column, with 12 in it, and output character 12, which is a boring square. Changing the number of underscores gets you letters and cool stuff
>_> ^________________^ o_O <_< ^________________^ >_> ;_; O_o <_< ;_; @ _@ o_O <_< @ _@ ^ _^ >_> ;_; O_o
More efficient character mapper It counts up to 127 in one column, then adds 1 and displays it in another column while counting down from the other one.
"Say you're hanging from a huge cliff at the top of mt. everest and a guy comes along and says he'll save you, and proceeds to throw religious pamphlets at you while simultaniously giving a sermon." - Dustin G
well, notepad isn't smart enough to do those replacements for me X)
"Say you're hanging from a huge cliff at the top of mt. everest and a guy comes along and says he'll save you, and proceeds to throw religious pamphlets at you while simultaniously giving a sermon." - Dustin G