Poker Handle ( inspired by Wordle and Worldle ) を作ってみた

流行っているものは自分でも実装チャレンジしたくなるタイプなので、Wordle インスパイアの Poker Handle というものを作ってみた。 別作業の息抜き、プログラミング能力の低下を防ぐためという目的もそこそこある。

本家にある機能は一通り揃えたつもりである。 特にprivateにしておく理由もない気がしたのでリポジトリも公開した(てきとーに書き散らしているのであまり参考にしないほうが良い)。

https://pocketberserker.github.io/poker-handle/

https://github.com/pocketberserker/poker-handle

テストプレーに協力してくれた同僚、元同僚、知人の皆様にこの場で感謝を。

なんでポーカー?

Wordleのパネルは5枚……ポーカー(正確にはテキサスホールデム)の共通カードも5枚……よしこれを使おう、くらいのノリ。 今はちょっと反省している。

論外から無理ゲーになるまでの軌跡

Poker Handleははじめ、わりとWordleに近いルールで実装していた。

  • ハンドは自分と相手1人の4枚が公開
  • 自分は相手よりも強い(役は同じでも数字のスコア的に上になる場合もある)ハンドになる
  • 場のカード5枚を完全一致で当てる

が、テストプレーしたりしてもらった段階でそうそうに「これはゲームにならないね」という結論に至った。 48枚の中から5枚を選択しようにも、組み合わせ爆発して試行回数が全然足りずに終わってしまう。 1枚正解が当てられれば良いほうになっていた。

Wordle(やほかのまだプレーされているクローン)は入力の組み合わせが比較的に少なく、こういった事故が基本的に起きない。 題材選びで差がでてしまったといえる。

いろいろ検討や調整の末、Poker Handleにはいくつかの独自要素を組み込むことになった。

  • 公開ハンドは自分と相手3人の8枚
  • 相手の役はオープン
  • flop, turn, river概念の導入
    • flip3枚は順不同で正解
  • 青パネル概念の導入
    • その数字の別スートがどこかに含まれている、というものを青パネルで表現することにした

これくらい仕様を追加しても4手が最速手になりがちなのは、トランプのカード枚数が多いのだからもうしょうがない気がしている。

inspired by Wordle and "Worldle"

Poker HandleはWordleだけでなくWorldleも参考にしている。 どのあたりを参考にしたかというと……i18n対応されているところだ。 Worldleはフランス語対応しているので、Poker Handleも真似して日本語対応してみたところがある。

(Worldleの挙動を確認するまでは、面倒なので英語オンリーでいいかなと考えていた)

派生物を作って思ったこと

Wordleは非常によくできている。 Simple is best を久々に思い知らされたし、それ以外にもいろいろと考えられている(と私は感じた)。

  • ルールがシンプルなので人々が挑戦しやすい
  • 回答候補が組み合わせ爆発しない
    • ゲームとして成立する
    • プレイヤーに考えることを要求する
  • モバイルでもPCでも同じ画面
    • UIによって個人差がでるということがない
  • アニメーション
    • ちょうどよいくらいの量
    • ないとチープに見えてしまうし、過剰だと邪魔
  • 統計表示
    • わかりやすい
  • シェア方法
    • 一部コンテキストを落としても結果を共有できる仕組みを考えたのがすごい
  • ヘルプが整備されている
    • 改めてそのシンプルさを思い知らされる

Worldleも、Wordle感を損なわずに大胆に題材や入出力を変えていて素晴らしい出来だと思う。

前述の2つに共通するものを考えてみたが、入力候補が少ない点(400個くらい?ちゃんと調べてないけど)と、題材がそこそこ身近な内容である点だろうか。 英単語は人によるだろうがそこそこ馴染みがあるだろうし、国というものも知らないわけではない。 ゲームプレーへの敷居が低いこともあって、一発ネタにとどまらずプレーされ続けているのではないかと考えている。

あえて問題点をあげるとするなら、2つのゲーム共に知識がクリアを左右しがちということだろうか。 Wordleは5文字の単語を連想できなければ始まらないし、Worldleは国の形や英語での国名を知っている必要がある。 やってみた人の何割かはこれが原因で1回しか挑戦しなかった、とかはありえるのではないか。

Wordleクローン実装は良い教材かもしれない

Webフロントエンド技術を用いた練習題材としてちょうどよいかもしれない、と思った。

  • serverを必要としない
    • データの保存はlocalstorage
  • ゲームの仕様自体はシンプル
  • そこそこコンポーネントを作る必要がある
  • PCとモバイル表示の調整
  • 入力データやアニメーションに関する状態をどう伝播させるか考える必要がある
  • イラスト等のデータが不要
  • 世の中に参考実装が公開されている
  • 1週間くらいで作れなくもない
    • 技量依存だけど

手軽さはもちろんTODO listとかだけど、選択肢としてはこっちもありなのではないだろうか。

まとめ

流行るものは流行る理由があるんだなぁ。