05AB1EのASCII-Golfingの紹介(基本変換[単純])
05AB1EはASCIIアートを直接対象とするものではありませんが、私は2つの課題に勝ちました。05AB1Eの最大の利点は、単純なベース変換でも、バイトカウントを拡張したり、半分にしたりするために使用できるトリックがしばしばあることです。多くの場合、ASCIIチャレンジでは、パターンの半分だけを描画し、反転して連結するために利用できる反復のトリックがあります。4方向のパターンの場合、ジップや分岐などの処理を行って、パターンの角のみを描画できます。この単純な基本圧縮のアイデアと組み合わせて使用するデータ構造操作技術はたくさんあります。
基本的な変換戦術に関する簡単なクラッシュコースを次に示します。
05AB1Eでは、たとえば、ASCIIアートで使用されるすべての文字を列挙します。
--===___===--
結果として:
-
=
_
次に、1から始まり0、2の順に番号を割り当てます。
- is 1.
= is 0.
_ is 2.
元の文字列の文字を数字に置き換えます。
1122200022211
可能な限り最小のベース(3)を使用して10進数に変換します。
879412
(05AB1Eを使用してこれを行う方法)
次に、それをベース214に変換します。
Jh]
(05AB1Eを使用してこれを行う方法)
その後、次のコードでラップします。
•Jh]•3B…102…-_=‡
オンラインでお試しください!
または、表示される中間ステップで試してください。
最終的な説明:
•Jh]• # Push the compressed ASCII integer.
3B # Convert it to base 3.
…102 # Push the keys to the conversion.
…-_= # Push the values to the conversion.
‡ # Transliterate, replace 0, 1 and 2 with the symbols.
さて、この特定の課題では、文字列は非常に短いため、実行する意味がありません。文字列の半分を押してPalindromizeを10バイト実行する"--===__"û
か、Adnanが階乗的で賢い男を使用してコメントで行ったようにゴルフをするでしょう•Jh]•3B5!…-=_‡
。彼はまたです(の一つ?)クリエーター(S?) 05AB1Eの。
より複雑な例:
/codegolf//a/106621/59376
また、デニスのコルモゴロフ複雑言語:Bubblegumも試してみてください。これの使い方がわかりません。