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

この課題は、BF言語に関連しています。回答が特定の言語であることが必要な課題は、一般的に推奨されないことに注意してください。

30
Brainfを解釈する***
Brainfuckプログラムを解釈するために、お気に入りの言語で最短のプログラムを作成してください。プログラムはファイルから読み取られます。入力と出力は、標準入力と標準出力です。 セルサイズ:8ビット符号なし。オーバーフローは未定義です。 配列サイズ:30000バイト(丸で囲まれていない) 悪いコマンドは入力の一部ではありません コメントは#で始まり、行末まで続きますコメントはすべてではありません+-.,[]<> EOFシンボルなし 非常に良いテストがここにあります。数値を読み取り、その数値までの素数を出力します。リンクの腐敗を防ぐために、コードのコピーを次に示します。 compute prime numbers to use type the max number then push Alt 1 0 =================================================================== ======================== OUTPUT STRING ============================ =================================================================== >++++++++[<++++++++>-]<++++++++++++++++.[-] >++++++++++[<++++++++++>-]<++++++++++++++.[-] >++++++++++[<++++++++++>-]<+++++.[-] >++++++++++[<++++++++++>-]<+++++++++.[-] >++++++++++[<++++++++++>-]<+.[-] >++++++++++[<++++++++++>-]<+++++++++++++++.[-] >+++++[<+++++>-]<+++++++.[-] >++++++++++[<++++++++++>-]<+++++++++++++++++.[-] >++++++++++[<++++++++++>-]<++++++++++++.[-] >+++++[<+++++>-]<+++++++.[-] >++++++++++[<++++++++++>-]<++++++++++++++++.[-] >++++++++++[<++++++++++>-]<+++++++++++.[-] >+++++++[<+++++++>-]<+++++++++.[-] >+++++[<+++++>-]<+++++++.[-] =================================================================== ======================== INPUT NUMBER ============================ =================================================================== + cont=1 [ …

30
BrainF *** edBotsForBattling-Brainf ***トーナメント
バトルアリーナのすべてのボットは突然頭を悩ませ、誰もその理由を説明できません。しかし、彼らがまだ戦うことができる限り誰も気にしません-Brainfuckは彼らがもう理解している唯一の言語ですが。 前回の投稿からしばらく経ちましたので、ついにBrainFuckedBotsForBattlingの勝者を発表します:NyurokiMagicalFantasyで優勝してLymiaAluysiaにおめでとうございます! スコアボード | Owner | Bot Score | |--------------------|-------------------------------| | LymiaAluysia | NyurokiMagicalFantasy - 600 | | Sylwester | LethalLokeV2.1 - 585 | | weston | MickeyV4 - 584 | | Sp3000 | YandereBot - 538 | | Comintern | CounterPunch - 512 | | Sylwester | BurlyBalderV3 - …

