2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

JavaScriptでトランプ遊び part 1

Last updated at Posted at 2019-03-30

ある日、男はUnicodePlaying 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には麻雀牌もあるので、興味ある方はそちらで遊んでみてはいかがでしょうか。しかも、(私の環境では)麻雀牌は色が付いており、トランプよりも視認性が高いです。残念ながら私は麻雀のルールを知りませんが。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?