DOGOを解釈する
DOGOはあまり知られていないプログラミング言語です。オリジナルのDOGO(Usenetの投稿からのジョーク言語)は実装されていませんが、それに似た言語が作成されています。言語のコマンドは次のとおりです。
+===========+================================================================+
| Command | Description |
+===========+================================================================+
| SIT | If the value of the current memory cell is 0, jump to STAY. |
+-----------+----------------------------------------------------------------+
| STAY | If the value of the current memory cell is not 0, jump to SIT. |
+-----------+----------------------------------------------------------------+
| ROLL-OVER | Select the next operation from the operation list. |
+-----------+----------------------------------------------------------------+
| HEEL | Execute the currently selected operation. |
+-----------+----------------------------------------------------------------+
操作は次のとおりです。
+========+=======================================================+====+
| Number | Description | BF |
+========+=======================================================+====+
| 0 | Increment current memory cell. | + |
+--------+-------------------------------------------------------+----+
| 1 | Decrement current memory cell. | - |
+--------+-------------------------------------------------------+----+
| 2 | Move to next memory cell. | > |
+--------+-------------------------------------------------------+----+
| 3 | Move to previous memory cell. | < |
+--------+-------------------------------------------------------+----+
| 4 | Input a byte and store it in the current memory cell. | , |
+--------+-------------------------------------------------------+----+
| 5 | Output the current memory cell as ASCII. | . |
+--------+-------------------------------------------------------+----+
例
こんにちは世界:
roll-over roll-over heel roll-over roll-over roll-over roll-over heel heel heel
heel heel heel heel heel heel sit roll-over roll-over roll-over heel roll-over
roll-over roll-over heel heel heel heel heel heel heel heel roll-over roll-over
heel roll-over roll-over roll-over roll-over roll-over heel roll-over roll-over
roll-over roll-over roll-over stay roll-over roll-over roll-over heel roll-over
roll-over heel roll-over roll-over roll-over heel roll-over roll-over roll-over
roll-over heel heel heel heel heel heel heel sit roll-over roll-over roll-over
heel roll-over roll-over roll-over heel heel heel heel roll-over roll-over heel
roll-over roll-over roll-over roll-over roll-over heel roll-over roll-over
roll-over roll-over roll-over stay roll-over roll-over roll-over heel roll-over
roll-over roll-over heel roll-over roll-over roll-over roll-over roll-over heel
roll-over heel heel heel heel heel heel heel roll-over roll-over roll-over
roll-over roll-over heel heel roll-over heel heel heel roll-over roll-over
roll-over roll-over roll-over heel roll-over roll-over roll-over heel heel heel
roll-over roll-over roll-over roll-over heel heel heel heel heel heel heel heel
sit roll-over roll-over roll-over heel roll-over roll-over roll-over heel heel
heel heel roll-over roll-over heel roll-over roll-over roll-over roll-over
roll-over heel roll-over roll-over roll-over roll-over roll-over stay roll-over
roll-over roll-over heel roll-over roll-over heel roll-over roll-over roll-over
heel heel heel roll-over roll-over roll-over roll-over heel heel heel heel heel
heel heel heel heel heel sit roll-over roll-over roll-over heel roll-over
roll-over roll-over heel heel heel heel heel heel heel heel heel roll-over
roll-over heel roll-over roll-over roll-over roll-over roll-over heel roll-over
roll-over roll-over roll-over roll-over stay roll-over roll-over roll-over heel
roll-over roll-over roll-over roll-over heel heel heel roll-over roll-over
roll-over roll-over heel roll-over roll-over roll-over roll-over heel heel heel
heel roll-over roll-over heel roll-over heel heel heel roll-over roll-over
roll-over roll-over roll-over heel roll-over roll-over heel heel heel heel heel
heel roll-over roll-over roll-over roll-over heel roll-over roll-over heel heel
heel heel heel heel heel heel roll-over roll-over roll-over roll-over heel
roll-over roll-over roll-over heel heel roll-over roll-over roll-over roll-over
heel roll-over roll-over roll-over roll-over roll-over heel
ルール
- 各提出物は完全なプログラムまたは機能のいずれかである必要があります。関数の場合は、プログラムの最後に関数呼び出しを追加するだけで実行できる必要があります。それ以外のもの(Cのヘッダーなど)を含める必要があります。
- 可能であれば、コードをテストできるオンラインサイトへのリンクを提供してください。
- プログラムは何も
STDERR
(または同様のものに)書き込むことができません。 - あなたは
STDIN
(またはあなたの言語で最も近い選択肢)から、または引数として入力を受け取ることができます。 - 標準の抜け穴は禁止されています。
得点
プログラムはバイトに従ってスコアリングされます。デフォルトの文字セットはUTF-8です。別の文字セットを使用している場合は、指定してください。
それはさておき、これはcode-golfであり、最小のバイト数が勝者と見なされます!
提出物
回答が確実に表示されるようにするには、次のMarkdownテンプレートを使用して、見出しから回答を始めてください。
# Language Name, N bytes
N
提出物のサイズはどこですか。スコアを向上させる場合は、古いスコアを打ち消すことで見出しに残すことができます。例えば:
# Ruby, <s>104</s> <s>101</s> 96 bytes
ヘッダーに複数の数値を含めたい場合(たとえば、スコアが2つのファイルの合計である場合、またはインタープリターフラグのペナルティを個別にリストしたい場合)、実際のスコアがヘッダーの最後の数値であることを確認してください。
# Perl, 43 + 2 (-p flag) = 45 bytes
言語名をリンクにして、リーダーボードスニペットに表示することもできます。
# [><>](http://esolangs.org/wiki/Fish), 121 bytes
リーダーボード
これは、通常のリーダーボードと言語ごとの勝者の概要の両方を生成するスタックスニペットです。
更新:
sit
とstay
コマンドがよくわかりません。@ user6245072が言ったように、それらはBF [
と同様]
です。
アップデート2:
@KennyLauの質問を明確にするには:
- デフォルトの操作は
0
です。 - メモリは8ビットのセルで構成されます。
- セルはオーバーフロー/アンダーフローで折り返されます。
- 操作には入力が必要です4。
1
は「次のセルをインクリメント」と表示されていますが、対応するBFコードは「現在のセルをデクリメント」です。どちらが正しい動作ですか?
sit lie-down roll-over play-dead heel