このテトリスゲームは、さまざまなテトロミノブロック( 「I」 「O」 「Z」 「S」 「L」 「J」 「T」 )を使い、できるだけ多くのラインをそろえて消してスコアを稼ぐことを目指します。 ブロックの回転や位置調整を行い、画面上でブロックが積み上がりきらないようにプレイします。
- スコアシステム: ラインの消去数に応じてポイントを獲得。
- レベルアップ: 15 秒ごとに落下スピードが上昇。
- ゲーム開始: アプリケーションを起動し、"ゲーム画面へ"ボタンを押してください。
- 操作方法:
- 左に移動: [キー例:
←] - 右に移動: [キー例:
→] - 回転: [キー例:
↑] - 落下: [キー例:
スペースキー]
- 左に移動: [キー例:
- 目標: ラインを消去し、ブロックが画面上部まで積み上がらないようにします。
- スコアリング:
- 1 ライン消去: 100 ポイント
- 2 ライン消去: 200 ポイント
- 3 ライン消去: 400 ポイント
- テトリス (4 ライン): 800 ポイント
.
└── src/
├── assets/
│ ├── audio/
│ │ └── sound-effect 効果音
│ └── images 画像
├── game/
│ ├── app.js ゲームロジック
│ ├── board.js ゲームボード
│ ├── gemeSetting.js ゲーム設定
│ ├── score.js ゲームスコア
│ ├── sound.js ゲーム効果音
│ └── tetromino.js ミノ
├── pages/
│ ├── game.js ゲーム画面
│ ├── instruction.js 説明画面
│ └── top.js 初期画面
└── styles 各css
-
非機能要件である拡張性・保守性の向上:
- ゲーム設定項目の定数化
- ファイル分割を行い責務の分離
-
- 誰が見ても理解できるようにメソッドの役割と引数を記載
-
- 統一することで今回のコミット内容がコミットメッセージだけで理解できるように記載
-
良かった点:
- 作業内容を影響度ごとに分類し、高い影響度のタスクから優先的に対応することで効率的に実施した。
- レビュー指摘事項は速やかに対応することで、他の作業やスケジュールへの影響を最小限に抑えた。
-
改善点:
- プロジェクト開始段階でファイル分割をし、責務の分離をすべきだった。
- 自己レビュー段階でバグの発生確認をより行うべきだった(Jest などのテストが必要だった)。
-
ファイル分割の重要性:
- 機能ごとにファイルを分割することで、コードの再利用性やモジュール間の依存関係が整理され、メンテナンスが容易になる。さらに、ファイルが小さくなることで、特定の機能を素早く把握できるようになる。
-
責務の分離:
- クラスや関数が単一の責務に集中するように設計することで、保守性と可読性が向上する。特に大規模なコードベースでは、役割が明確に分離されていると、変更の影響範囲を特定しやすくなる。
-
GitHub の Project 利用
- かんばんと RoadMap を使用することで作業の進捗を把握管理しやすくなる。
-
ソースレビュー
- チームレビューを通して自身の不足部分を把握できた。
- 自分以外のソースを知ることができ、様々な書き方があることを知った。
- BGM の追加
- ホールド機能
- 画面の背景
- スコアランキング
- https://qiita.com/ki_ki33/items/35566f052af7b916607b
- https://zenn.dev/wakamsha/articles/about-conventional-commits
- https://zenn.dev/comm_vue_nuxt/articles/what-is-vite
- https://developer.mamezou-tech.com/blogs/2023/03/28/github-projects-new-roadmaps-layout/
ご覧いただきありがとうございます!楽しいゲームプレイをお楽しみください!