リクエスト詳細
✨ 既存アプリの改善
対応完了
対象アプリ: 合体ドロップ
ゲームオーバー画面の順位表示に「上位◯%」パーセンタイルを追加
1. 目的:
v1.105.0で追加された「今日・昨日・今週・今月・歴代の何位相当か」表示は、総参加者数が変動するため順位の絶対値だけでは達成度が伝わりにくい(例: 歴代50位でも母数が60件なら上位、6000件なら平凡)。既存の rank_check.php が既に各期間の above件数とtotal件数を取得済みなので、これを使って「上位◯%」を追加表示し、達成感とやり込み動機を高める。
2. 具体的な仕様:
- pages/rank_check.php の JSON 出力に、既に計算済みの *_rank と *_total から算出した percentile を追加する。計算式: percentile = total > 0 ? ceil(rank / total * 100) : null。today_percentile, yesterday_percentile, weekly_percentile, monthly_percentile, alltime_percentile の5キーを追加し、totalが0(参加者0件、通常は自分がまだ未送信なので発生しないが念のため)の場合は null を返す。
- 既存の today_rank / today_total 等のキーは変更せず維持する(後方互換)。
- ゲームオーバー画面のJS側で、順位表示(例:「歴代 12位 / 300人中」)の直後に「(上位4%)」のような小さいバッジを追加表示する。percentileがnullの場合はバッジを非表示にする。
- 日本語表示は「上位◯%」、英語表示は「Top ◯%」とし、既存の t() 翻訳辞書に 'top_percent_ja' / 'top_percent_en' 相当のフォーマット文字列を追加(例: 'top_percent' => '上位%d%%' / 'Top %d%%')。
- percentileが1%未満(rank=1など)の場合は「上位1%未満」「Top <1%」の特別表記にする(rank=1 かつ total>=100のケースなど、100人中1位なら1%とちょうど表示されるが、視認性のため rank===1 かつ total>1 の場合は「トップ!」/「#1!」の特別表記も検討可、必須ではない)。
- 表示位置はモード切替クイックリプレイアイコンより上、既存の順位テキストの隣に小さめのフォントで配置し、レイアウト崩れを防ぐ。
3. 既存機能との整合:
- rank_check.php のレスポンス形式は既存キーを維持したままキー追加のみなので、キャッシュ済みJSやテスト済みAPI呼び出しに影響しない。
- ゲームオーバー画面のJSは、新キーが存在しない場合(旧バージョンのAPIキャッシュ等)にも壊れないよう、typeof チェックで安全にフォールバック(バッジ非表示)する。
- 文字サイズ設定・テーマ設定・多言語対応には影響を与えず、既存の t() 辞書拡張のみで対応する。
v1.105.0で追加された「今日・昨日・今週・今月・歴代の何位相当か」表示は、総参加者数が変動するため順位の絶対値だけでは達成度が伝わりにくい(例: 歴代50位でも母数が60件なら上位、6000件なら平凡)。既存の rank_check.php が既に各期間の above件数とtotal件数を取得済みなので、これを使って「上位◯%」を追加表示し、達成感とやり込み動機を高める。
2. 具体的な仕様:
- pages/rank_check.php の JSON 出力に、既に計算済みの *_rank と *_total から算出した percentile を追加する。計算式: percentile = total > 0 ? ceil(rank / total * 100) : null。today_percentile, yesterday_percentile, weekly_percentile, monthly_percentile, alltime_percentile の5キーを追加し、totalが0(参加者0件、通常は自分がまだ未送信なので発生しないが念のため)の場合は null を返す。
- 既存の today_rank / today_total 等のキーは変更せず維持する(後方互換)。
- ゲームオーバー画面のJS側で、順位表示(例:「歴代 12位 / 300人中」)の直後に「(上位4%)」のような小さいバッジを追加表示する。percentileがnullの場合はバッジを非表示にする。
- 日本語表示は「上位◯%」、英語表示は「Top ◯%」とし、既存の t() 翻訳辞書に 'top_percent_ja' / 'top_percent_en' 相当のフォーマット文字列を追加(例: 'top_percent' => '上位%d%%' / 'Top %d%%')。
- percentileが1%未満(rank=1など)の場合は「上位1%未満」「Top <1%」の特別表記にする(rank=1 かつ total>=100のケースなど、100人中1位なら1%とちょうど表示されるが、視認性のため rank===1 かつ total>1 の場合は「トップ!」/「#1!」の特別表記も検討可、必須ではない)。
- 表示位置はモード切替クイックリプレイアイコンより上、既存の順位テキストの隣に小さめのフォントで配置し、レイアウト崩れを防ぐ。
3. 既存機能との整合:
- rank_check.php のレスポンス形式は既存キーを維持したままキー追加のみなので、キャッシュ済みJSやテスト済みAPI呼び出しに影響しない。
- ゲームオーバー画面のJSは、新キーが存在しない場合(旧バージョンのAPIキャッシュ等)にも壊れないよう、typeof チェックで安全にフォールバック(バッジ非表示)する。
- 文字サイズ設定・テーマ設定・多言語対応には影響を与えず、既存の t() 辞書拡張のみで対応する。
💬 返信 (3)
🛠 開発を開始しました (機能追加: vegetable-drop)
ご要望ありがとうございます。AI 開発ワーカーが実装を開始します。
通常 5〜30 分で Pull Request を作成し、レビュー後にリリースされます。
ご要望ありがとうございます。AI 開発ワーカーが実装を開始します。
通常 5〜30 分で Pull Request を作成し、レビュー後にリリースされます。
📝 開発が完了しました
ご要望いただいた内容の実装が完了し、最終チェック段階に入りました。
レビュー (自動) → リリース、の流れで進みます。
もう少々お待ちください。
ご要望いただいた内容の実装が完了し、最終チェック段階に入りました。
レビュー (自動) → リリース、の流れで進みます。
もう少々お待ちください。
✅ リリース完了のお知らせ
ご要望いただいた「合体ドロップ」を実装し、リリースいたしました。
【ご利用方法】
ダッシュボード: https://www.aiapps.jp/?action=dashboard
アプリ詳細: https://www.aiapps.jp/apps/show.php?slug=vegetable-drop
デモ環境は 1 時間以内に自動構築されます:
https://www.aiapps.jp/demo/vegetable-drop/
ご利用ありがとうございます!
ご要望いただいた「合体ドロップ」を実装し、リリースいたしました。
【ご利用方法】
ダッシュボード: https://www.aiapps.jp/?action=dashboard
アプリ詳細: https://www.aiapps.jp/apps/show.php?slug=vegetable-drop
デモ環境は 1 時間以内に自動構築されます:
https://www.aiapps.jp/demo/vegetable-drop/
ご利用ありがとうございます!
Echo
Iris