タグ付けされた質問 「ascii-art」

この課題には、テキスト文字をペイントとして使用して画像を作成または解析することが含まれます。通常、これは1963年からのASCII標準で定義された(合計128から)95の印刷可能な文字のみを使用します。

2
2次元光線追跡
課題は、テキストベースの2次元レイトレーシングプログラムを実装することです。 白色光源は@シンボルです。R、GおよびB光フィルターです。/そして\80%の反射率のミラーです。?光センサーです。>、<、^およびV適切な方向に光結合する(例えば、1つは赤と一つの緑が入ってきた場合に>右に向けて出射される光と、それは黄色であろう)。その他の非空白文字はすべての光を吸収します。@シンボルから4方向に光が放射されます。 プログラムを実行すると、入力と同じ出力が生成されますが、光線はトレースされます。これは2次元であり、入力では光線が交差しないことを保証しているため、問題はありません。各光線は文字で表す必要があります。r =赤、g =緑、b =青、c =シアン、m =マゼンタ、y =黄色、w =白。三元色はありません。ケーシングは、入力と区別するために重要です。その出力後、疑問符でキャプチャされた光の値(出現順に左から右、上から下へ)がパーセンテージと色として出力されます。たとえば、次の入力: / @ - \R> ? @B/ 出力を与える必要があります: /wwwwwwwwwwwwwwwwww@w w - w\R>mmmmmmmmmmmmmmmmm? w b @B/ #1: 72% Magenta 注意すべきもう1つの重要な点-「プリズム」(矢印)を使用して2つの色を組み合わせると、組み合わされた光の強度が2つの色の平均強度になります。出力は指定されたとおりでなければなりません(例:#x:[x] [x] x%Color)。 言語がSTDINから読み取ってSTDOUTに書き込めない場合は、入力を引数として受け入れ、結果を返す関数(使用可能な場合は匿名またはラムダ)を作成します。 コンパイラへのディレクティブ、言語で作成されたすべてまたはほとんどのプログラムに必要または推奨される構造などは省略できます。例えば、#include及びusing(ただしディレクティブ#define)は、Cスタイルの言語で除去することができる#/usr/bin/perl -optionsPerlで、かつ Module Module1 Sub Main() End Sub End Module たとえば、VB.NETで。名前空間をインポートするか、includeディレクティブを追加する場合は、回答にそれらを記録してください。 これで十分ですか?:)

1
HappyCubeパズルソルバー
このチャレンジは、私がプレイしたパズルに触発されました。 これらは、次のように3Dキューブに組み立てる必要があります。 パズルのピースは5 * 5の正方形のグリッドとして見ることができ、その中央の3 * 3の正方形は常に塗りつぶされていますが、端にある16の正方形は塗りつぶされていても空でもかまいません。 ピースは、左端から時計回りにエッジの構成(=空、=ソリッド)を表す16文字(0sおよび1s)の文字列を使用して説明されます。01 たとえば、次の文字列: 0101001000101101 この作品を表します: # # #### #### #### # # ピースを合わせてキューブを形成するために、すべてのピースを任意の方向に回転させることができます。たとえば、これらは上記のピースの有効な回転です。 # # # # # ## # #### #### #### #### #### #### #### #### #### #### #### #### # # # # ## # # # # # # # …

5
木の生と死
チャレンジ 整数Nを入力として受け取り、ツリーが現在存在する生死の段階を出力するプログラムを作成します。Nは常に0から10の間です。 生と死の段階 人生:人生のステージを描くには、単純に文字で構成されるサイズNのベースを描き、結果が0より大きい場合は上に^移動してNから2 を引き^、もう一度サイズを変えて文字の線を描きます。新しいのN。Nが0より大きい間繰り返します。終了するには|、Nの開始値が奇数の場合は1 文字、偶数の||場合は2 文字を配置します。 例:N = 5 ^ ^^^ ^^^^^ | N = 0の場合、葉(^)なしで茎のみが描画されることに注意してください。 死:これは大体同じである生活基盤であることを除いて、- N 10、あなたが使用Mするのではなく^、あなたがに2を追加Nと、上記と同じ手順で行を再描画が、今回は、あなたがに2を追加Nことながら、は10以下です。 例:N = 3 M MMM MMMMM MMMMMMM | 目標 プログラムは2つの異なる言語で実行する必要があり、どちらも入力Nを受け取る必要があります。最初の言語はNに従って木のライフステージを出力する必要があり、2番目の言語は死のステージを出力する必要があります。 ルール これはcode-golfであり、すべての要件を満たすバイト単位の最短のコードです。 コードは2つの異なる言語で実行する必要があります。はい、Python 2とPython 3 は異なる言語です。 標準の抜け穴は禁止されています。 末尾の改行またはスペースは許可されます。 テストケース 入力: N = 1 第一言語(生活): ^ | 第二言語(死): M MMM MMMMM …

