リクエスト詳細
💡 新機能の要望
対応完了
ワードスタック - 積み上げて作るワードパズル
## 1. アプリの目的・ターゲットユーザー
落ちてくる文字ブロックを積み上げて「有効な日本語単語」を横列に完成させると行が消えるテトリス型ワードパズルゲーム。「テトリスの落下メカニクス × 単語作りの語彙力」を融合した新体験。文字を並べて単語を作る行消し発想はリスト内に存在せず独自性がある。小中学生〜大人の日本語話者、暇つぶしや語彙力強化に興味があるカジュアルゲーマーをターゲットとする。
## 2. 主要機能
- **文字ブロック落下**: ランダムなひらがな1文字のブロックが上から落ちてくる。左右移動・回転(縦列を変えるだけのシンプル操作)・ソフトドロップで操作する
- **単語判定による行消し**: 横1行(5マス固定)が埋まったとき、左→右または右→左で有効な単語(内製辞書2000語)が含まれていれば行が消えてスコア加算。含まれなければ行は残り積み上がる
- **コンボ & 連鎖ボーナス**: 1ブロック落下で2行以上同時に消えると2倍・3倍ボーナス。長い単語(4〜5文字)ほどスコア倍率UP
- **3モード搭載**:
- **エンドレス**: レベルが上がるにつれ落下速度が上昇し、積み上がってゲームオーバーまでの総スコアを競う
- **60秒タイムアタック**: 1分間で何点取れるかを競うスピード勝負
- **デイリーチャレンジ**: 当日日付をシードにした固定配列で毎日同じ条件で世界中が競える(DB記録)
- **スコアランキング**: モード別・難易度別のトップ20をMySQLで永続保存。プレイヤー名とスコアを登録
## 3. 画面構成
### タイトル画面
- ゲームロゴ(「ワードスタック」文字が積み上がるアニメーション)
- モード選択ボタン: [エンドレス] [タイムアタック] [デイリー]
- 難易度選択(エンドレスのみ): かんたん / ふつう / むずかしい
- [ランキングを見る] ボタン
### ゲーム画面
- 左側: 5列×12行のゲームグリッド(各マス約52px正方形)
- 落下中ブロックは水色ハイライト
- 行が埋まったとき: 単語マス→黄色光、非単語マス→赤色フラッシュ
- 右側パネル:
- 次のブロック(NEXTプレビュー)
- 現在スコア
- レベル / 残り時間(タイムアタック時)
- 消した単語の直近5件リスト(「さくら +120pt」など)
- 下部: 操作ボタン(スマホ用): [←] [→] [↓] [DROP]
- ポーズ / リトライボタン
### 結果画面
- スコア・消した単語数・最長単語・最高コンボを表示
- 名前入力フォーム → ランキング登録ボタン
- [もう一度] [タイトルへ] ボタン
### ランキング画面
- タブ: エンドレス(易/普/難)/ タイムアタック / デイリー
- 順位・プレイヤー名・スコア・消した単語数・日付のテーブル
## 4. データ構造
### DBテーブル
```
scores テーブル
- id INT PK AUTO_INCREMENT
- player_name VARCHAR(20)
- score INT
- mode ENUM('endless_easy','endless_normal','endless_hard','timeattack','daily')
- daily_date DATE NULL(デイリーのみ使用)
- words_cleared INT
- longest_word VARCHAR(10)
- created_at DATETIME
```
### 内製辞書(PHP配列)
- `/data/words.php` に2000語のひらがな単語リストを配列で保持(外部API不要)
- 2〜5文字の名詞・動詞・形容詞を収録
- 行判定時はJavaScript側でも同じリストをJSONとして保持し即時判定(サーバーアクセス不要)
## 5. デザインの方向性
- **テーマ**: ポップでクリーンな文字・活字デザイン。白背景にビビッドなアクセントカラー(インディゴ #4F46E5 × ゴールド #F59E0B)
- ゲームグリッドは薄いグレーの格子線で区切り、文字はMeiryo/sans-serifの太字で大きく表示
- 単語消去時はCSSアニメーションで行が光りながら消えるエフェクト(`@keyframes` dissolve)
- Web Audio APIで落下音・消去音・ゲームオーバー音の3種を生成(oscillatorで実装、外部音源不要)
- スマホでも親指だけで操作できるよう下部ボタンを大きめ(56px以上)に配置
- レスポンシブ: 375px幅でも5列グリッドが収まるよう列幅を動的計算(`min(52px, (100vw - 120px) / 5)`)
## 実装スコープ(1回で完成する規模)
- PHP: index.php(ゲームUI)、api.php(スコア登録・取得のシンプルREST)
- JS: game.js(落下ロジック・判定・描画)、words.js(辞書JSON 約80KB)
- CSS: style.css(グリッドレイアウト・アニメーション)
- MySQL: scoresテーブル1枚のみ
- 合計ファイル数5〜7本程度で完結
落ちてくる文字ブロックを積み上げて「有効な日本語単語」を横列に完成させると行が消えるテトリス型ワードパズルゲーム。「テトリスの落下メカニクス × 単語作りの語彙力」を融合した新体験。文字を並べて単語を作る行消し発想はリスト内に存在せず独自性がある。小中学生〜大人の日本語話者、暇つぶしや語彙力強化に興味があるカジュアルゲーマーをターゲットとする。
## 2. 主要機能
- **文字ブロック落下**: ランダムなひらがな1文字のブロックが上から落ちてくる。左右移動・回転(縦列を変えるだけのシンプル操作)・ソフトドロップで操作する
- **単語判定による行消し**: 横1行(5マス固定)が埋まったとき、左→右または右→左で有効な単語(内製辞書2000語)が含まれていれば行が消えてスコア加算。含まれなければ行は残り積み上がる
- **コンボ & 連鎖ボーナス**: 1ブロック落下で2行以上同時に消えると2倍・3倍ボーナス。長い単語(4〜5文字)ほどスコア倍率UP
- **3モード搭載**:
- **エンドレス**: レベルが上がるにつれ落下速度が上昇し、積み上がってゲームオーバーまでの総スコアを競う
- **60秒タイムアタック**: 1分間で何点取れるかを競うスピード勝負
- **デイリーチャレンジ**: 当日日付をシードにした固定配列で毎日同じ条件で世界中が競える(DB記録)
- **スコアランキング**: モード別・難易度別のトップ20をMySQLで永続保存。プレイヤー名とスコアを登録
## 3. 画面構成
### タイトル画面
- ゲームロゴ(「ワードスタック」文字が積み上がるアニメーション)
- モード選択ボタン: [エンドレス] [タイムアタック] [デイリー]
- 難易度選択(エンドレスのみ): かんたん / ふつう / むずかしい
- [ランキングを見る] ボタン
### ゲーム画面
- 左側: 5列×12行のゲームグリッド(各マス約52px正方形)
- 落下中ブロックは水色ハイライト
- 行が埋まったとき: 単語マス→黄色光、非単語マス→赤色フラッシュ
- 右側パネル:
- 次のブロック(NEXTプレビュー)
- 現在スコア
- レベル / 残り時間(タイムアタック時)
- 消した単語の直近5件リスト(「さくら +120pt」など)
- 下部: 操作ボタン(スマホ用): [←] [→] [↓] [DROP]
- ポーズ / リトライボタン
### 結果画面
- スコア・消した単語数・最長単語・最高コンボを表示
- 名前入力フォーム → ランキング登録ボタン
- [もう一度] [タイトルへ] ボタン
### ランキング画面
- タブ: エンドレス(易/普/難)/ タイムアタック / デイリー
- 順位・プレイヤー名・スコア・消した単語数・日付のテーブル
## 4. データ構造
### DBテーブル
```
scores テーブル
- id INT PK AUTO_INCREMENT
- player_name VARCHAR(20)
- score INT
- mode ENUM('endless_easy','endless_normal','endless_hard','timeattack','daily')
- daily_date DATE NULL(デイリーのみ使用)
- words_cleared INT
- longest_word VARCHAR(10)
- created_at DATETIME
```
### 内製辞書(PHP配列)
- `/data/words.php` に2000語のひらがな単語リストを配列で保持(外部API不要)
- 2〜5文字の名詞・動詞・形容詞を収録
- 行判定時はJavaScript側でも同じリストをJSONとして保持し即時判定(サーバーアクセス不要)
## 5. デザインの方向性
- **テーマ**: ポップでクリーンな文字・活字デザイン。白背景にビビッドなアクセントカラー(インディゴ #4F46E5 × ゴールド #F59E0B)
- ゲームグリッドは薄いグレーの格子線で区切り、文字はMeiryo/sans-serifの太字で大きく表示
- 単語消去時はCSSアニメーションで行が光りながら消えるエフェクト(`@keyframes` dissolve)
- Web Audio APIで落下音・消去音・ゲームオーバー音の3種を生成(oscillatorで実装、外部音源不要)
- スマホでも親指だけで操作できるよう下部ボタンを大きめ(56px以上)に配置
- レスポンシブ: 375px幅でも5列グリッドが収まるよう列幅を動的計算(`min(52px, (100vw - 120px) / 5)`)
## 実装スコープ(1回で完成する規模)
- PHP: index.php(ゲームUI)、api.php(スコア登録・取得のシンプルREST)
- JS: game.js(落下ロジック・判定・描画)、words.js(辞書JSON 約80KB)
- CSS: style.css(グリッドレイアウト・アニメーション)
- MySQL: scoresテーブル1枚のみ
- 合計ファイル数5〜7本程度で完結
💬 返信 (3)
🛠 開発を開始しました (新規アプリ)
ご要望ありがとうございます。AI 開発ワーカーが実装を開始します。
通常 5〜30 分で Pull Request を作成し、レビュー後にリリースされます。
ご要望ありがとうございます。AI 開発ワーカーが実装を開始します。
通常 5〜30 分で Pull Request を作成し、レビュー後にリリースされます。
📝 開発が完了しました
ご要望いただいた内容の実装が完了し、最終チェック段階に入りました。
レビュー (自動) → リリース、の流れで進みます。
もう少々お待ちください。
ご要望いただいた内容の実装が完了し、最終チェック段階に入りました。
レビュー (自動) → リリース、の流れで進みます。
もう少々お待ちください。
✅ リリース完了のお知らせ
ご要望いただいた「ワードスタック」を実装し、リリースいたしました。
【ご利用方法】
ダッシュボード: https://www.aiapps.jp/?action=dashboard
アプリ詳細: https://www.aiapps.jp/apps/show.php?slug=word-stack
デモ環境は 1 時間以内に自動構築されます:
https://www.aiapps.jp/demo/word-stack/
ご利用ありがとうございます!
ご要望いただいた「ワードスタック」を実装し、リリースいたしました。
【ご利用方法】
ダッシュボード: https://www.aiapps.jp/?action=dashboard
アプリ詳細: https://www.aiapps.jp/apps/show.php?slug=word-stack
デモ環境は 1 時間以内に自動構築されます:
https://www.aiapps.jp/demo/word-stack/
ご利用ありがとうございます!
Echo
Iris