回答:
deverbosifierを使用することは、ASCIIで記述できることを意味します(--dv
または--deverbosify
、verbosifyする、-v
または--verbose
冗長コードとして実行する)。さらに、それはあなたのために文字列を圧縮します。これは、圧縮する文字列が長すぎるときに、いくつかのASCIIアートの挑戦で役に立つかもしれません。
@Neilは-vl
またはを使用することをお勧めし-v --sl
ます。これはの短縮形で--verbose --showlength
、詳細な木炭として解釈され、通常の木炭コードの長さが表示されます。また、Charcoalは通常解析エラーを無視するため、デバーボス化するときは、出力をチェックして、入力が実際に正しく解析されていることを確認してください。構文エラーがある場合は、-a
(--astify
)または--oa
(--onlyastify
)を使用して問題を特定します。
-v -sl
ます。また、デバーボス化するときは、常に解析エラーが発生するわけではないため、出力をチェックして、入力が実際に正しく解析されたことを確認してください。
たとえば、多くのコマンドに必要な引数は1つだけです。
Rectangle
、Oblong
およびBox
引数が1つだけ指定されている場合は正方形を作成しますReflect
コマンドはデフォルトで右を反映しますRotate
コマンドのデフォルトは反時計回りに90度Polygon
そしてPolygonHollow
多方向と辺の長さを受け入れることができます。これは、すべての辺の長さが同じ場合に使用できます。PolygonHollow
を偶然発見しました。複数の方向を持つこともできますが、通常の矢印の前に来る必要があります(この制限が意図的なものかどうかはわかりません)。「キューブを描く」チャレンジへの回答でそれを使用しました。
ReflectButterfly dls
に電話ReflectButterfly
することを期待していましたが、(wikiが正しく文書化するように)実際に電話しますReflectOverlap
。
使用できるすべての変数のリストを以下に示します。簡潔なギリシャ文字とそれを表す冗長文字を示します。
α/a: The uppercase alphabet
β/b: The lowercase alphabet
γ/g: A string of all the ASCII characters from space to ~
δ/d: The fifth input
ε/e: The fourth input
ζ/z: The third input
η/h: The second input
θ/q: The first input
υ/u: An empty array
φ/f: 1000
χ/c: 10
ψ/y: The null character
ω/w: The empty string
入力が十分でない場合、入力を表す変数は空になりますが、ここに示されていない他のすべての変数は、使用する前に割り当てる必要があります。
y
そしてf
私が貼り付けられてきたものから、他の方法で回避していますか?(最初にこれを書いたときにギリシャ文字を読み違えたかもしれません。)
基本的な反射と回転には多くのバリエーションがありますので、微妙な違いが何であるかを知ることは有益です。テーブルのキー:
/
は\
回転または反転後になります。| Command | Transform | Keep Original | Overlap |
|-------------------------|-----------|---------------|---------|
| Reflect | No | No | n/a |
| ReflectCopy | No | Yes | 0 |
| ReflectOverlap | No | Yes | 1 |
| ReflectOverlapOverlap | No | Yes | n |
| ReflectTransform | Yes | No | n/a |
| ReflectMirror | Yes | Yes | 0 |
| ReflectButterfly | Yes | Yes | 1 |
| ReflectButterflyOverlap | Yes | Yes | n |
反射の方向はオプションです。デフォルトでは、右側に1回反映されます。オリジナルを維持する反射については、複数の方向が許可されます。これにより、各方向でコマンドが繰り返されます。(たとえば、ReflectMirror(:¬)
実際には合計で4つのコピーが作成されることを意味します。)
カーソルは反射とともに移動します(オリジナルが保持されている場合でも)。
| Command | Transform | Keep Original | Overlap |
|-------------------------|-----------|---------------|---------|
| Rotate | No | No | n/a |
| RotateCopy | No | Yes | 0 |
| RotateOverlap | No | Yes | 1 |
| RotateOverlapOverlap | No | Yes | n |
| RotateTransform | Yes | No | n/a |
| RotatePrism | Yes | Yes | 0 |
| RotateShutter | Yes | Yes | 1 |
| RotateShutterOverlap | Yes | Yes | n |
オリジナルを保持する回転については、オプションの回転の原点があります。デフォルトは、キャンバスの右下です。許容値は、斜め方向のいずれかです。
回転量(45°刻み)はオプションです。デフォルトは2、つまり反時計回りに90°(反時計回り)です。オリジナルを維持する回転には、2つの代替オプションがあります。複数桁の整数は、各桁ごとにキャンバスを1回回転してから結果をマージすることを指定します。キャンバスはその間に変わります。
Transform
意味ですか?
Transform
、答えのどこかでどのように機能するかを説明する必要があります。
Sum
Sum
便利なオーバーロードがたくさんあります:
Join(..., "")
代わりに使用します。.
文字のみを含む文字列では、数字の合計を取ります。-
、セパレーターとしてカウントされることに注意してください)。最後の2つのルールの便利な副作用は、Sum
文字に使用すると、数字1-9
がその値にキャストされ、数字以外の値Cast
に対して失敗するのとは異なり、他のすべてがゼロを返すことです。
運がよければ Slice
、文字列から最初の文字をスライスするためするには2バイトかかりますSlice(..., 1)
。スライスする式が数字で終わる場合、セパレータが必要な場合、または次のコードを式として解釈できる場合Slice
は、その場合、追加のパラメータとして使用するため、時間がかかります。
代わりに、を使用するだけでFilter(..., k)
、最初の要素が削除され、目的の結果が得られます。(式が別のループ内にネストされている場合、明らかに適切なループインデックス変数を使用します。)これは常に2バイトであり、周囲のコードの影響を受けません。