リクエスト詳細
✨ 既存アプリの改善
対応完了
対象アプリ: 合体ドロップ
タイトル画面モードカードに自己ベストの歴代順位相当を表示
1. 目的:
タイトル画面の各モードカードには現在「今日・今週・歴代の1位」と「端末内の自己ベスト」がそれぞれ表示されているが、自分の自己ベストが全体の中でどの程度の順位に相当するかは分からない。既存の rank_check.php (ゲームオーバー画面で使用中のGET専用API、mode と score を渡すと today_rank/weekly_rank/alltime_rank/alltime_total 等を返す) をタイトル画面からも再利用し、各モードの自己ベストに対する「歴代◯位相当 (/全△件)」の目安を追加することで、プレイヤーが上位を目指す動機付けを強化する。
2. 具体的な仕様:
- タイトル画面のモード選択カードの初期化処理で、localStorageに保存済みの自己ベストスコアが存在するモードについてのみ、`rank_check.php?mode=<mode>&score=<自己ベスト>` へ fetch を実行する。
- レスポンス中の `alltime_rank` と `alltime_total` を用いて、既存の自己ベスト表示行の下に小さな補助テキスト「歴代{alltime_rank}位相当 / 全{alltime_total}件」(英語表示時は "Ranked ~#{alltime_rank} of {alltime_total} all-time") を追加表示する。
- fetch 中は何も表示せず(または既存の「読込中」表現に準拠した薄いプレースホルダ)、失敗・タイムアウト時は補助テキストを表示せず既存の自己ベスト表示のみ残す(サイレントフェイル、他の取得と同様のtry/catchパターン)。
- 自己ベストが未保存(未プレイ)のモードでは通信を行わず、補助テキストも表示しない。
- スコア送信完了後にタイトルへ戻った際、既存の「今日/今週/歴代1位の更新」処理と同じタイミングで、この自己ベスト順位相当の表示も再取得・更新する。
- 表示はCSSで小さめのグレー系テキスト(例: font-size:11px程度)とし、モードカードのレイアウト幅を超えないよう折り返し対応する(スマホ幅で崩れないこと)。
3. 既存機能との整合:
- 新しいバックエンドAPIは追加せず、既存の rank_check.php (GET専用、CSRF不要、副作用なし)をそのまま呼び出すだけなのでサーバー側の変更は不要。
- 既存のモードカードの「今日/今週/歴代1位」表示、自己ベスト表示、モード選択・背景色切替などの挙動は一切変更しない。追加行として補助テキストを差し込むのみ。
- 通信失敗時は何も表示しないため、オフラインやAPI障害時でも既存のタイトル画面表示・プレイ開始フローに影響しない。
タイトル画面の各モードカードには現在「今日・今週・歴代の1位」と「端末内の自己ベスト」がそれぞれ表示されているが、自分の自己ベストが全体の中でどの程度の順位に相当するかは分からない。既存の rank_check.php (ゲームオーバー画面で使用中のGET専用API、mode と score を渡すと today_rank/weekly_rank/alltime_rank/alltime_total 等を返す) をタイトル画面からも再利用し、各モードの自己ベストに対する「歴代◯位相当 (/全△件)」の目安を追加することで、プレイヤーが上位を目指す動機付けを強化する。
2. 具体的な仕様:
- タイトル画面のモード選択カードの初期化処理で、localStorageに保存済みの自己ベストスコアが存在するモードについてのみ、`rank_check.php?mode=<mode>&score=<自己ベスト>` へ fetch を実行する。
- レスポンス中の `alltime_rank` と `alltime_total` を用いて、既存の自己ベスト表示行の下に小さな補助テキスト「歴代{alltime_rank}位相当 / 全{alltime_total}件」(英語表示時は "Ranked ~#{alltime_rank} of {alltime_total} all-time") を追加表示する。
- fetch 中は何も表示せず(または既存の「読込中」表現に準拠した薄いプレースホルダ)、失敗・タイムアウト時は補助テキストを表示せず既存の自己ベスト表示のみ残す(サイレントフェイル、他の取得と同様のtry/catchパターン)。
- 自己ベストが未保存(未プレイ)のモードでは通信を行わず、補助テキストも表示しない。
- スコア送信完了後にタイトルへ戻った際、既存の「今日/今週/歴代1位の更新」処理と同じタイミングで、この自己ベスト順位相当の表示も再取得・更新する。
- 表示はCSSで小さめのグレー系テキスト(例: font-size:11px程度)とし、モードカードのレイアウト幅を超えないよう折り返し対応する(スマホ幅で崩れないこと)。
3. 既存機能との整合:
- 新しいバックエンドAPIは追加せず、既存の rank_check.php (GET専用、CSRF不要、副作用なし)をそのまま呼び出すだけなのでサーバー側の変更は不要。
- 既存のモードカードの「今日/今週/歴代1位」表示、自己ベスト表示、モード選択・背景色切替などの挙動は一切変更しない。追加行として補助テキストを差し込むのみ。
- 通信失敗時は何も表示しないため、オフラインやAPI障害時でも既存のタイトル画面表示・プレイ開始フローに影響しない。
💬 返信 (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