タグ付けされた質問 「befunge」

1
PreludeをBefungeに翻訳
これがウィークリーチャレンジ#2です。テーマ:翻訳 Preludeでプログラムのソースコードを取り込み、Befunge-93で同等のプログラムのコードを出力するプログラムまたは関数を記述します。プログラムを同等にするには、所定の入力に対してPreludeプログラムと同じ出力を生成し、Preludeプログラムが停止する場合にのみ停止する必要があります。 入力言語:プレリュード Pythonインタープリター: コードスニペットを表示 #!/usr/bin/python import sys NUMERIC_OUTPUT = True NUMERIC_INPUT = True try: filename = sys.argv[1] except: print "Usage:", sys.argv[0], "<filename>" raise SystemExit try: inFile = file(filename) except: print "Error when opening", filename raise SystemExit # code is kept as a list of voices, each voice a string …

2
Befungeプログラムを圧縮する
Befungeは2次元の難解なプログラミング言語です。基本的な考え方は、(1文字の)コマンドが2次元グリッドに配置されるということです。制御フローはグリッド上を移動し、通過するコマンドを実行し、矢印にヒットすると方向を変更します(>^<v)。コマンドはスタックベースです。このリストを参照してください。http://esolangs.org/wiki/Befungeも参照してください。 Befunge-98の仕様が利用可能です。 問題 Befungeプログラムをよりコンパクトな表現に変換するプログラムを作成します。たとえば、次のプログラムは印刷します0: > 0 v > @ . ^ < この場合、スペースの行を削除することにより、プログラムの動作を変更せずに圧縮できます。 >0v >@. ^ < より洗練された変換は、コマンドのシーケンスを回転またはミラー化し、プログラムを圧縮するために不要な制御フローコマンドを排除できます。たとえば、このプログラムでは: >12345v 6 v....7< . . . @ プログラムの終わりを穴に押し込むかもしれません。 >12345v >...@ 6 ^....7< 最初の例では、可能な限り最もコンパクトなプログラムは >0.@ 出力プログラムで同じ結果が得られる限り、任意の変換を使用できます。 入力プログラム 入力プログラムは有効なBefunge-98プログラムです。 入力プログラムが決定論的であると仮定することができます。つまり、外部状態を読み取るコマンドは使用しません。ユーザー入力コマンド&と~、ランダマイザー?、および自己修正コードコマンドpとgです。 入力プログラムが終了することを想定できます。 得点 これはコードゴルフではありませんが、コードゴルフを実行するプログラムを作成する問題です。 入力はテストケースのセットです(上記の入力制限を満たすBefungeプログラム)。合計スコアは、テストケースのスコアの合計です。 各テストケースのスコア スコアは、出力プログラムの空でないセルの凸包の面積です。各セルは、4つの角がデカルト平面の格子点である正方形として扱われます。たとえば、 > v @ < 9.5のスコアを取得します。 プログラムが特定の入力で妥当な時間とメモリで終了しない場合、スコアは入力プログラムのスコアです。(これは、プログラムが時間内に終了しない場合、入力プログラムを変更せずに出力する時間制限ラッパーを簡単に追加できるためです。) プログラムで処理した後、テストケースプログラムの結果が異なる(または終了しない)場合、スコアは入力プログラムのスコアに100ポイントのペナルティを加えたものです。

2
Befunge Brain Teasers
前書き Befungeとは一体何なのか疑問に思う人にとっては、1993年にChris Pressyによって作成された2次元スタックベースの言語です。Befunge-93で解決する必要がある7つの頭の体操を作りました。これは非常に実験的な挑戦ですが、一見の価値があると思いました:)。Befunge-93で使用されるすべてのコマンドの完全なリストは、ここにあります。 遊び方? タスクは、警官のいない警官と強盗のようなものです。基本的にポイントを獲得するために提出物をクラックしているだけです。すべてのパズルには疑問符が含まれています。これら32 - 127は、空白を含む範囲内の印刷可能なASCII文字に置き換える必要があります。次の例を参照してください。 ??????@ 出力はでなければならないということhiです。いくつかの不可解な後、解決策があったことがわかります。 "ih",,@ だが!あなたは解決策を与えません。それは不正行為の防止のためです。ソリューションを投稿するのではなく、ハッシュを投稿します。ハッシュは次のスニペットで生成されます: String.prototype.hashCode = function() { var namevalue = document.getElementById("inputname").value; var namenumber = 123;for (var character = 0; character < namevalue.length; character++) {namenumber += namevalue.substring(0, 1).charCodeAt(0);}var hash = 123 + namenumber, i, chr, len;if (this.length === 0) {return 0;}for (i = …

13
Befungeでのゴルフのヒント
Befungeでゴルフをするための一般的なヒントは何ですか?私は、少なくともBefungeに特有のゴルフ問題全般のコーディングに適用できるアイデアを探しています(たとえば、「コメントの削除」は答えではありません)。回答ごとに1つのヒントを投稿してください。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.