リクエスト詳細
✨ 既存アプリの改善
対応完了
対象アプリ: 合体ドロップ
ゲームオーバー時の順位プレビューに「今週」順位を追加
1. 目的:
v1.54.0でランキング画面に「今週」タブ(JST月曜始まり)が追加されたが、ゲームオーバー直後の順位プレビュー機能(pages/rank_check.php、v1.18.0で実装)は「今日」と「歴代」の相当順位しか返しておらず、「今週」だけプレビューできない。ランキング画面側の3指標(今日・今週・歴代)と、送信前プレビューの2指標(今日・歴代)がズレており、プレイヤーが「今週何位か」を知りたい場合はスコア送信後にランキング画面へ移動しないと分からない。今週分の相当順位もその場で確認できるようにし、体験を一貫させる。
2. 具体的な仕様:
- pages/rank_check.php を修正し、既存の today_rank/today_total/alltime_rank/alltime_total に加えて weekly_rank・weekly_total をレスポンスJSONに追加する。
- 週の範囲は既存の vd_jst_week_start() で取得したJST月曜日から jst_today() までとし、
`SELECT COUNT(*) FROM scores WHERE score_date BETWEEN ? AND ? AND mode = ? AND score > ?` (weekly_above) と
`SELECT COUNT(*) FROM scores WHERE score_date BETWEEN ? AND ? AND mode = ?` (weekly_total) の2クエリを追加。既存の today用・alltime用クエリ構造をそのまま流用する。
- weekly_rank = weekly_above + 1 として算出する。
- ゲームオーバー画面(play.php内のJS、順位プレビュー表示部分)に「今週 ○位 / ○人中」の行を、既存の「今日」「歴代」表示の間に追加する。ラベルは既存の label_weekly の翻訳キー(今日ja/en辞書に既にある 'label_weekly' => '今週' / 'This Week' 相当)を再利用する。
- 表示崩れを防ぐため、weekly_totalが0の場合は「今週まだデータがありません」等、既存の today_total=0 時のフォールバック表示と同様の処理を踏襲する。
3. 既存機能との整合:
- rank_check.php のレスポンスに新規フィールドを追加するのみで、既存の today_rank/alltime_rank 等のキー名・型は変更しない(後方互換)。
- 既存のスコア送信フロー(submit_score.php)、DBスキーマ、ランキング画面のタブ切替・自己ベスト表示・共有機能には影響しない。
- JS側は新フィールドが存在しない古いキャッシュ応答であっても、undefined チェックでプレビュー行を非表示にするなど安全に動作するようにする。
v1.54.0でランキング画面に「今週」タブ(JST月曜始まり)が追加されたが、ゲームオーバー直後の順位プレビュー機能(pages/rank_check.php、v1.18.0で実装)は「今日」と「歴代」の相当順位しか返しておらず、「今週」だけプレビューできない。ランキング画面側の3指標(今日・今週・歴代)と、送信前プレビューの2指標(今日・歴代)がズレており、プレイヤーが「今週何位か」を知りたい場合はスコア送信後にランキング画面へ移動しないと分からない。今週分の相当順位もその場で確認できるようにし、体験を一貫させる。
2. 具体的な仕様:
- pages/rank_check.php を修正し、既存の today_rank/today_total/alltime_rank/alltime_total に加えて weekly_rank・weekly_total をレスポンスJSONに追加する。
- 週の範囲は既存の vd_jst_week_start() で取得したJST月曜日から jst_today() までとし、
`SELECT COUNT(*) FROM scores WHERE score_date BETWEEN ? AND ? AND mode = ? AND score > ?` (weekly_above) と
`SELECT COUNT(*) FROM scores WHERE score_date BETWEEN ? AND ? AND mode = ?` (weekly_total) の2クエリを追加。既存の today用・alltime用クエリ構造をそのまま流用する。
- weekly_rank = weekly_above + 1 として算出する。
- ゲームオーバー画面(play.php内のJS、順位プレビュー表示部分)に「今週 ○位 / ○人中」の行を、既存の「今日」「歴代」表示の間に追加する。ラベルは既存の label_weekly の翻訳キー(今日ja/en辞書に既にある 'label_weekly' => '今週' / 'This Week' 相当)を再利用する。
- 表示崩れを防ぐため、weekly_totalが0の場合は「今週まだデータがありません」等、既存の today_total=0 時のフォールバック表示と同様の処理を踏襲する。
3. 既存機能との整合:
- rank_check.php のレスポンスに新規フィールドを追加するのみで、既存の today_rank/alltime_rank 等のキー名・型は変更しない(後方互換)。
- 既存のスコア送信フロー(submit_score.php)、DBスキーマ、ランキング画面のタブ切替・自己ベスト表示・共有機能には影響しない。
- JS側は新フィールドが存在しない古いキャッシュ応答であっても、undefined チェックでプレビュー行を非表示にするなど安全に動作するようにする。
💬 返信 (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/
ご利用ありがとうございます!
(deploy 自動リカバリにより通知が遅延した可能性があります。 DEPLOY-RECOVERY-01)
ご要望いただいた「合体ドロップ」を実装し、リリースいたしました。
【ご利用方法】
ダッシュボード: https://www.aiapps.jp/?action=dashboard
アプリ詳細: https://www.aiapps.jp/apps/show.php?slug=vegetable-drop
デモ環境は 1 時間以内に自動構築されます:
https://www.aiapps.jp/demo/vegetable-drop/
ご利用ありがとうございます!
(deploy 自動リカバリにより通知が遅延した可能性があります。 DEPLOY-RECOVERY-01)
Echo
Iris