Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
0
Help us understand the problem. What is going on with this article?

More than 1 year has passed since last update.

@NanimonoDaemon

超次元プログラミング言語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の実行や、ステップバイステップの実行ができる。

スクリーンショット 2019-07-12 13.56.39.png

ここのインタープリターは、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」と表している。

captured-2.gif

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

47文字でズンドコ!

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

captured (1)-2.gif

まとめ

  • Befungeは上位者の言語
0
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
0
Help us understand the problem. What is going on with this article?