超次元プログラミング言語Befungeで縦横無尽にズンドコキヨシを書いた


概要

Befungeのご機嫌なオンラインプレイグラウンドを見つけたので、ズンドコキヨシを書いた。(3年前)

参考: ズンドコキヨシまとめ

ズンドコキヨシとは


Befunge

Befungeは1993年登場の難解言語の一種であり、プログラムのコードの読み取り方向を前後左右に自由に切り替えられる。Befunge 93の仕様では、 コードサイズに80桁25行という制限がある。あとあと、その制限が取っ払われた仕様が出て、あれよあれよと現在の最新仕様はBefunge 98らしい。二次元よりも高次元なプログラムがしたければ、Befunge 98のインタープリターを作るとよかろう。

ただし、私は思考の次元が低すぎてそんな3次元や4次元プログラム書けません。超次元の思索のためにもっと瞳が必要な。今回の例ではBefunge 93からBefunge 97の間の仕様で、ズンドコキヨシを書く。

Grant us eyes,grant us eyes.

Befungeってどんな言語?と知りたければ、以下の2ページが参考になる。

あるいは、aminylarginyl氏によるこちらの動画大変参考になる。

Qiitaは直にYouTube埋め込めんの?

どうやって実行すればいいの?

大変よくできたオンラインプレイグラウンドがあり、Befungeの実行や、ステップバイステップの実行ができる。

ここのインタープリターは、Befunge 93からBefunge 97の間の仕様であり、以下の機能と制限がある。

  • The program space is the Befunge 93 80×25 torus. There's no Lahey space at the moment.
  • Only a single PC (thread) is supported.
  • Befunge 97 literals are supported: 0–9 and a–f.
  • Character quoting (').
  • No flying PCs.
  • No handprints or fingerprints.
  • Just a single stack.

ズンドコキヨシ

1つめ:すごく単純なズンドコキヨシ

「ズン→ズン→ズン→ズン→ドコ」と出力してから「キヨシ」を出力すれば良い。つまり、道を違えれば、1からやり直しにすれば良い。

Befungeではループをしたければ、閉路のコードを書けばいいのだ。

>|<<<<<<<<<<<<
>?>"こど",,52*,^
>v^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
>>>"んず",,52*,_?>"んず",,52*,_?"んず",,52*,_?>"んず",,52*,_?>"こど",,52*,"!シ・ヨ・キ">:#,_@
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

52*,は、5かける210を得て、10を文字として出力する。つまり改行を出すためのコード。

実行結果

日本語は等幅ではなく、そのまま実行した場合矢印の向きが変に見えるので、例の中では「ズンドコ」を「zndk」と表している。

2つめ:頑張ったズンドコキヨシ

47文字でズンドコ!

0v#"キ・ヨ・シ!"<@,,,,,,$
>?>"んず",,1+
^>"こど",,3`#^_0

まとめ

  • Befungeは上位者の言語