Files
agomizi1cmandClaude Opus 5.5 dd39c043c4 Add player stats, in-table ranking, host seating and review return
- Stats page (/stats): play style radar (TAG/LAG/rock/fish), VPIP, PFR,
  ATS, 3bet, WTSD, W$SD, WWSF, per-street fold rate, aggression
  frequency, hand win rate and net in BB, per table type, each with a
  bands-and-explanation sheet. Hands are counted per human player when
  they finish and stored as totals under data/stats/, keyed by a hash
  of the player ID (sent in a POST body, never in the URL).
- Ranking sheet at the table: everyone seated, ordered by stack or by
  net (stack minus buy-ins), updating live.
- The host can reorder seats by dragging (with a mini table preview and
  shuffle). Takes effect immediately between hands, otherwise at the
  start of the next hand; the dealer button stays with the same player.
- The full-session review opens in the same tab and its back button
  returns to the table it was opened from.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 16:04:33 +09:00

80 lines
4.3 KiB
HTML

<!doctype html>
<html lang="ja">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, viewport-fit=cover">
<meta name="theme-color" media="(prefers-color-scheme: light)" content="#f2f2f7">
<meta name="theme-color" media="(prefers-color-scheme: dark)" content="#000000">
<meta name="robots" content="noindex, nofollow">
<title>統計 - Hold'em Night</title>
<link rel="icon" href="/assets/favicon.ico">
<link rel="stylesheet" href="/assets/style.css">
</head>
<body class="page-stats">
<header class="nav-bar" id="nav">
<div class="nav-inner">
<a class="nav-back" id="back" href="/"><svg class="i" viewBox="0 0 24 24" aria-hidden="true"><path d="M15 5l-7 7 7 7"/></svg><span id="back-label">ロビー</span></a>
<span class="nav-title"></span>
<button type="button" class="nav-action" id="refresh" aria-label="更新" title="更新">
<svg class="i" viewBox="0 0 24 24" aria-hidden="true"><path d="M19.5 12a7.5 7.5 0 1 1-2.2-5.3"/><path d="M19.5 4.5v4.2h-4.2"/></svg>
</button>
</div>
</header>
<main class="wrap stats-wrap">
<h1 class="large-title" id="title">統計</h1>
<!-- まとめ: プレイスタイルと主な数字 -->
<section id="view-summary">
<div class="st-card st-style" id="style-card" role="button" tabindex="0" aria-label="プレイスタイルの説明を開く"></div>
<div class="st-grid st-grid-2 mt-12" id="summary-tiles"></div>
<button type="button" class="btn btn-lg btn-block mt-12" id="see-all">すべての統計を見る</button>
</section>
<!-- すべての統計(テーブルの種類ごと) -->
<section id="view-all" hidden>
<div class="segmented st-tabs" id="mode-tabs" aria-label="テーブルの種類">
<button type="button" class="seg-btn active" data-mode="total">合計</button>
<button type="button" class="seg-btn" data-mode="chips">キャッシュ</button>
<button type="button" class="seg-btn" data-mode="friends">友人戦</button>
<button type="button" class="seg-btn" data-mode="cpu">CPU戦</button>
</div>
<div id="all-body"></div>
</section>
<p class="hint st-foot">統計はこのブラウザのプレイヤーIDごとに、ハンドが終わるたびに記録しています。別の端末やブラウザで遊んだ分は別に数えます。CPU戦にはレビュー付きCPU戦を含みます。</p>
</main>
<!-- 1つの数字の説明(段階・説明・共有) -->
<div class="sheet-backdrop" id="info-modal" hidden>
<div class="sheet st-info-sheet" role="dialog" aria-modal="true" aria-labelledby="info-title" tabindex="-1">
<div class="sheet-header" data-sheet-drag><span class="sheet-grabber" aria-hidden="true"></span></div>
<div class="sheet-scroll" id="info-body"></div>
<div class="sheet-footer">
<button type="button" class="btn btn-lg btn-block st-share" id="info-share">
<svg class="i" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3.5v11M8 7l4-3.5L16 7"/><path d="M8.5 10.5H7A2.5 2.5 0 0 0 4.5 13v5A2.5 2.5 0 0 0 7 20.5h10a2.5 2.5 0 0 0 2.5-2.5v-5a2.5 2.5 0 0 0-2.5-2.5h-1.5"/></svg>友達に共有
</button>
</div>
</div>
</div>
<!-- プレイスタイル4種類(横に送って見る) -->
<div class="sheet-backdrop" id="type-modal" hidden>
<div class="sheet st-info-sheet" role="dialog" aria-modal="true" aria-label="プレイスタイル" tabindex="-1">
<div class="sheet-header" data-sheet-drag><span class="sheet-grabber" aria-hidden="true"></span></div>
<div class="st-carousel" id="type-carousel"></div>
<div class="st-dots" id="type-dots" aria-hidden="true"></div>
<div class="sheet-footer">
<button type="button" class="btn btn-lg btn-block st-share" id="type-share">
<svg class="i" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3.5v11M8 7l4-3.5L16 7"/><path d="M8.5 10.5H7A2.5 2.5 0 0 0 4.5 13v5A2.5 2.5 0 0 0 7 20.5h10a2.5 2.5 0 0 0 2.5-2.5v-5a2.5 2.5 0 0 0-2.5-2.5h-1.5"/></svg>友達に共有
</button>
</div>
</div>
</div>
<script src="/assets/fluid.js"></script>
<script src="/assets/common.js"></script>
<script src="/assets/stats.js"></script>
</body>
</html>