30
小さな「H」から「H」を作成する
チャレンジ 整数を指定するとsize、次のことを行う関数またはプログラムを作成します。 size1に等しい場合、出力 H H HHH H H 場合はsize1、出力よりも大きく、 X X XXX X X どこXのプログラム/関数の出力size - 1 (必要に応じて0、回答で指定する限り、ベースケースをに対応させることができます) 次の出力形式のいずれかが受け入れられますが、どちらがより便利です。 任意の二つの異なる文字に対応する必要な構造の文字列Hとspace 対応する任意の二つの別個の値を要求される構造を有する二次元アレイ、H及びspace 任意の二つの別個の値は、対応する各列における出力の一つの行と列/文字列のリスト、Hおよびspace 各行に一定量の先行スペースがある限り、先行スペースを使用できます。2つの異なる出力文字は、異なる限り、選択したものに依存します。 コードが返す出力形式を指定します。 テストケース 1 H H HHH H H 2 H H H H HHH HHH H H H H H HH HH H HHHHHHHHH H HH HH …
73 code-golf  ascii-art  fractal  code-golf  code-golf  string  code-golf  string  matrix  code-golf  graph-theory  maze  binary-matrix  code-golf  kolmogorov-complexity  random  code-challenge  metagolf  test-battery  brain-flak  text-processing  code-golf  matrix  code-golf  number-theory  primes  code-golf  string  matrix  code-golf  binary  bitwise  code-golf  number  factorial  floating-point  code-golf  number  sequence  code-golf  sequence  cops-and-robbers  code-golf  sequence  cops-and-robbers  code-golf  string  code-golf  math  decision-problem  number-theory  integer  code-golf  number  decision-problem  functional-programming  code-golf  array-manipulation  matrix  code-golf  string  classification  string  code-challenge  binary  compression  decode  code-golf  string  string  code-challenge  balanced-string  encode  code-golf  number-theory  integer  base-conversion  code-golf  math  number-theory  geometry  abstract-algebra  code-golf  array-manipulation  sorting  optimization  code-golf  math  geometry  image-processing  generation  code-golf  string  cops-and-robbers  repeated-transformation  grammars  cops-and-robbers  repeated-transformation  grammars  code-challenge  restricted-source  tips  source-layout  javascript  code-challenge  kolmogorov-complexity  restricted-source  code-golf  combinatorics  counting  math  fastest-code  linear-algebra  code-golf  math  permutations  matrix  linear-algebra  code-golf  string  decision-problem  restricted-source  code-golf  number  array-manipulation  subsequence  code-golf  number  array-manipulation  matrix  code-golf  brainfuck  code-golf  color  code-golf  quine  source-layout  code-golf  subsequence  code-golf  string  ascii-art  code-golf  string  ascii-art  alphabet  code-golf  decision-problem  interpreter  hexagonal-grid  halting-problem  code-golf  string  polynomials  calculus  code-golf  math  decision-problem  matrix  complex-numbers  code-golf  random  code-golf  number  arithmetic 