11
逆ASCII文字マップ
[ 入力されたASCII文字をマップする]で、..入力されたASCII文字をマップするように求めました。今回は、すべてのASCII文字をすぐにマッピングしてから、その上にスペースをマッピングすることで、反対のことを行います。 このプログラムには、制限付きソースのチャレンジ送信で残したキャラクターを確認するなど、実用的な用途があります。 チャレンジ あなたの仕事は、入力されたASCII文字をアンマップするプログラムを書くことです。プログラムが実行されるとすぐに、正確なマップ(色、フォント、サイズなどを除く)が表示されます。 ユーザーが印刷可能なASCII文字を入力するたびに、その上にスペースを印刷します。 ルール 最初の出力は、上記の最初の画像に示すとおりである必要があります。それぞれの位置にASCII文字があり、スペース(32)が左上にあり、チルダ(126)が右下から1文字左にある6x16グリッドです。 あなたのプログラムは、印刷可能なASCII文字を表示する必要がある0x20に0x7E。 プログラムは終了し、すべての印刷可能なASCII文字が上書きされるまで、文字の上にスペースを印刷し続けてはなりません。ここから、プログラムは終了するか、Neverlandに実行されます。 リバースマップはリアルタイムで更新する必要があります(ユーザー入力を受け取ったらすぐに)。 プログラムが入力をサイレントで読み取らない場合は、カーソルを邪魔にならないように配置する必要があるため、テキストがマップの邪魔になりません。 参考のために役立つASCIIテーブルを以下に示します。 得点 各言語でバイト数が最も少ない答えが優先されます。楽しんで!

3
カードの家(バージョン2)
この2番目のバージョンのアイデアを提供してくれたFryAmTheEggmanに感謝します。 バージョン1はこちら。 それほど単純ではない課題:次の構築順序に従って、いくつかのカードが与えられた場合、その数のカードで可能な最大のカードの家を構築します。 /\ /\ /\ /\/\ -- -- -- ---- ---- /\ → /\/\ → /\/\ → /\/\ → /\/\/\ → /\/\/\ → /\/\/\ → /\ /\ -- -- -- /\/\ /\/\ /\/\ ---- ---- ---- → /\/\/\ → /\/\/\ → /\/\/\/\ → ... したがって、1階建ての家から始めて、隣接するグループを構築し、次にブリッジカードを配置し、2階にグループを構築し、1階から3階に到達するように1階からグループと橋を構築します。オン。 シングルカードはで表現される/、\または--。できるだけ多くのカードを使用した後、1枚のカードが残っている場合は、これまでに達成したことを出力します(3枚のカードの例を参照してください。結果は2枚のカードと同じです)。唯一の例外は1枚のカードの場合で、フラットカードを出力する必要があります。 例: Input: 1 …

3
ボックス内のASCII反射
ボックス内のASCII反射 おそらく皆さんは反射の法則をご存知でしょう。この課題では、ボックス内のボールの軌道を視覚化します。 関連:ボックス内のASCIIボールアニメーションとASCII Doodling:ボックス内のレーザー 仕事 次の3つの整数の組を与えているW,H、x,yそしてdx,dy-第一ボール開始する移動方向であるボックス、第二の開始位置及び第3の対のサイズを表します。 タスクは、ボールが転がるのを止めるまでボールの動きを視覚化することです。これは、ボールが以前の位置にあるか、またはコーナーに当たるとすぐに発生します。 キャラクター*はボールの軌道を視覚化し、+その最終位置をマークします。ボックスの残りの部分は(空白)で構成されている必要があります。 例 少し明確にするために、これらの例で_は空白を表します。また、中間ステージは明確化のためにここにのみあります。最後のステージを出力する必要があるだけです1。これらの例には、インデックスが付けられています。 与えられW = 3, H = 5、x = 3, y = 2そしてdx = -1, dy = 1: ___ ___ ___ ___ __* __* __* __* ___ -> _*_ -> _*_ -> _+_ ___ *__ *__ *_* ___ ___ _*_ _*_ ボールはポイントから始まり(3,2)、 …

