GitHub Copilot Agent でテトリスを作るよ!
- ゲームボードの初期化: 10×20のグリッドを作成
- ボード状態の管理: 各セルの状態(空、占有、色情報)を追跡
- ボード描画: HTMLキャンバスまたはDIV要素でゲームボードを表示
- 7種類の基本ピース: I, O, T, S, Z, J, L
- ピースの生成: ランダムまたは順番でピースを生成
- ピースの回転: 時計回りに90度ずつ回転
- ピースの移動: 左右、下方向への移動
- 衝突検出: ピースが他のブロックや壁と衝突するかチェック
- キーボード入力:
- 左矢印キー: ピースを左に移動
- 右矢印キー: ピースを右に移動
- 下矢印キー: ピースを高速落下
- 上矢印キー: ピースを回転
- スペースキー: ピースを一気に落下(ハードドロップ)
- 自動落下: 一定時間ごとにピースが自動で下に移動
- ライン完成検出: 横一列が全て埋まった行を検出
- ライン消去: 完成した行を削除し、上の行を下に移動
- スコア計算: 消去したライン数に応じてスコアを加算
- レベルシステム: 消去したライン数に応じてゲーム速度を上昇
- ゲーム開始: 新しいゲームを開始
- ゲーム一時停止: ゲームを一時停止・再開
- ゲームオーバー: ピースが上端に達したときのゲーム終了
- ゲームリセット: ゲーム状態を初期状態にリセット
- メインゲーム画面: 現在のゲームボードとアクティブピースを表示
- 次のピース表示: 次に出現するピースをプレビュー
- スコア表示: 現在のスコア、レベル、消去ライン数を表示
- ゲームオーバー画面: 最終スコアとリスタートオプションを表示
- フレーム更新: 一定間隔でゲーム状態を更新
- 入力処理: キーボード入力を処理
- 物理演算: ピースの落下、衝突判定
- 描画更新: 画面の再描画
- HTML: ゲーム画面のレイアウトとUI要素
- CSS: スタイリングとアニメーション
- JavaScript: ゲームロジックと制御
- Canvas API: ゲームボードとピースの描画(推奨)
