リクエスト詳細
✨ 既存アプリの改善
対応完了
対象アプリ: 合体ドロップ
タイトル画面モードカードに「歴代1位」も表示
1. 目的:
タイトル画面の各モードカードでは現在「今日の1位」(v1.78.0時点で導入)と「今週の1位」(v1.78.0)が表示できるが、「歴代1位」はランキング画面まで移動しないと確認できない。モード選択時点でそのモードの歴代最高記録を提示することで、目標設定とプレイ意欲を高める。
2. 具体的な仕様:
- pages/play.php のモード情報構築処理に、既存の $today_top_scores・$weekly_top_scores と同様の仕組みで $alltime_top_scores を追加。各モードごとに `SELECT player_name, score FROM scores WHERE mode = ? ORDER BY score DESC, created_at ASC LIMIT 1` を実行し、結果を ['name' => ..., 'score' => ...] の連想配列として保持する。取得失敗時は既存の try/catch パターンに倣い空配列のままとし、ゲーム画面の表示は従来通り継続する。
- 各モードカード (.vd-mode-card) 内に、既存の data-today-top-mode / 相当の要素と並べて data-alltime-top-mode 属性を持つ小さなテキスト要素を追加し、「🏆歴代: {name} {score}pt」の形式で表示する (英語表示時は "All-time: {name} {score}pt")。データが無い場合は要素を空にして非表示 (display:none や空文字) にする。
- lib.php の t() 辞書に 'label_alltime_top' 等のキーを追加し、日本語/英語文言を定義する。
- v1.78.1 と同様に、スコア送信完了直後 (submit_score.php 呼び出し成功時) にタイトル画面へ戻った際も歴代1位表示が最新化されるよう、既存の今日/今週更新ロジックと同じ流れで歴代1位もJS側で該当データがあれば上書きする。
3. 既存機能との整合:
- 新しいDBクエリは読み取り専用の SELECT のみで、既存のscoresテーブルのスキーマ・インデックス (idx_mode_score) をそのまま利用できるため変更不要。
- 今日・今週の取得ロジック・エラー処理パターンを踏襲するため、取得できない場合でも既存のゲーム画面・モード選択機能は従来通り動作する。
- 新規追加のHTML要素・CSSクラスは既存レイアウトに影響しない位置に追加し、既存のモードカードのクリック挙動・選択状態には手を加えない。
タイトル画面の各モードカードでは現在「今日の1位」(v1.78.0時点で導入)と「今週の1位」(v1.78.0)が表示できるが、「歴代1位」はランキング画面まで移動しないと確認できない。モード選択時点でそのモードの歴代最高記録を提示することで、目標設定とプレイ意欲を高める。
2. 具体的な仕様:
- pages/play.php のモード情報構築処理に、既存の $today_top_scores・$weekly_top_scores と同様の仕組みで $alltime_top_scores を追加。各モードごとに `SELECT player_name, score FROM scores WHERE mode = ? ORDER BY score DESC, created_at ASC LIMIT 1` を実行し、結果を ['name' => ..., 'score' => ...] の連想配列として保持する。取得失敗時は既存の try/catch パターンに倣い空配列のままとし、ゲーム画面の表示は従来通り継続する。
- 各モードカード (.vd-mode-card) 内に、既存の data-today-top-mode / 相当の要素と並べて data-alltime-top-mode 属性を持つ小さなテキスト要素を追加し、「🏆歴代: {name} {score}pt」の形式で表示する (英語表示時は "All-time: {name} {score}pt")。データが無い場合は要素を空にして非表示 (display:none や空文字) にする。
- lib.php の t() 辞書に 'label_alltime_top' 等のキーを追加し、日本語/英語文言を定義する。
- v1.78.1 と同様に、スコア送信完了直後 (submit_score.php 呼び出し成功時) にタイトル画面へ戻った際も歴代1位表示が最新化されるよう、既存の今日/今週更新ロジックと同じ流れで歴代1位もJS側で該当データがあれば上書きする。
3. 既存機能との整合:
- 新しいDBクエリは読み取り専用の SELECT のみで、既存のscoresテーブルのスキーマ・インデックス (idx_mode_score) をそのまま利用できるため変更不要。
- 今日・今週の取得ロジック・エラー処理パターンを踏襲するため、取得できない場合でも既存のゲーム画面・モード選択機能は従来通り動作する。
- 新規追加のHTML要素・CSSクラスは既存レイアウトに影響しない位置に追加し、既存のモードカードのクリック挙動・選択状態には手を加えない。
💬 返信 (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