3
ビーコンを構築する
ビデオゲームMinecraftでは、ビーコンを取得してピラミッドのような構造物に配置し、速度やジャンプブーストなどの特殊効果を与えることができます。 あなたの仕事は、効果を考慮して、それに必要なビーコンピラミッドを構築することです。 さまざまな効果に必要なビーコンピラミッドには複数のサイズがあります。最大のものはサイズ9ベースがあり、最小のものはサイズ3ベースがあります。 これらはあなたが得ることができる効果とそれらに必要なピラミッドです(公式のMinecraft wikiで指定されています: 3: Speed I Haste I 5: Resistance I Jump Boost I 7: Strength I 9: Regeneration I Resistance II Jump Boost II Speed II Haste II Strength II ビーコンは下部をベースにして構築され、その後ベースが上がり、サイズが2減少します。1に到達する+と、上部にビーコンがあるはずです。 ビーコンはとして定義され+ますが、機能するにはサポートピラミッドが必要です。 入力は有効である(つまり、ここで指定された効果の1つである)と想定でき、オプションで、入力はすべて小文字であると想定できます。#文字はピラミッドに使用すべきであり、+ビーコンとして。 例: Haste I + ### Resistance I + ### ##### Strength I + ### …

3
ASCIIアートベン図
重複する要素を含まない二つのリストを考えるaとb、二つのリストを出力ASCII-アートベン図間のクロスオーバーを見つけます。ベン図は、単純化のために従来の円の四角形バージョンを使用します。 例 与えられた: a = [1, 11, 'Fox', 'Bear', 333, 'Bee'] b = ['1', 333, 'Bee', 'SchwiftyFive', 4] 出力(ベン図が正しい限り、順序は100%任意です): +-----+----+-------------+ |11 |333 |SchwiftyFive | |Fox |Bee |4 | |Bear |1 | | +-----+----+-------------+ プログラムは、実装に応じて検討する'1' == 1か'1' != 1、検討します。また、すべてを文字列として扱い、文字列の入力のみを受け入れるように選択することもできます。 与えられた: a=[] b=[1,2,3] 出力(2つの空の部分にまだ右パッドスペースがあることに注意してください): +-+-+--+ | | |1 | | | |2 …

1
スノーブローマイドライブウェイ!
最近大雪が降りましたが、私道は雪が吹く必要があります。除雪機がすでに吹雪しているエリアを越えた場合、そのエリアには雪が吹き付けられ、再び吹く必要があります。そしてもちろん、除雪機は私道の真ん中で始めることはできません、それはそれが保管されている私のガレージから始める必要があります。 より正式には: プログラムは、標準形式の入力を、次のような文字列または多次元配列として受け取ります。 XXXXOOOOXXXX X X X X XXXXXXXXXXXX X吹雪不可Oエリア、除雪機設置可能エリア、空スペースは雪のあるエリア 必要に応じて、異なる値を選択できます。 プログラムは次のようなものを出力する必要があります。 XXXX*%OOXXXX Xv<<<^<<<<<X X>>>>>>>>>^X XXXXXXXXXXXX 除雪機はから始まり*ます。は*常に最も近い非ガレージスペースを指します。<、>、v、および^すべての次の方向がどこにあるのポインタを表します。彼らはどこに行くべきか除雪機を指しています。ポインターがをポイントする%と、送風機がガレージに再到着し、私道全体がきれいになります。 除雪機は私道全体を越えなければなりません。除雪機の経路が重なることはありません。不可能な入力を与えてはなりません。 必要以上に長く外に出たくなく、タイピングに多くの時間を費やす必要がないため、プログラムはできるだけ短くする必要があります。最短のコードが勝ちます! テストケース: これらのテストケースには、複数の正解がある場合があります。各テストケースの下に可能な解決策を示しました。 テストケース1:例で示したもの。 テストケース2: XOOOOOX X X X X X XXXXXXXX X X X X XXXXXXXXXXXXXX X*OOO%X Xv>>>^X Xv^<<<X Xv>>>^XXXXXXXX Xv^<<<<<<<<<<X X>>>>>>>>>>>^X XXXXXXXXXXXXXX テストケース3: XOOOOX X X X X X XXX …

7
アニメ化しよう!
チャレンジ GIFはアニメーションの最も一般的な画像形式であり、今日のソーシャルメディアでかなり頻繁に使用されています。この課題のために、GIFが何であるかを再定義します。この課題では、2Dの「画像」のある種の表現を含む3D配列を取り込み、それらを反復してアニメーションを表示する必要があります。このアニメーションは、GIF、コンソール、GUIなどのどこでも実行できます。アニメーション化されている限り、配信は問題ではありません。 入力 内部のデータが何らかの形で2D画像を表す3D配列。 配列には、RGBデータ、true / falseデータ、またはその他の適切なデータを含めることができます。 また、文字列の2D配列または同様のものにそれを調整することもできますが、アニメーションは2Dアニメーションである必要があります。 選択した形式(秒、ミリ秒など)の各フレーム間の時間。 期間の長さを含める必要があるかどうか、人々は私に尋ねてきました。あなたがアニメーションを表示できる限り、私の答えは「まあ」です。私はあなたがこれよりも「配列」パラメータを順守することをより心配しています。つまり、ランダムなアニメーションはありません。 出力 値の入力に基づいて、各遷移で適切な遅延を持つ2Dアニメーションのように見えるシームレスに反復された出力シーケンス。 ルール 出力は次のいずれかですが、これらに限定されません。 GIF画像。 GUIアニメーション(私の例)。 コンソール内アニメーション。 正直なところ、以下のルールに従う限り、あなたが合うと思う「アニメーション」。 画像を出力するときは、次のフレームを表示する前にコンソールをクリアする必要があります。それらを順番に印刷することはできません。 シームレスなアニメーションのように見える限り、コンソールを「クリア」にエミュレートすることも可能です(私の意味の詳細については、私の例の下のヒントを参照してください)。 実装に関係なく、アニメーションは永久に、または停止するまでループする必要があります。 「ループ」は単純なwhile(true){}場合も無限再帰の場合もあり、ユーザーが「ctrl + c」を押すまでこの傑作を表示したいと思うかもしれません。 任意のサイズの2D「画像」を処理できる必要があります。言語がバッファサイズによって制限されている場合、これは許容範囲であり、説明でこれを述べることができます。 標準の抜け穴は許可されていません。 I / Oの例 入力(3D配列、遅延) f([ [[1,0,0], [0,0,0], [0,0,0]], [[0,0,0], [0,1,0], [0,0,0]], [[0,0,0], [0,0,0], [0,0,1]], ], 1) 出力(例、2020バイト-Java) import javax.swing.JFrame; import javax.swing.JTextArea; /** * Simple …

16
平らな地球を旅する
平地の世界の座標は、緯度(x)と経度(y)で構成されます。これらは0〜9999の範囲の整数です。ガウス整数によく似ていますが、常に次の表記法を使用して記述されています。 411S 370E すなわちであり、SまたはN緯度に付加し、EまたはW2つのコンポーネント間の空間(S)と、経度に付加します。 ゴール 空白で区切られた2つの座標を読み取り、それらの合計を出力するプログラム(関数ではない)を記述します。最初の座標は開始点、2番目の座標は変位、出力は結果の位置です。 入出力 この課題は部分的にフォーマットに関するものであるため、入力形式と出力形式を明確に定義するようにします。 推奨される入力形式では、座標コンポーネント間に1つのスペースがあり、先行ゼロはなく、2つの座標間に改行文字があります。プログラムは、優先フォーマットを読み取ることができる必要があります。 出力には、任意の量の空白と先行ゼロを含めることができます。推奨される入力形式と異なる場合、プログラムはこの形式も読み取ることができる必要があります。 明確にするために、入力には追加の書式設定文字を含めることはできません(含めません)。必要なスペースと改行だけ。 得点 これは新しい勝利条件の実験です。数週間以内に回答を受け入れて、勝者を選びます。その後、より適切な回答が出た場合は、回答を変更します。 プログラムのスコアはそのバイト数です。優勝したプログラムは、400バイトより短く、バイト数が最も少ないプログラムですが、最も冗長なプログラミング言語で書かれています。勝者を決定するには: バイト数が400以上のプログラムを削除します(参加できますが、勝つことはできません)。 各プログラミング言語の最短プログラムのみを検討する 最長のプログラムの勝利 ポリグロットは、有効なすべての言語のプログラムと競合します(たとえば、プログラムが両方bashで有効である場合、sh両方の言語のプログラムと競合します)。 テストケース テストケースでは、最初の2行が入力で、3行目が出力です。 0S 0E 0S 0W 0N 0E (ゼロの方向は、入力と出力の両方で重要ではありません) 0S 9999E 9999N 9999W 9999N 0E (最大値) 42S 314W 42N 2718W 0N 3032W (ゼロの方向は出力では関係ありません) 5555N 8888W 7777S 0E 2222S 8888W (負の値はありません。符号を変更する必要がある場合は方向を変更してください) 0001N 4545W …
8 code-challenge  arithmetic  parsing  code-golf  interpreter  code-golf  random  classification  code-golf  ascii-art  code-golf  code-golf  string  number  array-manipulation  code-golf  math  rational-numbers  code-golf  internet  classification  code-golf  string  integer  code-golf  number  graphical-output  typography  king-of-the-hill  code-golf  number  sequence  palindrome  code-golf  math  code-golf  math  probability-theory  code-challenge  image-processing  test-battery  code-golf  number-theory  code-golf  tips  swift  code-golf  graphical-output  image-processing  color  code-golf  string  conversion  code-golf  string  array-manipulation  code-golf  encryption  king-of-the-hill  code-golf  string  ascii-art  code-golf  code-golf  string  compression  decision-problem  code-golf  ascii-art  number-theory  division  code-golf  ascii-art  code-golf  code-golf  number  array-manipulation  code-golf  ascii-art  code-golf  code-golf  string  code-golf  sequence  number-theory  code-golf  math  geometry  code-golf  combinatorics  code-golf  integer  code-golf  arithmetic  number-theory  code-golf  arithmetic  restricted-source  number-theory  restricted-complexity 


2
ASCIIアグリッパ番号に変換
チャレンジ 自然数を指定して、アグリッパの数体系のASCII形式で出力します。 説明 私は奇妙なアルファベットと数字のシステムが好きです。私のお気に入りの数字体系は、ハインリッヒ・コルネリウス・アグリッパによって与えられたものです。これは、範囲内の数値を簡潔に書き込む方法を提供します。1 [0,9999]桁の数字は次のように記述されます。 より小さい数値10^4は1桁の組み合わせですが、次のように1つの中央バーで回転/水平ミラーリングされます。 [0° mirrored, 10's ] | [0°, 1's ] [180°, 1000's] | [180° mirrored, 100's] 以下にいくつかの例を示します。 同等のASCIIは次のとおりです。 Ones: 0 1 2 3 4 5 6 7 8 9 | |- |_ |\ |/ |~ || |^ |v |] | | | | | | | …

1
抵抗を解析する
目的は単純です。一連の抵抗値を指定して、それらの抵抗器の「電気回路」の一部を描画します。以下に例を示します。 入力:3。出力: --3-- 入力:1,2,3。出力: --1----2----3-- 次に、抵抗を並列に結合できます(結合ごとに2つまたは3つの抵抗によって)が、並列結合の必要な深さは1つだけです。 入力:1|2。出力: |--1--| -| |- |--2--| 入力:1|2|3。出力: |--1--| -|--2--|- |--3--| --2--抵抗が中央に配置されていることに注意してください。 入力:1|2,3|4|5。出力: |--1--| |--3--| -| |--|--4--|- |--2--| |--5--| 結合を結合: 入力:1,2,3|4,5,6|7|8,9。出力: |--3--| |--6--| --1----2---| |---5---|--7--|---9-- |--4--| |--8--| より便利な場合は、入力を2次元配列にすることができます。つまり、最後の例の入力は次のようになります[1,2,[3,4],5,[6,7,8],9]。 いくつかのメモ: 他の形式の(入力|出力)入力は許可されていません。 各抵抗器の抵抗値は、1から9の他の値の範囲で変えることができるような-、42または0禁止されています。 のような結合1|2|3|4は無効です。すでに述べたように、並列結合ごとに最大3つです。空の結合、つまり...,|,...また...,,...はは無効です。 ああ、これはコードゴルフです:)

3
ジグザグストリング
ジグザグストリング 文字列と正の整数を指定して、ピーク振幅と文字間隔が整数に等しいジグザグ波パターンで文字列を出力します。 これはこの質問に似ていますが、文字間隔も含まれます。 入力 入力はSTDINから読み取るか、関数の引数として使用できます。入力は、改行と正の整数を含まない文字列です。 出力 期待される出力は、ベースラインの最初の文字で、ジグザグの波パターンに変換された文字列です。波のパターンには、整数と等しい振幅と文字間隔が必要です。 例 入力 Programming Puzzles & Code Golf 2 出力 o g s r g n e e G P r i P l & d o a m u z o l m z C f 入力 Programming Puzzles & Code Golf 1 …

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