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

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

19
階段を作りましょう
初心者には十分な(半)簡単な課題がありません。ますます多くの簡単なものがすでに採用されています。それで、私は初心者が達成できるかもしれない何かを考え出そうとしましたが、それは複製ではありません。 入力: OSの改行(つまり\r\n)で区切られた単一の文字列、 または複数の文字列を含む配列。 出力- 階段: アルファベットおよび数字以外のすべての記号を削除します。残っているのはだけです[A-Za-z0-9]。そして、「階段を作る」。基本的には、長さの順に、一番上が一番小さく、一番下が一番大きい順に並べます。 チャレンジルール: 2つの文字列の長さが等しい場合、それらを1つの大きな文字列として互いにマージします(順序は関係ないため、最初から最後まで、または最後から最初まで、どちらかを選択できます)。 上記のルールは、マージされた文字列の長さが同じ場合にスタックできます(テストケース2を参照)。 一般的なルール: 入力はSTDINで、ASCII文字のみが含まれます。そして、出力はSTDOUTです。 出力の大文字と小文字は、入力と同じでなければなりません。 各サブミッションは、メソッド/関数だけでなく、コンパイルおよび実行できる完全なプログラムでなければなりません。編集:私はかなり新しいので、おそらく自分で完全なプログラムを好むとしても、今後はデフォルトを使用する方が確かに良いでしょう。既に完全なプログラムを投稿したすべての人に申し訳ありません。気軽に編集してください。次回チャレンジ中に投稿を変更しないようにします。 これはcode-golfであるため、バイト単位の最短回答が優先されます。私はおそらく今から一年で最短回答を受け入れます。 code-golfの回答が、C#などのゴルフ用の非codegolf言語を投稿することを妨げないようにしてください!プログラミング言語の最短回答を考えてみてください。 この質問よりも新しい言語を使用してください。 テストケース: 入力1: This is a sample text, that you will have to use to build stairs. The wood may be of excellent quality, or pretty crappy almost falling apart and filled with termites. …

27
EとE
あなたの仕事は、5つの入力が与えられたときに、下の文字「E」の形をしたASCIIアートを表示することです。 例: 入力:(7,2,+,|,-注:この正確な入力形式に従う必要はありません。使用しない場合は、独自の入力形式の仕組みを説明する必要があります) 説明: 7 左端と右端の文字を含む合計幅。 2 垂直文字の数。 + 端に表示する文字。 | エッジの間に垂直に表示される文字。 - 水平に表示する文字。 上記の例の出力: +-----+ | | +-----+ | | +-----+ 他の例: 入力: 7,2,@,|,- 出力: @-----@ | | @-----@ | | @-----@ 入力: 7,2,+,|,# 出力: +#####+ | | +#####+ | | +#####+ 入力: 8,3,+,|,# 出力: +######+ | | | …

3
円上のテキスト
可能な最小半径を持つ離散円の周りに入力文字列を印刷するプログラムまたは関数を作成します。たとえば、inputのThis is an example場合、プログラムは次を出力する必要があります。 a si n s i e h x T a m p le サークル生成 あなたは使用しなければならない中点円アルゴリズムを離散円の各点の座標を計算します。このウィキペディアのページで、このアルゴリズムを実装する方法の例を見つけることができます。 アルゴリズムの擬似コードは次のとおりです(WikipediaのCの例に基づいています)。 integer x = radius integer y = 0 int decisionCriterion = 1 - x while y <= x point at coordinates (x,y) belongs to the circle // Octant 1 point …

