ある日、男はUnicode
にPlaying Cards
というブロックを見つける。
"ABCD".split("").forEach((u)=>{console.log("123456789ABDE".split("").map((l)=>String.fromCodePoint(`0x1F0${u}${l}`)).join(""))})
※↑ブラウザ(chromeで確認済み)のConsoleでやってみてください。
※ダイヤとハートも黒く表示されてしまうのは、一旦納得してください。
、、、というわけで、Unicodeのトランプと、ブラウザのJavaScript Consoleで遊べる遊びを考えていきたいと思います。目標は、ネットワークに繋がっていないPCでも、ブラウザがあれば遊べるようになることです。
遊んでみる
まず、さっきのスクリプトを実行したあなたの「表示小さすぎるな!?これトランプなの!?」という心の声が私に聞こえてきましたので、先になるべく大きく表示する関数 clog
を先に作っておきます。また、カードも一通り変数 cards
に入れておきましょう。ここで、ジョーカーも2つ加えておきます。
const clog = (t)=>{console.log("%c"+t, "font-size:xx-large")};
let cards={};
"ABCD".split("").forEach((u,i)=>{"123456789ABDE".split("").forEach((l,j)=>{cards["SHDC"[i]+"1234567890JQK"[j]]=String.fromCodePoint(`0x1F0${u}${l}`)})});
cards.J0 = String.fromCodePoint(0x1F0BF); // Red joker
cards.J1 = String.fromCodePoint(0x1F0DF); // White joker
clog(cards.S1);
スペードのAが表示されましたか?では、カードをシャッフルしたのち(シャッフルの精度が雑ですが、それも現実っぽくて良いでしょう)、デッキから5枚引いて、表示してみましょう。
clog(Object.keys(cards).sort(()=>{return Math.random()-.5 }).slice(-5).map((c)=>cards[c]).join(""))
これで、ポーカーっぽいことが出来そうですね。
、、今日はここまで。このあと、どう進めるか何も決めていませんので、コメントなど頂けたら幸いです。
ちなみにUnicodeには麻雀牌もあるので、興味ある方はそちらで遊んでみてはいかがでしょうか。しかも、(私の環境では)麻雀牌は色が付いており、トランプよりも視認性が高いです。残念ながら私は麻雀のルールを知りませんが。