Problem B
Befunge
Languages
da
en
is
Befunge er tvívítt, hlaðabundið, sjálfbreytandi forritunarmál, lýst sem blöndu milli Forth og Lemmings. Chris Pressey bjó það til árið 1993. Befunge forrit er skrifað á $25 \times 80$ hjólflötung af bókstöfum, flæðisstjórn forritsins er ákvörðuð útfrá því að fylgja örvatáknum. Það er einn hlaði heiltalna, afhlöðun af tómum stafla skilar heiltölunni $0$.
Skipanirnar eru:
Tölustafur |
0–9 |
Hlaðið þessarri (eins stafa) tölu ofan á hlaðann. |
Tvístæð aðgerð |
+-*/% |
Afhlaðið $a$ og $b$, hlaðið síðan $b\oplus a$. |
Neitun |
! |
Afhlaðið $a$. Ef $a=0$ hlaðið $1$ annars $0$. |
Meira en |
‘ |
Afhlaðið $a$ og $b$. Ef $b>a$ hlaðið $1$ annars $0$. |
Örvar |
<>^v |
Breytið stefnu í vinstri, hægri, upp, niður. |
Lárétt val |
_ |
Afhlaðið $a$; setjið stefnu til hægri ef $a=0$, annars vinstri. |
Lóðrett val |
| |
Afhlaðið $a$; setjið stefnu niður á við ef $a=0$, annars upp á við. |
Strengjastilling |
" |
Hlaðið ASCII gildum eftirfarandi stafa á hlaðann þar til rekist er á " |
Afritun |
: |
Afhlaðið $a$, hlaðið $a$ tvisvar. |
Skrá |
p |
Afhlaðið $r$, $c$, og $v$. Setjið $v$ í röð $r$, dálk $c$. |
Sækja |
g |
Afhlaðið $r$ og $c$. Hlaðið gildinu í röð $r$, dálk $c$. |
Víxlun |
\ |
Víxlið efstu tveimur gildum hlaðans. |
Henda |
$ |
Afhlaðið (og hendið gildinu.) |
Prenta tölu |
. |
Afhlaðið $a$ og prentið $a$ sem heiltölu með bili á eftir. |
Prenta staf |
, |
Afhlaðið $a$ og prentið $a$-ta ASCII stafinn. |
Brú |
# |
Hunsið næsta reit. |
Hætta |
@ |
Ljúkið keyrslu. |
Ekkert |
(Bil.) Gerir ekkert. |
Forritið byrjar á vinstrasta staf fyrstu línu og stefnir til hægri.
Fyrir $b$/$a$ og $b$%$a$ má gera ráð fyrir að $b\geq 0$ og $a>0$. Deiling er heiltöludeiling, rúnnuð niður á við. Fyrir aðgerðirnar skrá og sækja má gera ráð fyrir að $0\leq r\leq 24$ og $0\leq c\leq 79$. Engin reikniaðgerð skilar tölu utan bilsins $-2\, 147\, 483\, 648$ til $2\, 147\, 483\, 647$. Sérhver stafur sem , skilar er prentanlegur ASCII stafur á bilinu $20$–$126$ eða nýlínustafur með ASCII gildi $10$. Gefið er að forritið muni keyra mest $1\, 000\, 000$ skref og prentar að minnsta kosti einn staf sem er ekki bilstafur.
Input
-
Ein lína með tölunni $n\in \{ 1,\ldots , 25\} $, fjöldi Befunge kóðalína.
-
$n$ línur Befunge kóða, hver samanstandandi af $80$ stöfum.
Output
Úttak Befunge-forritsins.
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. |