11
二乗差を最大化する
整数値の順列を検討1するがN。たとえば、次の例N = 4: [1, 3, 4, 2] このリストは循環的である1と見なし、そのように、および2隣接として扱われます。そのようなリストについて計算できる1つの量は、隣接する値の差の2乗の合計です。 (1-3)² + (3-4)² + (4-2)² + (2-1)² = 10 あなたの仕事は、正の整数を与えられて、この量を最大にする順列を見つけることNです。N = 4上記の例の場合、最適ではありません(実際、最小限です)。18次の順列(および他のいくつかの順列)の合計平方差を達成できます。 [1, 4, 2, 3] アルゴリズムは(のN)多項式時間で実行する必要があります。特に、すべての順列の差の合計を単純に計算することはできません。 プログラムまたは関数を作成し、STDIN(または最も近い代替)、コマンドライン引数または関数引数を介して入力を取得し、STDOUT(または最も近い代替)、関数の戻り値または関数(out)パラメーターを介して結果を出力できます。 出力は、任意の便利で明確なフラットリストまたは文字列形式にすることができます。0toのN-1代わりに1toの値を持つリストを返すことを選択できますN。 標準のコードゴルフ規則が適用されます。 テストデータ この問題に対する優れた分析ソリューションがあります。たとえば、すべての有効なソリューションN = 10は次のリストと同等です(巡回シフトおよび反転まで)。 [7, 5, 6, 4, 8, 2, 10, 1, 9, 3] 私は(それがパターンを把握する、おそらく十分ですが)それを超えてあまりにも明らかにし、その代わりに任意のより多くの例を与える、あなたは結果が与えられたため、次の総乗違いがあることを確認することができますしたくありませんN。 N Total squared difference 1 0 2 …
19 code-golf  array-manipulation  permutations  restricted-complexity  code-golf  geometry  grid  code-golf  string  sorting  code-golf  simulation  code-golf  string  code-golf  arithmetic  code-golf  sorting  code-golf  string  code-golf  sorting  code-golf  interpreter  code-golf  number  kolmogorov-complexity  natural-language  conversion  code-golf  random  internet  code-golf  board-game  code-golf  number  sequence  code-golf  math  number  code-challenge  image-processing  classification  test-battery  code-golf  ascii-art  code-golf  tips  code-golf  arithmetic  code-golf  tips  code-golf  tips  javascript  code-golf  array-manipulation  code-golf  ascii-art  code-golf  string  binary  code-golf  arithmetic  linear-algebra  matrix  code-golf  sequence  code-golf  math  number  arithmetic  code-golf  primes  code-golf  math  code-golf  array-manipulation  counting  code-golf  arithmetic  code-golf  quine  code-generation  polyglot  code-golf  math  kolmogorov-complexity  trigonometry  code-golf  string  encryption 

12
私は来ることを見ました
1より大きい整数または-1より小さい整数を取り込むプログラムまたは関数を作成します。つまり、入力は0、1、または-1にはなりません。 入力がの2場合、出力は次のようになります。 |\_/| |___| 入力がの3場合、出力は次のようになります。 |\_/\_/| |______| 入力がの4場合、出力は次のようになります。 |\_/\_/\_/| |_________| パターンは、より大きな入力に対しても同じ方法で継続します。たとえば、入力がの10場合、出力は次のようになります。 |\_/\_/\_/\_/\_/\_/\_/\_/\_/| |___________________________| 入力がの-2場合、出力は次のようになります。 ____ | | |_/\_| 入力がの-3場合、出力は次のようになります。 _______ | | |_/\_/\_| 入力がの-4場合、出力は次のようになります。 __________ | | |_/\_/\_/\_| パターンは、より小さい入力に対してもまったく同じ方法で続きます。たとえば、入力がの-10場合、出力は次のようになります。 ____________________________ | | |_/\_/\_/\_/\_/\_/\_/\_/\_/\_| 出力は、オプションの末尾の改行を含む文字列として印刷または返すことができます。負の入力の出力の右上の「空の」コーナーはスペースであるか、空のままである場合があります。 バイト単位の最短コードが優先されます。

