Skip to content

Latest commit

 

History

History
85 lines (67 loc) · 6.14 KB

File metadata and controls

85 lines (67 loc) · 6.14 KB

CHroS 要件定義

更新: 2026-09-18。今回の依頼者の補足を優先し、対人戦の記録と掲示をつなぐ試作を作成した。 動作確認の手順と自主判断は 試作提案・判断記録、実装の構成は 技術要件、一次資料の調査は 大会ルール調査 を参照。

目的

「誰と誰が戦い、何点取り、どの条件で勝ったか」をスプレッドシートより簡単かつ確実に 記録・計算・集計する。その結果を会場の掲示画面につなぎ、大会の進行に合わせて表示する。 試合サーバーとは接続せず、運営が各戦の終了時に結果を入力する。

対象と大会進行

  • 主対象は釧路大会。現在の対象は 対人戦のみ。Bot戦は実装しない。
  • 予選は総当たり。本戦は勝ち抜きトーナメント。
  • 多人数時はグループ内で総当たりを行い、原則各組上位2名が本戦へ進む。 グループの割り当ては運営が行う。進出人数は設定できる。
  • 1試合は2戦。第1戦の先攻・後攻はじゃんけんで決めた結果を入力し、第2戦で交代する。
  • 旭川向けには対人戦の計算方式を選択できる。Bot予選を含む旭川大会全体の再現は対象外。
  • 全国交流大会は詳細な規則が未確認。全国用のプリセットがあるとは表示しない。

得点・結果の管理

  1. 参加者、所属、予選グループを登録・編集する。
  2. 各組の総当たり表を生成し、対戦者と先攻・後攻を確定する。
  3. 各戦の取得得点、勝因、特殊勝利の勝者を記録する。必要な方式では残りターン数も入力する。
  4. 2戦の集計結果、試合の勝者、判定根拠を示し、予選順位に反映する。
  5. 同点の試合は勝者を推定せず、両戦を無効にして再試合できるようにする。
  6. 記録済み結果の訂正には理由を残し、修正前の値を履歴で追えるようにする。
  7. 予選終了後に進出者とシード順を確認して本戦を生成する。同順位の裁定理由も保存する。
  8. 本戦の勝者を次の試合へ反映する。不戦枠にも対応する。
  9. CSVで各戦の結果、JSONで全記録・計算方式・操作履歴を取り出せるようにする。

特殊ポイント

依頼者の説明に従い、特殊ポイントは勝因をわかりやすくまとめる 抽象化 とする。 PUT・包囲・相手の通信切断などによる勝利を同じ1特殊Pとして扱う。 防げる敗因をプログラムで防げていないことを重く見る、という導入背景も踏まえる。 数値にまとめても、元の勝因と素点は消さない。

試作の釧路向け判定は 2戦の特殊P合計 → 得点合計 → 完全同値なら再試合 とする。 特殊Pの優先順位と、予選順位の 試合勝数 → 特殊P → 得点 は試作の自主判断であり、 依頼者に確認してもらう項目として記録する。公開資料だけで確定した公式計算式とは呼ばない。

旭川向けの対人戦は ゲーム勝数 → 換算得点合計 → 再試合 とする。 PUT・相手による包囲で敗れた側は0点、自分に起因する通信切断・移動違反・自己包囲で 敗れた側は残りターン数の負点に換算し、生の得点を保存する。

掲示と操作

表示 内容
進行案内 開会式、予選、本戦、休憩、閉会式の現在の区分
対戦・得点 対戦者、所属、各戦終了後の得点、特殊P、記録済み戦数
試合結果 勝者、合計値、勝敗を決めた比較基準、各戦の勝因
予選順位 グループ別順位、勝敗、特殊P、得点、全体の消化試合数
本戦表 組み合わせ、勝者、次の試合への進出
幕間・ロゴ 登録したロゴまたは標準ロゴ、現在の進行区分
  • OBSのシーン操作に相当する6つの画面ボタンで掲示内容を切り替える。
  • 進行区分と掲示対象の試合は明示的に選ぶ。得点保存だけで表示画面を勝手に変えない。
  • 表示順に名前・進行区分・画面を登録し、並べ替え・追加・削除できる。 当日は任意の項目、または「次へ」で進める。時刻による自動再生は行わない。
  • 試合用の表示順は、現在の「掲示対象の試合」を参照する。試合ごとの固定指定は今後の拡張。
  • 大きな順位表・本戦表はページに分け、運営側から掲示ページを切り替える。
  • 運営画面内のプレビューと /display は同一の表示部品を使う。
  • 掲示は「各戦終了後の値」であることを明示する。試合中のリアルタイム得点は将来のサーバー連携で扱う。

データと運用

  • 会場LAN内で単一サーバーを使い、運営画面と掲示画面をブラウザーで開く。
  • 保存成功後に全画面へ通知する。別端末の同時更新で古い結果を上書きしない。
  • サーバー再起動後も記録が残り、掲示は再接続すると現在の状態に戻る。
  • 後続の試合が開始済みなら、進出者を変える結果訂正を拒否する。
  • 本戦作成後の予選結果変更、試合開始後の計算方式変更は拒否する。
  • 認証は従来要件どおり設けない。インターネットへの公開を想定しない。
  • 初回は架空の参加者によるサンプルを表示し、空の大会を作成できるようにする。

今回は実装しないもの

Bot戦、試合サーバー連携、マップ管理、審判判断の自動化、タイマーによる画面再生、 任意の計算式を組むノードエディター、全国大会固有ルール、複数大会の同時進行。 ノード式・PostgreSQLなどの従来構想は 将来検討用の技術設計 に残す。 まず記録から掲示までの基本操作を評価し、その結果で拡張の順番を決める。