要件定義 - Recursion-Group-C/card-game GitHub Wiki

はじめに

このテンプレートをベースに要件定義を行う。

目的

以下のトランプゲームでCPUと対戦ができること。ブラウザ上で動作するゲームの実装を最優先し、ログイン機能などを追加していくことを目標とする。

  • Blackjack
  • Rummy
  • War
  • Speed
  • Poker
  • Texas Hold'em Poker

概要

システム方式・構成

設計を参照。

利用者一覧

Webでアクセスしてきたユーザー

機能要件

必須要件

  • Easy, Medium, Hardの3つの難易度で、敵のCPUと対戦できること。
  • ルール、勝利条件、プレイヤー数が異なる以下のトランプゲームモードに対応すること。
    • Blackjack(2-7人 -> CPUはPlayerに影響を与えないため、House vs Playerに変更する)
    • Rummy(2-4人)
    • War(2人)
    • Speed(2人)
    • Poker(2-10人)
    • Texas Hold'em Poker(2-10人)
  • Blackjack, Poker, Texas Hold'em Poker
    • 各プレイヤーがゲームに参加するために満たさなければならない最低入札要件がある。もしプレイヤーが最低入札額を満たすことができなければ、ゲームに負けることになる。
  • Rummy, War, Speed
    • 点数制のゲームで、最も高い点数を獲得した人が勝者となる。
  • ユーザーの手が有効かどうかをチェックするバリデーションがあること。
  • 各ゲームモードに、ユーザーがゲームのプレイ方法を学ぶことができる簡単なチュートリアルがあること。
  • 各ゲームモードに、ユーザーがゲームのルールを理解するためのチートシートメニューがあること。

追加要件

  • ログインしなくてもプレーできること
  • ログインしなくても直近のゲーム成績が確認できること
  • ログインすると、通算のゲーム成績が確認できること
  • ゲームのラウンド数の設定ができること(ゲームによって分けた方がいいかも)
  • ログインすると、過去のゲームで得たお金を継続して使用できること
  • ログインすると、全ユーザーの所持金ランキングが確認できること
  • サウンドのON/OFFを切り替えられること

余裕があれば対応する要件

  • Webアプリへのリンク、またはアプリの最新バージョンをダウンロードできるホームページを用意すること

画面

  • ホーム画面
  • 各ゲーム画面
  • 通算成績・ランキング画面
  • サインイン・サインアップ画面
  • パスワード再設定画面
  • 退会画面

権限

Adminユーザーだけが、登録ユーザーの情報を確認できる

情報・データ

本システムでは以下のデータが作成される。

  • ユーザー情報
    • Email Address
    • Password
    • ユーザー名
    • ゲーム内の所持金
  • ゲーム設定
    • vs CPUの数
    • サウンド設定
    • 初めてのプレーかどうか(チュートリアルの表示の判断に使う)
  • ゲーム成績
    • プレー日
    • 勝ち・負け、順位(実際にプレーしてみて考える)
    • お金の変動(時系列グラフで表示したい)
    • 所持金ランキング(時系列で表示したい)

非機能要件

必須要件

  • コードベースが、将来的にトランプゲームのモードを簡単に追加できるように拡張可能な状態になっていること。
  • アプリは、ユーザーにとってシンプルでわかりやすく感じられ、混乱や遅延なく効果的に使い始めることができること。
  • どのデバイスでも正しく表示されること。
  • ソフトウェアのデザインとユーザーインターフェースが最新で視覚的に魅力的であること。

余裕があれば対応する要件(ブラウザ版の開発を優先する)

  • ソフトウェアが、クロスプラットフォームであること。ウェブアプリ(ブラウザ)としてアクセスできるほか、デスクトップアプリ(Windows、Linux、Mac)、モバイルアプリ(iOS、Android)としてダウンロードすることができること。
  • インストールするデバイスやオペレーティングシステムの種類にかかわらず、ソフトウェアのインストールプロセスがシンプルで効率的であること。これにより、ソフトウェアはすべてのプラットフォームで簡単かつ迅速にインストールできるようになる。
  • ユーザーがソフトウェアをダウンロードできるページには、常に最新のバージョンがダウンロード可能でなければならないこと。

スケジュール

Sprint 内容
Sprint1 (~2023/03/18) 要件確認、設計
Sprint2 (~2023/03/25) チュートリアルの実施、ベースプロジェクトの作成
Sprint3 (~2023/04/01) War, Speed, Blackjackの開発
Sprint4 (~2023/04/08) War, Speed, Blackjackの開発を4/5で完了する
4/5~ Porker, Texas Hold'em Porker, Rummyの開発、リファクタリング
Sprint5 (~2023/04/15) Porker, Texas Hold'em Porker, Rummyの開発、既存ゲームのリファクタリング、デザイン修正、ホーム画面の追加、ログイン機能の追加(余裕があれば)
Sprint6 (~2023/04/22) リファクタリング、CPUの難易度調整、クロスプラットフォームへの対応、ランキング等のログインが必要な機能の追加
⚠️ **GitHub.com Fallback** ⚠️