Codegolf/RGB2Rv10: Difference between revisions
Jump to navigation
Jump to search
(Created page with "== Esocalc == Was passiert, wenn man [http://en.wikipedia.org/wiki/Befunge Befunge] mit [http://en.wikipedia.org/wiki/Brainfuck Brainfuck] kreuzt? Brainfunge? Befuck? Zum Gl...") |
|||
Line 1: | Line 1: | ||
== Esocalc == | == Esocalc == | ||
Was passiert, wenn man [http://en.wikipedia.org/wiki/Befunge Befunge] mit [http://en.wikipedia.org/wiki/Brainfuck Brainfuck] kreuzt? | Was passiert, wenn man [http://en.wikipedia.org/wiki/Befunge Befunge] | ||
mit [http://en.wikipedia.org/wiki/Brainfuck Brainfuck] kreuzt? | |||
Brainfunge? Befuck? | Brainfunge? Befuck? | ||
Dieser Fungeoid wurde stark kastriert um die Implementation zu | Dieser Fungeoid wurde stark kastriert um die Implementation zu | ||
vereinfachen. | vereinfachen. | ||
Der Programmspeicher | === Programmspeicher === | ||
Der Programmspeicher hat 80x25 bytes. | |||
Daten werden auf einem Stack gespeichert, die meisten Operatoren | Daten werden auf einem Stack gespeichert, die meisten Operatoren | ||
poppen die zwei letzten Elemente und pushen das Ergebnis an das Ende. | poppen die zwei letzten Elemente und pushen das Ergebnis an das Ende. | ||
(erst "a", dann "b") | |||
Initial ist der Zeiger auf dem ersten Byte und wandert nach rechts. | |||
Man kann davon ausgehen, dass nur valide Programme via stdin übergeben werden. | |||
Der Zeiger wird nicht über die Grenzen der Zeilen/Zellen wandern. | |||
=== Operatoren === | === Operatoren === | ||
Line 31: | Line 39: | ||
(space) No-op. Does nothing | (space) No-op. Does nothing | ||
</pre></code> | </pre></code> | ||
Beispiel ("pretty printed") | Beispiel ("pretty printed") |
Revision as of 21:18, 3 October 2013
Esocalc
Was passiert, wenn man Befunge mit Brainfuck kreuzt? Brainfunge? Befuck?
Dieser Fungeoid wurde stark kastriert um die Implementation zu vereinfachen.
Programmspeicher
Der Programmspeicher hat 80x25 bytes. Daten werden auf einem Stack gespeichert, die meisten Operatoren poppen die zwei letzten Elemente und pushen das Ergebnis an das Ende. (erst "a", dann "b")
Initial ist der Zeiger auf dem ersten Byte und wandert nach rechts.
Man kann davon ausgehen, dass nur valide Programme via stdin übergeben werden. Der Zeiger wird nicht über die Grenzen der Zeilen/Zellen wandern.
Operatoren
0-9 Push this number on the stack
+ Addition: Pop a and b, then push a+b
- Subtraction: Pop a and b, then push b-a
* Multiplication: Pop a and b, then push a*b
/ Integer division: Pop a and b, then push b/a, rounded down.
> Start moving right
< Start moving left
^ Start moving up
v Start moving down
_ Pop a value; move right if value=0, left otherwise
| Pop a value; move down if value=0, up otherwise
. Pop value and output as an integer
@ End program
(space) No-op. Does nothing
Beispiel ("pretty printed")
v
2 @
>3+.^
Ausgabe ist "5"
TBC