🃏

毎週見てるポーカーYouTuberきっかけでテキサスホールデムシミュレーターを作った

に公開

はじめに

こんにちは!普段 Web アプリケーション開発をしているponyo877と申します!
今回は趣味で開発したテキサスホールデムのシミュレーター「flopper」を紹介させてください!
https://flopper.pages.dev

Ready Turn Showdown
Ready Turn Showdown

開発のきっかけ:世界のヨコサワさん

ポーカー、特にテキサスホールデムは戦略性が高い面白いゲームですよね。
木原直哉さん登場回(1回目)のクレイジージャーニーを見てポーカーの存在を知り、Youtubeでのポーカー観戦が趣味になりました。
特に「世界のヨコサワ」さんは数少ない毎週欠かさず見ているチャンネルの一つです。
https://www.youtube.com/channel/UCwKNfdT49VN0fDNZFw7XEOQ

動画の中でヨコサワさんが友人とランチで誰が奢るのかをテキサスホールデムのシミュレータのflip-for-itを使って決めてるのを見て、これのWeb版を作ってみようと思い立ちました!
https://apps.apple.com/jp/app/flip-for-it-poker/id1539317743

このflip-for-itはiPhone限定のアプリだったので、PCやタブレットのブラウザですぐに使えるシンプルなツールはなさそうでした。そこで、「ないなら作ってみよう!」精神で作りました!

「flopper」でできること

Flopper は、現時点で以下のような基本的な機能を持っています。

  • プレイヤー管理: プレイヤーの追加(一般的なポーカー同様Max10人)、削除、名前の変更が可能です。
  • ゲーム進行: プリフロップからフロップ、ターンへとゲームを進められます。
  • 勝率計算: 各ストリート(フロップ、ターン、リバー)で、各プレイヤーの勝利確率(Equity)を表示します。
  • Showdown: リバーカードが開かれた後、自動的に各プレイヤーの役を判定し、勝者(タイ含む)を決定します。
  • UI/UX: カードがめくれるアニメーションや、勝者のハンド強調表示、初回アクセス時のガイド表示など、少しだけリッチな体験を目指しました!

https://www.youtube.com/watch?v=nJMnpwPOZfY

技術的な側面

技術的な側面や開発でこだわりポイントを少しだけ紹介します!

  • 技術スタック: フロントエンド開発で慣れている React + TypeScript + Vite を採用し、デプロイは こちらもお馴染みのCloudflare Pages を使っています。
  • 勝率計算: ポーカーの勝率計算は、組み合わせが多く非常に複雑です。当初はモンテカルロ法での確率的な推定の実装も試みましたが、精度とパフォーマンスのバランスが難しかったため、最終的には poker-odds-calculator という jsのライブラリを利用しています。これにより、比較的正確な Equity をバックエンドサービスを用いずに実現できています(ただし、プリフロップなど情報が少ない段階での計算精度は限定的です)

https://github.com/rundef/node-poker-odds-calculator

  • アニメーション: カードがめくれるフリップアニメーション、クラッカーの紙吹雪、ボタンの点滅などを加えて、楽しく操作できるようにしています

想定される使い方

メインはヨコサワさんの動画のように友人とのご飯の奢りや賞品贈呈の抽選ツールの一つとして使っていただきたいです!
既存のやつだとルーレットとかDuck Raceとかがあるかと思います
https://jp.piliapp.com/random/wheel/
https://www.online-stopwatch.com/duck-race/

他にも学習ツールだったり、確率の感覚を養ったりに使えるかもです

  • 学習ツール: ポーカー初心者の方が、ハンドとボードの組み合わせによる勝率の変化を視覚的に理解する。
  • 感覚研鑽: マルチウェイのフリップで負けてもイライラしない確率的な感覚を養う(ポーカー経験者の同僚から頂いた)

フィードバックのお願い

まだまだ荒削りな部分も多いかと思います。ぜひ実際に触ってみて、「ここが使いにくい」「こういう機能が欲しい」「この勝率の計算結果おかしいのでは?」といったフィードバックをいただけると大変嬉しいです! X (Twitter) などで気軽にメンションや DM をいただければと思います!!!

おわりに

ポーカーYouTuberの世界のヨコサワさんに に触発されて作り始めた Webアプリflopperを紹介させていただきました!
ポーカー好きな方、Web 技術に興味がある方、ただ誰が奢るか楽しく決めたい方など、色々な方に触っていただけると嬉しいです。

https://flopper.pages.dev

Idea記事は初投稿で下手な書きっぷりですが、最後まで読んでいただきありがとうございました!!

Discussion