26
OOo CODEを翻訳
oOo CODEで記述されたプログラムの入力が与えられると、それが表すBFコードを出力します。 oOo CODEの仕組みの簡単な説明を次に示します。 最初に、アルファベット以外の文字がすべて削除されます(範囲外のすべて A-Za-z)。 たとえば、プログラムを使用しますPROgRam reVERsES giVeN iNPut sEqUENcE(esolangs wikiページに記載されている、期待どおりの動作をする例)。この最初のステップの後、次のようになりました PROgRamreVERsESgiVeNiNPutsEqUENcE。 次に、残りのすべての文字を3つのグループに分割します PRO,gRa,mre,VER,sES,giV,eNi,NPu,tsE,qUE,NcE。1文字または2文字の末尾グループがある場合、それを破棄します。 次の表に基づいて、3文字の各グループをBFコマンドに変換します。 ooo > ooO < oOo [ oOO ] Ooo - OoO + OOo . OOO , つまり、グループの最初の文字が小文字、2番目が大文字、3番目が小文字の場合、コマンドに変換され [ます。 この例では、これが最終的にBFプログラムになり、,[>,]<[.<]+実際に入力が逆になります。 これはcode-golfであるため、バイト単位の最短コードが優先されます。 テストケース: <empty string> -> <empty string> A -> <empty string> Ab -> <empty string> …

30
この数値は-2の整数乗ですか?
数値が2のべき乗かどうかを判断する賢い方法があります。これはもはや興味深い問題ではないので、与えられた整数が-2の整数のべき乗かどうかを判断しましょう。例えば: -2 => yes: (-2)¹ -1 => no 0 => no 1 => yes: (-2)⁰ 2 => no 3 => no 4 => yes: (-2)² ルール プログラムまたは関数を作成し、入力を受け取って出力を提供する標準的な方法を使用できます。 入力は単一の整数であり、整数が-2の整数乗である場合は出力が真実の値であり、それ以外の場合は偽の値である必要があります。他の出力(警告メッセージなど)は許可されません。 通常の整数オーバーフロールールが適用されます。ソリューションは、すべての整数がデフォルトで制限されていない仮想バージョン(または実際のバージョン)の任意の大きな整数で動作できる必要がありますが、実装によりプログラムが実際に失敗する場合それほど大きな整数をサポートしていなくても、ソリューションは無効になりません。 任意のプログラミング言語を使用できますが、これらの抜け穴はデフォルトでは禁止されています。 勝利条件 これは、コードとゴルフのコンテストです。(選択したエンコーディングで)バイト数が最も少ない答えが勝者です。

4
有効なBrainf ** kプログラムを列挙する
Golunar / 単項は、すべての有効なコード化するための方法ですBrainfuckのプログラムを、ほとんどの自然数は、有効なプログラムに対応していないので、それは、列挙ではありません。 この課題のために、二重の無限テープとコメントなし、つまり、Brainfuckプログラムが有効であるのは、それが文字のみで構成され<>+-.,[]、左右のすべてのブラケットが一致する場合のみです。 たとえば、空のプログラム、,[+][-].、[>+<[--].]および+[+[+][+[+]+]+]+.有効なBrainfuckプログラム、しばらくしている][、とa[]はありません。 仕事 自然数(入力として有効なBrainfuckプログラムを受け入れ、返すプログラムまたは機能書く1、2、3次の制約では、、...): 生成される出力は、すべての有効なBrainfuckプログラムで異なる必要があります。 すべての自然数nに対して、入力として提供されたときに出力nを生成する有効なBrainfuckプログラムが必要です。 追加のルール 100バイト以下のBrainfuckプログラムがある場合、プログラムまたは機能は1分以内に終了する必要があります。 つまり、入力に一致するまで、すべての有効なBrainfuckプログラムを反復処理することはできません。 標準のコードゴルフ規則が適用されます。

15
1〜255の数字のBrainfuckを生成する
1から255までの数値に対して、配列のあるバイトに指定された数値と改行を生成するBFコードを出力するプログラムを作成します。 たとえば、出力の最初の4行は次のようになります(おそらくそうなります)。 + ++ +++ ++++ 勝者は最小source code + output(バイト単位)になります。 明確化と改訂: BFプログラムはラッピングセルを使用します。 出力BFプログラムは、数値を含むセルであるゼロ以外のセルのみで終了する必要があります。 プログラムは昇順で出力する必要があります。 0のプログラムの出力はオプションです。 負のデータポインターは使用できません。<最初のポインタでは何もしません。(スローする方が適切な場合はコメントを残してください)

14
円形テープは刺激的ですか?
Brainfuck派生物 簡単なBrainfuckのようなプログラミング言語を定義しましょう。セルの双方向テープがあり、各セルは1ビットを保持します。すべてのビットは最初は0です。最初は位置0にテープの移動ヘッドがあります。プログラムは<>01!、次のセマンティクスを使用して、左から右に実行される文字上の文字列です。 < ヘッドを1ステップ左に移動します。 > 頭を1ステップ右に移動します。 0 現在のセルに0を入れます。 1 現在のセルに1を入れます。 ! 現在のセルを反転します。 ループがないため、n文字のプログラムは正確にnステップで終了します。実行の最後にすべてのセルに0が含まれる場合、プログラムは退屈です。少なくとも1 つがあれば、エキサイティングです。テープのサイズは指定されていないため、実装によっては双方向無限または円形。 サンプルプログラム プログラムを検討してください1>>>!<<<<0>!>>>!。無限テープでは、実行は次のように進行します。 v 00000000000000 Put 1 v 00000100000000 Move by >>> v 00000100000000 Flip v 00000100100000 Move by <<<< v 00000100100000 Put 0 v 00000100100000 Move by > v 00000100100000 Flip v 00000000100000 Move by >>> …

2
BrainF ***でのQuickSortの実装[終了]
スタックオーバーフローのラウンジルームで説明したように: en.wikipedia.org/wiki/Quicksortに与えられたQuicksortアルゴリズムを最小限の知識しか持たない言語で実装できない場合は、別の職業を検討することをお勧めします。@sbi しかし、SBIは、BrainF ***は例外かもしれないとも指摘しました。 そこで、ここにパズル/チャレンジがあります:QuickSortをBrainF ***に実装します。実装は これおよび/またはここでのインタプリタによって解釈されます(大きなスクリプトの場合) ウィキペディアで説明されているアルゴリズムを実装します-可能であれば、インプレースソートとして 次の整数のリストをソートします:[0,4,6,4,2,3,9,2,3,6,5,3]および結果を出力します

10
Brainf ***ゴルファー
プログラミング言語で記述された最も簡単なコードの1つは、文字のプログラム出力シーケンスです(例:「Hello、world!」)。ただし、sはoをM E E S O T E R I Cのようなプログラミング言語Brainfuckもこの最も単純なコードを書くために非常に迷惑です。 あなたの仕事はプログラムを書くことです(brainfuckで書く必要はありません)。これは与えられたテキストを印刷する(最小長の)Brainfuckプログラムを印刷します。 入力 (間の文字列1とは255)任意の形式(変数、引数、標準入力、ファイル、...)で与えられます。 出力 出力は、入力として指定された正確な文字列を出力する有効な(一致しない[andでない])Brainfuckコード(符号なしの8ビットラッピングセルと左右の無制限のセル数を想定)です。 たとえば、入力の1つの可能な出力Aは++++++++[<++++++++>-]<+.です。 プログラムの>2m実行に長い時間()はかかりません。 BFプログラムの>10s実行に長い時間()がかかることはありません。 得点 (注意:計算が容易ではないため、現在のスコアリング方法は変わる可能性があります...) プログラムの長さ(BFコードの生成)自体は関係ありません。ただし、プログラムコードにBFコードをハードコーディングすることはできません。のみ許容範囲(例:単一の文字を印刷BFコード。0x01:+.)BFコードは、ハードコードされたかもしれません。 スコアは、これらの文字列を印刷するBFコードの長さの合計です。 Hello, world!単一の0x0A(\n)が追加された文字列(つまり、「Hello、world!」プログラム) 0x01〜からの単一文字0xFF これらの255個のBFコードの長さの合計にを乗算し1/16、丸め、スコアに追加します。 分割により生成された最初の16個の文字列のリスト、11-11-11に発生バイトのランダムシーケンスによって0x00全長さゼロの文字列を削除し、。 Lenna.png、すべて0x00のsを削除します。 歌の歌詞99本のビール、で始まる99 bottles~、改行は0x0A、段落は2で区切られ0x0A、最後に改行文字はありません。 あなたが提供する他の文字列。 プログラムには、それ自体のスコアの計算が含まれる場合があります。 もちろん、最低スコアのコードが勝者になります。

3
虹の終わりのセル
最も有名で影響力のある難解な言語の1つであるbrainfuckを知っているか、少なくとも聞いたことはあります。最近ではほとんどの実装で無限テープが使用されていますが、UrbanMüllerの元のコンパイラには30000セルのテープがありました。少し知られている事実*は、テープの最後に実際に特別な値があるということです。これは、典型的なブレインファックプログラムではほとんど対話されません。 この値を29999 >sとa .で印刷できますが、brainfuckは短く簡潔な解決策で知られているため、目的はこの値を最小文字数で印刷することです。 *フィクション ルール: Brainfuck命令の復習: +/ -:現在のセルをインクリメント/デクリメントし、255がインクリメントされると255から0に折り返し、その逆も同様 </ >:テープ上でポインターを左右に移動します .:現在のセルの値を出力します。 [:]セルの値が0の場合、対応するものにジャンプします ]:[セルの値が0でない場合、対応するものにジャンプします この場合,(元のコンパイラーはEOFでセルを変更せずに残すため)(入力の取得)は何も行いません。このプログラムは入力を受け取りません。 テープは最初はすべて0で満たされていますが、セル30000には不明な値が含まれています。 ポインターはセル1から始まり、セル30000で終了し、印刷されます。 1の左側と30000の右側のセルには未定義の動作があるため、ソリューションはこれらのセルにアクセスしないでください。 30000の値はあなたがゼロ以外のセルは動作しませんヒットするまで、そう単純にループし、0かもしれません。 セル30000の値のみを印刷する必要があります 最短のソリューションが勝ちです! タイブレーカーは、より効率的なプログラム(最小ステップで実行)であり、その後に最短の送信時間が続きます。 ヒント: Esolanging Fruitでは、https : //copy.sh/brainfuckを使用してコードをテストすることをお勧めします。仕様はこの課題で説明されているabortとおりであり、範囲外になった場合にプログラムが停止するようにオプションを選択できます。

2
Brainf ***の任意の大きなセルをゼロにします***
あなたの仕事は、各セルが通常の0から255の代わりに任意の大きさの符号付き整数を含むことができるBrainfuckバリアントの現在のセルをゼロにするコードを書くことです。 現在のセルの左側にl個、右側にr個のセルがあり、それらは最初はゼロであると想定できます。プログラムは、これらのl + r +1セルにのみアクセスできます。コードが終了すると、l + r個の余分なセルはゼロのままになり、現在のセルへのポインタは元の位置に残ります。 入出力を使用することはできません。 最小のl + rを持つコードが優先されます。同点の場合、最短のコードが優先されます。参照用にプログラムの時間の複雑さも記載することをお勧めします。nは、現在のセルの元の整数の絶対値です。 便利なツール mbomb007によるTIOでこのインタープリターを使用して、このバリエーションのBrainfuckプログラムをテストできます。 boothbyによるこの回答でインタープリターを使用することもできます(他のPythonの回答もおそらく機能しますが、テストしませんでした)。

2
BrainfuckをMarioLANGに変換する
MarioLANGは、ソースコードがスーパーマリオブラザーズレベルに似ている2次元プログラミング言語です。さらに、その命令セットはBrainfuckのものと非常に似ています。つまり、MarioLANGは本質的に、命令ポインターがマリオのように移動する2次元のBrainfuckです。だから、私は私のMarioLANGの提出を書いたとき、プログラミング言語クイズのために、私はBrainfuck変換することによって始めに「Hello、World!」という MarioLANGへのプログラム。これは非常に体系的なプロセスで可能であることに気づいたので、Brainfuck-to-MarioLANGコンパイラを作成しましょう。 注: MarioLANGの仕様は完全に明確ではないため、Ruby実装の解釈を想定しています。 以下のBrainfuckプログラムでプロセスを説明します。 ++[>+++++[>+++++++>++++++++++>+++>+<<<<-]<-]>>++.>+.+++++++..+++.>+++.>. 印刷Hello!し、末尾に改行を付けます。 変換<および>to (および)、それぞれ: ++[)+++++[)+++++++)++++++++++)+++)+((((-](-]))++.)+.+++++++..+++.)+++.). マリオが歩く床を追加します。 ++[)+++++[)+++++++)++++++++++)+++)+((((-](-]))++.)+.+++++++..+++.)+++.). ======================================================================== 問題は、MarioLANGに[andのようなループがないこと]です。代わりに、エレベーターと方向指示を使用して、マリオを実際にループで歩く必要があります。まず、我々は交換する[と>とに、床を変更します"。また、フロアを次のように置き換え]て[!変更し=#ます。 ++>)+++++>)+++++++)++++++++++)+++)+((((-[!(-[!))++.)+.+++++++..+++.)+++.). =="======"===============================#===#============================ エレベーター(から始まる形成することができるで終わるが、今すべての私たちに必要なのは、)マリオに戻って歩くための補助床です。で始まり、で終わる:"##"!< ++>)+++++>)+++++++)++++++++++)+++)+((((-[!(-[!))++.)+.+++++++..+++.)+++.). =="======"===============================#===#============================ ! < #===============================" ! < #==========================================" インタプリタはエレベータの端を短い行に接続できないため、すべての行は少なくとも最大のループを囲む必要があります。したがって、中央の行にスペースを埋め込みます。 以上です。完全に機能する、同等のMarioLANGプログラムがあります。 チャレンジ 有効なBrainfuckプログラムが与えられたら、上記の手順を実装してMarioLANGプログラムにコンパイルします。 入力にはコマンド文字のみ、つまり以外の文字はないと想定でき,.+-<>[]ます。 すべての補助フロアは、メインプログラムフロアのできるだけ近くに配置する必要があります。中間フロアのラインをできる限り小さくする(最大の囲みループの幅まで)か、メインプログラムの最後までパディングするかを選択できます。 プログラムまたは関数を作成し、STDIN(または最も近い代替)、コマンドライン引数または関数引数を介して入力を取得し、STDOUT(または最も近い代替)、関数の戻り値または関数(out)パラメーターを介して結果を出力できます。結果をSTDOUTに出力しない場合でも、改行で区切られた単一の文字列である必要があります。 これはコードゴルフなので、最短の回答(バイト単位)が勝ちです。 テストケース テストケースの形式は次のとおりです。最初の行はBrainfuckプログラム(入力)で、空の行があり、次の空の行までがMarioLANGの期待される出力です。これらの例では、最小限の埋め込みスペースを使用しています。あるいは、出力の最初の行の幅まで各行にスペースを埋め込むこともできます。 >,++-.< ),++-.( ======= ,[.,] ,>.,[! ="===# ! < #===" >>[-]<<[->>+<<] ))>-[!((>-))+(([! =="==#=="=======# ! < ! …

7
Brainf *** NOPの生成
Brainfuckコードを書くとき、デバッグを促進するために必要以上に長くする必要があると感じることがあります。><そこにa を入れるだけでそれを行うことができますが、それは何が楽しいですか?コードを読んでいる人を混乱させるために、NOPeyをもっと長くする必要があります。 Brainfuckの簡単な紹介 Brainfuckは、1993年にUrbanMüllerによって作成された難解なプログラミング言語であり、極端なミニマリズムが特徴です。(ウィキペディア) Brainfuckは、8つのコマンドに基づく言語です+-><,.[]。コードはチューリングマシンのようなもので実行されます。値を変更できる無限のテープです。この課題では、最初の4つに焦点を当てます。 + increment the value at the pointer - decrement the value at the pointer > move the pointer right < move the pointer left Brainfuck NOP Brainfuck NOPは、任意の状態から実行されたときに状態に変化をもたらさない一連のBrainfuckキャラクターです。これらは上記の4文字で構成されています。 チャレンジ 課題は、実行されたときに、指定された長さのランダムなBrainfuck NOPを生成するプログラムまたは関数を作成することです。 入力 入力として非負の偶数整数を受け取りますn。(NOPは奇数には不可能ですn。) 出力 あなたは長さのランダムなBrainfuck NOPを出力しますn。 ルール NOPの定義:プログラムの出力がBrainfuckプログラムの任意のポイントに挿入された場合、そのプログラムの動作は決して変化してはなりません。つまり、インタープリターの状態を変更してはなりません。 たとえば+>-<、2つのセルの値を元に戻すことなく変更するため、これは正しくないことに注意してください。投稿する前にこれらのソリューションをテストしてください。 また、これ+>-<->+<はNOPであり、を削除するだけでは何にも削減できないことに注意してください>< <> +- -+。したがって、これらを相互に挿入するだけのアルゴリズムは使用できません。 長さのすべての有効なNOPにはn、出力に表示されるゼロ以外のチャンスが必要です。ただし、分布は均一である必要はありません。 問題のブレインファックインタープリターには、任意精度セルの二重無限テープがあります。つまり、両方向に無限に移動し、各セルを無制限にインクリメント/デクリメントできます。 …

5
Brainfuckでのゴルフのヒント
ブレインファックでゴルフをするための一般的なヒントは何ですか?私は、少なくとも一般的にゴルフの問題をコーディングするのに適用できるアイデアを探しています。これは、少なくともある程度、brainfuckに固有のものです(たとえば、「コメントを削除する」は答えではありません)。回答ごとに1つのヒントを投稿してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.