2
ドーナツショップ™
現金が不足しているため、世界最大のデジタルドーナツ企業であるThe Donut Shop™にドーナツを構築するためにサインアップしました。 現在、取引基準が非常に厳しいことを考えると、これらのドーナツを作成するために可能な限り短いコードを作成して、それらを作成したソースコードがパケットの外側に配置できるようにする必要があります。 チャレンジ 4つの入力、外側のリングの半径、内側のリングの半径、可能なスプリンクル、およびセルにスプリンクルが発生する可能性がある場合、正しい内側および外側の半径を持つスプリンクルで覆われたドーナツを出力します。 入力は、希望する方法(関数の引数、標準入力、プログラム引数)および任意の順序で取得できます。 スプリンクルは、スプリンクルタイプごとに1文字の形で与えられます ^+*-スプリンクル入力は、4つのスプリンクルのリストであるように^、+、*、- 振りかける可能性は、0〜1の浮動小数点値として入力されます。例:0.1、0.23 出力をstdoutまたは同等のものに出力する必要があります。 ドーナツの端に振りかけることはできません。 スプリンクルの各タイプは、各セルに等しく存在する可能性がなければなりません。 半径は1セル単位で与えられます。 内側の半径が0または外側の半径のいずれかに等しい場合、ドーナツにはリングがないと言われます。 両方の半径は負でない整数になります。 ドーナツの内側と外側のエッジは、ハッシュ(#)を使用して表す必要があります 半径と円の中心を指定して、点が円内にあるかどうかを確認するテストは次のとおりです。 (x-center)**2+(y-center)**2 < radius**2 出力付きの入力例 (外半径、内半径、振りかける、振りかける可能性) 10、4、「^ + *-」、0.1 ######### # # ## ++ * *## # # # ^^ - * # # ##### ^ # #+ # # # # # …


6
水で満たされたボウル
ボウルの容積とその中の水の容積を入力として受け取り、その中に水が入ったボウルのASCII表現を必要な容積で出力または返すプログラムまたは関数を作成する必要があります。 ボウルの構造は次のとおりです。 \ / \___/ ボウルには少なくとも1つの_キャラクターがあります。数\のと/のも正であり、彼らは対称性に起因する等しいです。 ボウルの量は、合計の数である_とspaceの間の文字\のと/のプラスのすべてのペアのための1 \と/。これは、上記のボウルの容積が10次のことを意味します。 \ / => xxxxx x (the last one is for the \/ pair) \___/ xxx x (the last one is for the \/ pair) 2つの異なるボウルの容積が同じである可能性があることに注意してください。たとえば、次の両方のボウルの容積は18です。 \ / \ / \ / \___/ \_______/ ボウルに水を注ぐことができます。水は~、ボウル内のスペースではなく、キャラクターの列として表されます。一番下の行にはスペースがないため、~「」を含めることはできません。これは、この例に一方向でのみ水を入れることができることを意味します。 \~~~~~/ \___/ 他のボウルには複数の方法で充填できます。 \~~~~~/ \ / \ / …

1
レースカーのトラックを作りましょう!
前書き 私のはレースカーのトラックを作りたいと思っています。彼女は、一緒になってトラックを形成する木製の部品を持っています。各パーツは正方形で、異なる形状が含まれています。パイプ描画文字を使用して説明します。 │:垂直に進む道路 ─:水平に進む道路 ┌ ┐ └ ┘:方向に曲がる道路 ┼:地下道のある橋 不思議なことに、tジャンクションはありません。 レースカートラックの例を次に示します。 ┌─┐ │ │┌─┐ │ └┼─┘ └──┘ 有効なレースカートラックのルールは次のとおりです。 どこにも行かない道路はありません。 ループを形成する必要があります(すべてのピースが同じループの一部でなければなりません)。 橋/地下道では、曲がることはできません(そのため、まっすぐに通らなければなりません)。 残念ながら、raceと私が持っているレースカーのトラックは限られています。しかし、我々は間違いなくそれらをすべてトラックで使用したいと考えています。在庫にあるピースのリストを指定して、それらのピースをすべて使用するレースカートラックを出力するプログラムを作成します。 入力説明 STDIN、コマンドライン引数、ファイル読み取り、またはユーザー入力関数(raw_inputまたはなどprompt)を介して入力を受け取りたい。入力は、次の形式のコンマ区切りの正の整数です。 │,─,┌,┐,└,┘,┼ ここで、それぞれが特定のピースの量を表します。したがって、たとえば入力: 1,1,1,1,1,1,1 それぞれのピースが1つあることを意味します 出力の説明 上記のパイプ描画文字を使用して、レースカートラックを出力します。レースカートラックは、入力で指定された各ピースの数を正確に使用する必要があります。これ以上でもそれ以下でもありません。すべての入力に対して少なくとも1つの有効なレースカートラックがあります。 入力と出力の例 入力: 3,5,2,2,2,2,1 可能な出力: ┌─┐ │ │┌─┐ │ └┼─┘ └──┘ 入力: 0,0,1,4,4,1,3 可能な出力: ┌┐ └┼┐ └┼┐ └┼┐ └┘

30
ボックスを生成します!
あなたの仕事は、与えられた入力に関して任意の1つのASCII文字を使用してボックスを生成することです。 テストケース 1 1 --> ===== = = ===== 1 2 --> ========= = = = ========= 2 1 --> ===== = = ===== = = ===== 2 2 --> ========= = = = ========= = = = ========= 2 5 --> ===================== = = = = = = ===================== …

3
ASCIIトランプを引く
これらの15のASCII トランプパターン(エース、ジョーカー、および裏面)を考えてみましょう。ここXで、スーツシンボルのプレースホルダーは次のとおりです(行間隔が少ない方が見栄えがよくなります)。 ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- |AX | |2X | |3X | |4X | |5X | |6X | |7X | |8X | |9X | |10X | |JX | |QX | |KX | |J | |* * * * * …

3
アスキー水道
イントロ 次のf A\/ような文字のグリッドを考えます f f f A A / \ \ / A A \/ / \/ ここで: f 水の流れを下に注ぐ蛇口を表します A 上の水の流れを分岐させて、ちょうど半分が左に、半分が右に行くようにします \ 上の水の流れを1単位だけ右にシフトします / 上の水の流れを左に1単位シフトします 組み合わせ\/は、その上の水流を収集する無限の容量を持つトラフを作成します [space] 水が通過できるよりも空きスペースです これから、水(*)が蛇口から出て、トラフまたはグリッド領域のいずれかに落ちるときに通る経路を想像できます。 f f f <-- first second and third faucets * * *A* * *A*/ \* \*/ * *A <-- a …

8
棒人間戦争を描く
高度な描画スキルでこの課題を作成している私の写真。 バックグラウンド スティックマン戦争は、地球の支配的な種がスティック以外のもので作られていなかったはるか昔に起こりました。歴史家は、当時画家やカメラがなかったという事実を後悔しており、今日の歴史書でその戦争の写真を使用することができました。それがあなたのコーディング力が役立つ場所です。棒人間は非常に簡単に描かれ、歴史家は何人の棒人間が戦争と戦ったかについてのデータを見つけることができました¹。戦争が始まる直前のイメージを再現するのはあなた次第です! 戦争に関与した勇敢な棒人間は次のとおりです。 O / | / | \ / | | / \剣士 OA / | \ | | | / \ | スピアマン 。 。 ' *。 'O * '\ | /。 。| * './ \ *。メイジ O / | \ | / \村人 O / | …

4
フォレスト-シミュレートされたエコシステム
注意 この問題は、このredditスレッド(スポイラーアラート!)から取られたものであり、このサイトのフォーマットに合うように調整しました。すべてのクレジットはredditユーザー「Coder_d00d」に送られます。 この問題では、フォレストをシミュレートします。 このシミュレートされたフォレストでは、3つの側面を扱います。 苗木、ツリー、またはエルダーツリーになりうるツリー。 木こり(彼は木を切り倒し、昼食を食べて、溶岩流に行きます) クマ(彼はパンケーキのような匂いの木こりをひどく傷つける) 警告:これらのルールは、おそらく完全ではありません。それらをガイドラインとして参照し、問題ないものを少し微調整する必要がある場合は(スポーン率が問題として指摘されているので、この例としてkuroi nekoの答えを参照してください。 時間のサイクル: シミュレーションは月単位でシミュレートされます。あなたは「ティック」に間に合うように前進します。各「目盛り」は月を表します。12個の「ティック」は1年を表します。私たちの森は変化し、常に変化します。森林の進捗状況を記録し、何が起こるかを分析します。 森林: フォレストは2次元のフォレストになります。N x Nのサイズのグリッドでフォレストのサイズを表すには、Nの入力が必要です。各場所で、ツリー、ベア、またはランバージャックを保持できます。それらは同じ場所を占めることができますが、多くの場合、同じ場所を占めるときにイベントが発生します。 私たちの森は、サイズに基づいてランダムに生成されます。たとえば、N = 10の場合、10 x 10のフォレストと100のスポットがあります。 フォレストの10%は、ランダムに10か所で木こりを保持します。(100スポットフォレストを使用すると、これは10本の木こりです) フォレストの50%は、ランダムな場所にツリーを保持します(ツリーは3種類のいずれかであり、「ツリー」の真ん中から始まります)。 フォレストの2%がベアを保持します。 フォレストのサイズをどのように受け取るかはあなた次第です(stdin、ファイルから読み取るか、ハードコーディングしてください)。Nを5以上にすることをお勧めします。小さな森はあまり楽しくありません。 イベント: シミュレーション中にイベントが発生します。イベントは、以下で説明するいくつかのロジックに基づいて発生します。私たちの森の3つの要素の各説明で、以下のイベントを説明します。 イベントは最初に木の順序に従い、次に木こりが続き、最後に熊が続きます。 木: 毎月、ツリーは10%の確率で新しい「苗木」を生成します。ツリーに隣接するランダムな空きスペースでは、10%の確率で「苗木」を作成できます。 たとえば、森の真ん中にあるツリーには、周囲に8つのスポットがあります。これらの1つ(空の場合)は「苗木」になります。 存在してから12か月後、「苗木」は「ツリー」にアップグレードされます。「苗木」は、「ツリー」に成熟するまで他のツリーを生成できません。 「苗木」がツリーになると、他の新しい「苗木」を生成できます。 「ツリー」が120か月(10年)使用されていると、「エルダーツリー」になります。 エルダーツリーは10%ではなく20%の確率で新しい「苗木」を生成します。 ツリーまたはエルダーツリーに隣接するオープンスポットがない場合、新しいツリーは生成されません。 木こり: 木こりは木を切り倒し、スキップしてジャンプして野生の花を押します。 毎月木こりはさまようでしょう。任意の方向に隣接するランダムに選択されたスポットに最大3回移動します。たとえば、グリッドの中央にある木こりには、移動先が8つあります。彼はランダムな場所にさまようでしょう。また。そして最後に三度目です。NB:これはどんな場所でも構いません(彼らはクマに足を踏み入れることができ、結果としてモールになります)。 木こりが動くとき、彼が木(苗木ではない)に出会うと、彼は止まり、その月の放浪は終わります。彼はそれから材木を収穫します。ツリーを削除します。木材を1個獲得します。 木こりは「苗木」を収穫しません。 木こりはエルダーツリーも収穫します。ニワトコの木は2枚の木材の価値があります。 木材追跡: 12か月ごとに、伐採された木材の量は、森の中の木こりの数と比較されます。 収集された材木が森林内の木こりの量と同じかそれを超える場合、多くの新しい木こりが雇われ、森の中にランダムに生成されます。 採用する木こりの数を計算します。 floor(lumber_collected / number_of_lumberjacks) ただし、12か月後に収集された木材の量が木こりの数を下回った場合、木こりはお金を節約するために放され、森から1つのランダムな木こりが取り除かれます。Lumberjackの労働力を0未満に減らすことは決してないことに注意してください。 くま: …

9
ASCII ARTエッジ検出
タイトルが言うように、私はASCIIアートのエッジを検出しなければならないことで争うことを考えていました。 コードは、入力として白黒ASCIIアートを受け入れる必要があります。B / W ASCIIアートは(私が)のように定義されたASCIIアート(:asteriks我々の場合における非ホワイトスペース文字の一種類のみで*)。そして、出力が標準のASCIIアート(すべてのASCII文字が受け入れられます)を生成すると、最初の輪郭が記憶されます。 出力で複数の文字を使用する目的は、一部のエッジをスムーザーにすることです。たとえば、この入力を許可することができます *** **** ****** ****** ****** ****** **** *** になる可能性があります: ___ _/ ) _/ / / | | / | \ \ | `\ | \___) 入力\nとしての入力区切り文字列。各行には最大80文字数が含まれます。行数は指定されていません。 これは私のサンプルPython3プログラムです。 import fileinput as f import re as r import copy as c a,s,p='*',' ','+' def read(n): s=[list(' …

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