海でクラゲと戯れる(エスケープシーケンスで座標ランダム指定)

6-3.ランダムに並び替え

暗黒の端末ウィンドウと格闘していると、無性に大自然を見たくなる時があります。
その上、最近暑くなってきましたので、涼しげな画像を脳が欲しているようで、真っ黒だった端末ウィンドウは、水色に透き通ったクラゲウィンドウに変わってしまいました。

jellyfish

コマンドラインを普段使いしていると、俗世から離れた気分でいられますが、クラゲも同じようなことを考えているのでしょうか。まあ、涼しそうです。

涼しさに追い打ちをかけて、コンソールを海色で埋めつくしてみたいと思います。さらには目の保養にもなります。(真っ黒コンソールよりも)
海色は、青とシアンと白をランダムな座標(X=0〜79、Y=0〜19)に表示します。

~$ for i in `seq 0 1599 | sort -R`;do
> perl -ne 'printf"\x1b[%d;%dH\x1b[4%dm \x1b[0m",
> $_/80,$_%80,1+int rand 7' <<<$i |
> sed 's/4[12]m/44m/g;s/4[35]m/46m/g;';
> done; echo -ne "\x1b[21;1H"

見やすく行を分けてはいますが、入力時は基本的に、コマンドラインはワンライナー(一行)です。

seqで生成している0〜1599の数字は、X座標とY座標に分解され、エスケープシーケンスでの座標指定に使います。また、色を青、シアン、白に限定するために、sedで置換しています。

赤色がseqで生成した数字0〜1599

xy1600

映像としてはこうなります。
(上記のコマンドラインで実行したものとは若干異なります。)

console sea

コメント

タイトルとURLをコピーしました