シェル芸で麻雀牌、ポーカーの札を配ってみる

絵文字について少し調べてたところ、(2018年時点だと機種は選ぶのだが)どうも麻雀牌やトランプの絵柄全種の絵文字が用意されているらしい。

つまり、ターミナル上で適切にコマンドを叩いてやれば、麻雀やポーカーの初手を得る事もできるということになる。 で、実際やってみることにした。 (よくよく見たら、seqで0入って無くて東が出力されてなかったので修正)

まず、以下のコマンドで麻雀牌、トランプの札をゲームに必要な数だけ(トランプの場合はジョーカーは1種類で2枚)取ってくる。 ちょっと小さいけど、画像のようになる(Macだと一部の絵文字が表示できないかもしれない)。

echo $(seq -f 'printf $(printf \\\\\U1F0%%02x %g)' 0 33 | bash){,,,} | sed 's/ //g;s/\B/ /g'
echo $(printf "printf \$'\\\U1F0%02x'\n" {{161..174},{177..190},{193..206},{209..222}}|bash){,,,} $(printf "printf $'\\\U1F0%02x'\n" 207|bash){,} | sed 's/ //g;s/\B/ /g'

後は、これを麻雀、ポーカーの数だけランダムに取ってくればいい。

shuf -n 13 -e $(echo $(seq -f 'printf $(printf \\\\\U1F0%%02x %g)' 0 33 | bash){,,,} | sed 's/ //g;s/\B/ /g') | tr -d '\n' && echo
shuf -n 5 -e $(echo $(printf "printf \$'\\\U1F0%02x'\n" {{161..174},{177..190},{193..206},{209..222}}|bash){,,,} $(printf "printf $'\\\U1F0%02x'\n" 207|bash){,} | sed 's/ //g;s/\B/ /g') | tr -d '\n' && echo

小さいからよく読めないけど、たしかに麻雀牌、トランプの絵文字があって、それを使って遊べなくも無さそうだ。


2018/02/08 追記

牌をソートをする場合は、Unicodeキャラクタになってしまうと正常に行えないので、事前に数字の状態で行う必要がある。 以下の様にコマンドを実行すれば、ランダムに取得した牌をソートしてから出力してくれる。

shuf -n 14 -e {0..33}{,,,} | sort -n | xargs -I@ bash -c 'printf $(printf \\\\\U1F0%02x @)'