Problem B
Befunge
Languages
da
en
is
Befunge is a two-dimensional, stack-based, self-modifying programming language, described as a cross between Forth and Lemmings. It was created in 1993 by Chris Pressey. A Befunge program is written on a $25\times 80$ torus of characters; control flow is choreographed by following arrow-like symbols. There is a single stack of integers; popping from an empty stack returns the integer $0$.
The instructions are:
Digit |
0–9 |
Push this (one-digit) number onto the stack. |
Binary operator |
+-*/% |
Pop $a$ and $b$, then push $b\oplus a$. |
Negation |
! |
Pop $a$. If $a=0$ then push $1$ else $0$. |
Greater than |
‘ |
Pop $a$ and $b$. If $b>a$ then push $1$ else $0$. |
Arrows |
<>^v |
Set the direction to left, right, up, down. |
Horizontal select |
_ |
Pop $a$; set the direction to right if $a=0$, else left. |
Vertical select |
| |
Pop $a$; set the direction to down if $a=0$, else up. |
String mode |
" |
Push the following characters’ ASCII value until the next " |
Duplicate |
: |
Pop $a$, push $a$ twice. |
Put |
p |
Pop $r$, $c$, and $v$. Put $v$ at row $r$, column $c$. |
Get |
g |
Pop $r$ and $c$. Push the value at row $r$, column $c$. |
Swap |
\ |
Swap two values on top of the stack. |
Discard |
$ |
Pop (and discard the result.) |
Print number |
. |
Pop $a$ and output $a$ as an integer followed by a space. |
Print character |
, |
Pop $a$ and output the $a$th ASCII character. |
Bridge |
# |
Skip next cell. |
End |
@ |
End program. |
Pass |
(Space.) Does nothing. |
Control begins at the leftmost character of the first line of code and proceeds to the right.
For $b$/$a$ and $b$%$a$ you can assume $b\geq 0$ and $a>0$. Division is integer division, rounded down. For put and get, you can assume $0\leq r\leq 24$ and $0\leq c\leq 79$. No arithmetic operation produces a number outside of the range $-2\, 147\, 483\, 648$ to $2\, 147\, 483\, 647$. Every character output by , is a printable character in the ASCII range $20$–$126$ or the newline character with ASCII code $10$. It is guaranteed that the program runs for at most $1\, 000\, 000$ steps and produces at least one non-whitespace symbol.
Input
-
One line with the number $n\in \{ 1,\ldots , 25\} $ of Befunge code lines.
-
$n$ lines of Befunge code, each containing at most $80$ characters.
Output
The output of the Befunge program.
Sample Input 1 | Sample Output 1 |
---|---|
1 67*.@ |
42 |
Sample Input 2 | Sample Output 2 |
---|---|
5 > v v ,,,,,"Hello"< >48*, v v,,,,,,"World!"< >25*,@ |
Hello World! |
Sample Input 3 | Sample Output 3 |
---|---|
3 >25*"!dlroW olleH":v v:,_@ > ^ |
Hello World! |
Sample Input 4 | Sample Output 4 |
---|---|
2 #v> # >19+"sreehC",,,,,,,@ Unreachable code is comments. Note bridge in cell (0, 80). |
Cheers |
Sample Input 5 | Sample Output 5 |
---|---|
3 v>25*"sreehC",,,,,,,@ 1>|> # >^ Lines are 80 wide |
Cheers |
Sample Input 6 | Sample Output 6 |
---|---|
1 05-. 12/. 67*. 67*, 83%. "x". ")-"87*2+,,, " ", 1\.. 1:.. 10$. 0!. @ |
-5 0 42 *2 120 :-) 0 1 1 1 1 1 |
Sample Input 7 | Sample Output 7 |
---|---|
1 "B"70p"A",25*,@ |
B |
Sample Input 8 | Sample Output 8 |
---|---|
6 ^v3:-1$$_,#! #:<\*52",Take one down, pass it around,"*520 < ^ >0"elttob erom oN">:#,_$"s"\1-#v_$>0"reeb fo ">:#,_$:2-!| >>\:!#^_:.>0"elttob" ^ >, ^ ^1:_@#:,,,".":<_v#!-3\*25$_,#! #:<" on the wall"0 < ^2:,,"," < <v1:*9+29 |
99 bottles of beer on the wall, 99 bottles of beer, Take one down, pass it around, 98 bottles of beer on the wall. 98 bottles of beer on the wall, 98 bottles of beer, Take one down, pass it around, 97 bottles of beer on the wall. 97 bottles of beer on the wall, 97 bottles of beer, Take one down, pass it around, 96 bottles of beer on the wall. 96 bottles of beer on the wall, 96 bottles of beer, Take one down, pass it around, 95 bottles of beer on the wall. 95 bottles of beer on the wall, 95 bottles of beer, Take one down, pass it around, 94 bottles of beer on the wall. 94 bottles of beer on the wall, 94 bottles of beer, Take one down, pass it around, 93 bottles of beer on the wall. 93 bottles of beer on the wall, 93 bottles of beer, Take one down, pass it around, 92 bottles of beer on the wall. 92 bottles of beer on the wall, 92 bottles of beer, Take one down, pass it around, 91 bottles of beer on the wall. 91 bottles of beer on the wall, 91 bottles of beer, Take one down, pass it around, 90 bottles of beer on the wall. 90 bottles of beer on the wall, 90 bottles of beer, Take one down, pass it around, 89 bottles of beer on the wall. 89 bottles of beer on the wall, 89 bottles of beer, Take one down, pass it around, 88 bottles of beer on the wall. 88 bottles of beer on the wall, 88 bottles of beer, Take one down, pass it around, 87 bottles of beer on the wall. 87 bottles of beer on the wall, 87 bottles of beer, Take one down, pass it around, 86 bottles of beer on the wall. 86 bottles of beer on the wall, 86 bottles of beer, Take one down, pass it around, 85 bottles of beer on the wall. 85 bottles of beer on the wall, 85 bottles of beer, Take one down, pass it around, 84 bottles of beer on the wall. 84 bottles of beer on the wall, 84 bottles of beer, Take one down, pass it around, 83 bottles of beer on the wall. 83 bottles of beer on the wall, 83 bottles of beer, Take one down, pass it around, 82 bottles of beer on the wall. 82 bottles of beer on the wall, 82 bottles of beer, Take one down, pass it around, 81 bottles of beer on the wall. 81 bottles of beer on the wall, 81 bottles of beer, Take one down, pass it around, 80 bottles of beer on the wall. 80 bottles of beer on the wall, 80 bottles of beer, Take one down, pass it around, 79 bottles of beer on the wall. 79 bottles of beer on the wall, 79 bottles of beer, Take one down, pass it around, 78 bottles of beer on the wall. 78 bottles of beer on the wall, 78 bottles of beer, Take one down, pass it around, 77 bottles of beer on the wall. 77 bottles of beer on the wall, 77 bottles of beer, Take one down, pass it around, 76 bottles of beer on the wall. 76 bottles of beer on the wall, 76 bottles of beer, Take one down, pass it around, 75 bottles of beer on the wall. 75 bottles of beer on the wall, 75 bottles of beer, Take one down, pass it around, 74 bottles of beer on the wall. 74 bottles of beer on the wall, 74 bottles of beer, Take one down, pass it around, 73 bottles of beer on the wall. 73 bottles of beer on the wall, 73 bottles of beer, Take one down, pass it around, 72 bottles of beer on the wall. 72 bottles of beer on the wall, 72 bottles of beer, Take one down, pass it around, 71 bottles of beer on the wall. 71 bottles of beer on the wall, 71 bottles of beer, Take one down, pass it around, 70 bottles of beer on the wall. 70 bottles of beer on the wall, 70 bottles of beer, Take one down, pass it around, 69 bottles of beer on the wall. 69 bottles of beer on the wall, 69 bottles of beer, Take one down, pass it around, 68 bottles of beer on the wall. 68 bottles of beer on the wall, 68 bottles of beer, Take one down, pass it around, 67 bottles of beer on the wall. 67 bottles of beer on the wall, 67 bottles of beer, Take one down, pass it around, 66 bottles of beer on the wall. 66 bottles of beer on the wall, 66 bottles of beer, Take one down, pass it around, 65 bottles of beer on the wall. 65 bottles of beer on the wall, 65 bottles of beer, Take one down, pass it around, 64 bottles of beer on the wall. 64 bottles of beer on the wall, 64 bottles of beer, Take one down, pass it around, 63 bottles of beer on the wall. 63 bottles of beer on the wall, 63 bottles of beer, Take one down, pass it around, 62 bottles of beer on the wall. 62 bottles of beer on the wall, 62 bottles of beer, Take one down, pass it around, 61 bottles of beer on the wall. 61 bottles of beer on the wall, 61 bottles of beer, Take one down, pass it around, 60 bottles of beer on the wall. 60 bottles of beer on the wall, 60 bottles of beer, Take one down, pass it around, 59 bottles of beer on the wall. 59 bottles of beer on the wall, 59 bottles of beer, Take one down, pass it around, 58 bottles of beer on the wall. 58 bottles of beer on the wall, 58 bottles of beer, Take one down, pass it around, 57 bottles of beer on the wall. 57 bottles of beer on the wall, 57 bottles of beer, Take one down, pass it around, 56 bottles of beer on the wall. 56 bottles of beer on the wall, 56 bottles of beer, Take one down, pass it around, 55 bottles of beer on the wall. 55 bottles of beer on the wall, 55 bottles of beer, Take one down, pass it around, 54 bottles of beer on the wall. 54 bottles of beer on the wall, 54 bottles of beer, Take one down, pass it around, 53 bottles of beer on the wall. 53 bottles of beer on the wall, 53 bottles of beer, Take one down, pass it around, 52 bottles of beer on the wall. 52 bottles of beer on the wall, 52 bottles of beer, Take one down, pass it around, 51 bottles of beer on the wall. 51 bottles of beer on the wall, 51 bottles of beer, Take one down, pass it around, 50 bottles of beer on the wall. 50 bottles of beer on the wall, 50 bottles of beer, Take one down, pass it around, 49 bottles of beer on the wall. 49 bottles of beer on the wall, 49 bottles of beer, Take one down, pass it around, 48 bottles of beer on the wall. 48 bottles of beer on the wall, 48 bottles of beer, Take one down, pass it around, 47 bottles of beer on the wall. 47 bottles of beer on the wall, 47 bottles of beer, Take one down, pass it around, 46 bottles of beer on the wall. 46 bottles of beer on the wall, 46 bottles of beer, Take one down, pass it around, 45 bottles of beer on the wall. 45 bottles of beer on the wall, 45 bottles of beer, Take one down, pass it around, 44 bottles of beer on the wall. 44 bottles of beer on the wall, 44 bottles of beer, Take one down, pass it around, 43 bottles of beer on the wall. 43 bottles of beer on the wall, 43 bottles of beer, Take one down, pass it around, 42 bottles of beer on the wall. 42 bottles of beer on the wall, 42 bottles of beer, Take one down, pass it around, 41 bottles of beer on the wall. 41 bottles of beer on the wall, 41 bottles of beer, Take one down, pass it around, 40 bottles of beer on the wall. 40 bottles of beer on the wall, 40 bottles of beer, Take one down, pass it around, 39 bottles of beer on the wall. 39 bottles of beer on the wall, 39 bottles of beer, Take one down, pass it around, 38 bottles of beer on the wall. 38 bottles of beer on the wall, 38 bottles of beer, Take one down, pass it around, 37 bottles of beer on the wall. 37 bottles of beer on the wall, 37 bottles of beer, Take one down, pass it around, 36 bottles of beer on the wall. 36 bottles of beer on the wall, 36 bottles of beer, Take one down, pass it around, 35 bottles of beer on the wall. 35 bottles of beer on the wall, 35 bottles of beer, Take one down, pass it around, 34 bottles of beer on the wall. 34 bottles of beer on the wall, 34 bottles of beer, Take one down, pass it around, 33 bottles of beer on the wall. 33 bottles of beer on the wall, 33 bottles of beer, Take one down, pass it around, 32 bottles of beer on the wall. 32 bottles of beer on the wall, 32 bottles of beer, Take one down, pass it around, 31 bottles of beer on the wall. 31 bottles of beer on the wall, 31 bottles of beer, Take one down, pass it around, 30 bottles of beer on the wall. 30 bottles of beer on the wall, 30 bottles of beer, Take one down, pass it around, 29 bottles of beer on the wall. 29 bottles of beer on the wall, 29 bottles of beer, Take one down, pass it around, 28 bottles of beer on the wall. 28 bottles of beer on the wall, 28 bottles of beer, Take one down, pass it around, 27 bottles of beer on the wall. 27 bottles of beer on the wall, 27 bottles of beer, Take one down, pass it around, 26 bottles of beer on the wall. 26 bottles of beer on the wall, 26 bottles of beer, Take one down, pass it around, 25 bottles of beer on the wall. 25 bottles of beer on the wall, 25 bottles of beer, Take one down, pass it around, 24 bottles of beer on the wall. 24 bottles of beer on the wall, 24 bottles of beer, Take one down, pass it around, 23 bottles of beer on the wall. 23 bottles of beer on the wall, 23 bottles of beer, Take one down, pass it around, 22 bottles of beer on the wall. 22 bottles of beer on the wall, 22 bottles of beer, Take one down, pass it around, 21 bottles of beer on the wall. 21 bottles of beer on the wall, 21 bottles of beer, Take one down, pass it around, 20 bottles of beer on the wall. 20 bottles of beer on the wall, 20 bottles of beer, Take one down, pass it around, 19 bottles of beer on the wall. 19 bottles of beer on the wall, 19 bottles of beer, Take one down, pass it around, 18 bottles of beer on the wall. 18 bottles of beer on the wall, 18 bottles of beer, Take one down, pass it around, 17 bottles of beer on the wall. 17 bottles of beer on the wall, 17 bottles of beer, Take one down, pass it around, 16 bottles of beer on the wall. 16 bottles of beer on the wall, 16 bottles of beer, Take one down, pass it around, 15 bottles of beer on the wall. 15 bottles of beer on the wall, 15 bottles of beer, Take one down, pass it around, 14 bottles of beer on the wall. 14 bottles of beer on the wall, 14 bottles of beer, Take one down, pass it around, 13 bottles of beer on the wall. 13 bottles of beer on the wall, 13 bottles of beer, Take one down, pass it around, 12 bottles of beer on the wall. 12 bottles of beer on the wall, 12 bottles of beer, Take one down, pass it around, 11 bottles of beer on the wall. 11 bottles of beer on the wall, 11 bottles of beer, Take one down, pass it around, 10 bottles of beer on the wall. 10 bottles of beer on the wall, 10 bottles of beer, Take one down, pass it around, 9 bottles of beer on the wall. 9 bottles of beer on the wall, 9 bottles of beer, Take one down, pass it around, 8 bottles of beer on the wall. 8 bottles of beer on the wall, 8 bottles of beer, Take one down, pass it around, 7 bottles of beer on the wall. 7 bottles of beer on the wall, 7 bottles of beer, Take one down, pass it around, 6 bottles of beer on the wall. 6 bottles of beer on the wall, 6 bottles of beer, Take one down, pass it around, 5 bottles of beer on the wall. 5 bottles of beer on the wall, 5 bottles of beer, Take one down, pass it around, 4 bottles of beer on the wall. 4 bottles of beer on the wall, 4 bottles of beer, Take one down, pass it around, 3 bottles of beer on the wall. 3 bottles of beer on the wall, 3 bottles of beer, Take one down, pass it around, 2 bottles of beer on the wall. 2 bottles of beer on the wall, 2 bottles of beer, Take one down, pass it around, 1 bottle of beer on the wall. 1 bottle of beer on the wall, 1 bottle of beer, Take one down, pass it around, No more bottles of beer on the wall. |