matchweave 利用ガイド
matchweave は、テニスやバドミントンなどラケットスポーツの ダブルス対戦表をランダムに自動生成する スマートフォンアプリです。選手登録から大会セットアップ、試合進行、スコア記録、履歴閲覧までを 1 つのアプリで完結できます。
このドキュメントは、はじめてアプリを使う方を対象に、典型的な操作の流れに沿って画面ごとの操作方法を説明します。
目次
- アプリ全体の構成
- はじめに行うこと: 選手を登録する
- 大会を作成する
- 試合を運営する(進行中の大会)
- スコアを入力する
- 大会を終了する
- 履歴を見る
- 設定を変更する
- 利用規約・プライバシーポリシー・ライセンスを見る
- 試合生成アルゴリズムについて
- よくある質問
1. アプリ全体の構成
アプリ起動時、画面下部に以下 3 つのタブを持つナビゲーションバーが表示されます。アプリは 「試合管理」タブ から始まります。
| タブ | アイコン | 役割 |
|---|---|---|
| 選手 | 人型アイコン | 選手の登録・編集・削除を行う |
| 試合 | ラケットアイコン | 進行中の大会一覧、新規大会の作成 |
| 履歴 | トロフィーアイコン | 完了した大会の閲覧 |
「試合」タブの右上には次の 2 つのアイコンがあります。
- 歯車アイコン (設定): スコア入力方法の切り替えなど、アプリ全体の設定
- ⓘ アイコン (情報): 利用規約 / プライバシーポリシー / ライセンス
2. はじめに行うこと: 選手を登録する
大会を作るには 最低 4 名 の選手登録が必要です。まずは「選手」タブで参加メンバーを追加しましょう。
2-1. 選手を 1 人ずつ追加する
- 画面下部の 「選手」タブ をタップ。
- 右下の 「選手を追加」FAB(フローティングアクションボタン) をタップ。
- ダイアログが開きます。タブのうち 「1 人ずつ」 が選択された状態で、
- 選手名 (必須)を入力
- チーム名 (任意)を入力
- 「追加」 ボタンで確定。
同じ「選手名 + チーム名」の組み合わせはエラーになり登録できません。
区別したい場合はチーム名を変えるか、選手名を変更してください。
2-2. 選手をまとめて追加する(複数追加)
大人数を一度に登録したいときは、ダイアログ上部のセグメントから 「複数追加」 を選びます。
- 「選手を追加」FAB から開いたダイアログで 「複数追加」 タブをタップ。
- 複数行のテキストフィールドに 1 行 1 名ずつ 選手名を入力します。
田中 鈴木 佐藤 - 「追加」 をタップすると、入力した人数が一括登録され、追加された人数がスナックバーで通知されます。
複数追加モードではチーム名は登録できません。後から個別に編集してください。
2-3. 選手を編集・削除する
「選手」タブの一覧で各カードをタップすると編集ダイアログが開きます。 - 鉛筆アイコン: 名前・チーム名を編集 - ゴミ箱アイコン: 削除(確認ダイアログが表示されます)
削除した選手は登録一覧から消えますが、過去の大会履歴には選手名が残ります。
2-4. 登録人数を確認する
「選手」タブの右上に 現在の登録人数 が表示されます(例: 12 名)。
3. 大会を作成する
3-1. 大会作成画面を開く
- 「試合」タブ に移動。
- 進行中の大会がない場合: 中央の「大会を作成する」ボタン、または右下の 「新しい大会」FAB をタップ。
- 既に進行中の大会がある場合: 右下の 「新しい大会」FAB をタップ。
3-2. 基本情報を入力する
| 項目 | 必須 | 説明 |
|---|---|---|
| 大会名 | ✅ | 大会の名称(例: 週末練習会) |
| 開催日 | ✅ | 入力欄をタップしてカレンダーから選択。デフォルトは今日 |
| 開催場所 | – | 任意(例: 市民体育館) |
3-3. コート数を設定する
「コート数」セクションの − / + ボタンで増減します。デフォルトは 2 面。1 面以上 が必須です。
3-4. 参加選手を選ぶ
参加選手セクションでは、登録済みの選手から 4 名以上 を選択します。チェックボックスでオン/オフを切り替えてください。
選択中の人数は画面右上に 「○○名選択中」 として表示されます。
検索する
人数が多い場合は 「選手を検索」 欄に入力すると、選手名・チーム名で絞り込めます。✕ アイコンで検索をクリア。
「最近参加」セクション
過去の大会に参加した選手は 「最近参加」 として上部にまとまって表示されます。よく参加するメンバーをすばやく選べます。
前回大会から複製する
「前回大会から複製」ボタンをタップすると過去の大会一覧が表示され、選んだ大会の参加メンバーを そのまま選択状態に取り込み ます。 - すでに削除済みの選手は自動的に除外されます。 - 既に選択中の選手とマージされ、重複なく追加されます。
3-5. 大会を作成する
画面下部の 「大会を作成する」 ボタンをタップ。 - 4 名未満の場合は警告が出て進めません。 - 作成に成功すると、自動的に 進行中の大会画面 に遷移します。
4. 試合を運営する(進行中の大会)
進行中の大会画面は次の要素で構成されています。
4-1. 画面上部のヘッダー
大会名(AppBar)、開催日、コート数、開催場所をカード形式で表示。
4-2. コートセクション
各コートが 1 枚のカードとして縦に並びます。
| 状態 | 表示 | 内容 |
|---|---|---|
| 試合中 | 青い「試合中」バッジ | 対戦中の 2 ペアと VS 表示。タップでスコア入力 |
| 空き | 緑の「空き」バッジ + 点線枠 | コートが使われていない |
使用中 X / Y の表記で、現在使われているコート数が一目でわかります。
4-3. 試合を生成する
画面下部に常に表示される 「試合を生成する」 ボタンが、対戦表を自動生成する中核機能です。
生成の条件: - 待機中の選手が 4 名以上 - 空きコートが 1 面以上
ボタンをタップすると、空きコートの数だけランダムな対戦カードが組まれ、各コートに割り当てられます。 詳細は 10. 試合生成アルゴリズムについて を参照してください。
条件を満たさない場合、ボタンはグレーアウトされて押せません。
4-4. 待機中の選手
現在試合に参加していないアクティブな選手が チップ形式 で並びます。 - 各チップ右側の 「ログアウト」アイコン をタップすると、その選手を 「退場中」 に切り替えられます。 - 例: 早めに帰る人、けがで途中休憩する人など。 - 退場中の選手は試合生成の対象外になります。
4-5. 退場中の選手
途中退場した選手は 「退場中の選手」 セクションに移動します。チップをタップすると、再びアクティブ(待機中)に戻ります。
4-6. 大会の途中から選手を追加する
「待機中の選手」セクション右上の 「人を追加」アイコン をタップ。 - 大会未参加かつ登録済みの選手の一覧が表示され、タップで追加できます。
4-7. 大会メニュー(︙)
AppBar 右上の 「⋮」(三点メニュー) から、以下の操作が行えます。
コート数を変更する
−/+で新しいコート数を選択し、「変更」をタップ。- 試合中のコートがあるため減らせない場合 はエラーメッセージが表示されます。一度該当の試合を完了させてから再度試してください。
大会を終了する(→ 6. 大会を終了する)
4-8. 完了した試合
その大会で完了済みの試合がある場合、画面下部に 「完了した試合」 セクションが表示されます。 - 勝利チームには 🏆 アイコンと太字、優勝色が付きます。 - スコア表示でどちらが勝ったか一目で確認できます。
5. スコアを入力する
試合中のコートカードをタップすると、結果入力ダイアログが開きます。
入力方式は 設定画面で切り替え可能 です(→ 8-1. スコア入力方式)。
5-1. 「スコアを入力」モード(デフォルト)
両チームのスコアを数値で入力。 1. 各チームの数値入力欄に得点を入力。 2. 「確定」 をタップ。
数値が入力されていないときはスナックバーで再入力が促されます。
5-2. 「勝ち負けのみ」モード
勝者を タップひとつで 記録できる軽量モード。 1. 勝利したチームのボタン(チーム名表示)をタップ。 2. その時点で確定します(追加の確認はありません)。
このモードでは内部的に勝者
1、敗者0のスコアが保存されます。
スコアを確定すると: - そのコートの試合は 完了済み に移ります。 - 4 人の選手は 待機中 に戻ります。 - 「完了した試合」セクションに記録が積み上がります。
6. 大会を終了する
すべての試合が終わったら、AppBar 右上の 「⋮」 → 「大会を終了する」 で大会をクローズします。
- 確認ダイアログで 「終了する」 をタップ。
- 大会のステータスが「完了」になり、自動的に 「履歴」タブ に遷移します。
この操作は取り消せません。 終了後はスコア入力や試合生成などの編集はできなくなります。
7. 履歴を見る
「履歴」タブには 完了済みの大会 が新しい順に並びます。各カードをタップすると詳細画面が開きます。
7-1. 大会詳細画面
大会情報カード
日付・場所・コート数を確認できます。
選手成績テーブル
- 参加選手ごとに 試合数 / 勝利数 を表示。
- 勝利数の多い順 に並び替えられ、1 位には 🏆 マークが付きます。
試合結果一覧
- 完了した全試合のスコアと勝敗が時系列で表示されます。
- 勝利チームには 🏆 と太字。
スコアが入っていない試合(万が一データが欠けている場合)は
–と表示されます。
8. 設定を変更する
「試合」タブ右上の 歯車アイコン から「設定」画面を開きます。
8-1. スコア入力方式
「対戦結果の入力方法」セクションで選択肢をタップすると、即時に保存されます。
| モード | 用途 |
|---|---|
| スコアを入力 | チームごとの得点を数値で記録(試合のレベル感や得点差まで残したい場合) |
| 勝ち負けのみ | 勝者をタップするだけで完了(さくっと進めたいカジュアル戦向き) |
設定はアプリ全体・大会横断で適用されます。次回起動時にも保持されます。
9. 利用規約・プライバシーポリシー・ライセンスを見る
「試合」タブ右上の ⓘ アイコン から「情報」画面を開きます。
| 項目 | 動作 |
|---|---|
| 利用規約 | タップで端末の標準ブラウザが開き、Web 上の利用規約ページが表示されます |
| プライバシーポリシー | タップで端末の標準ブラウザが開き、Web 上のプライバシーポリシーが表示されます |
| ライセンス | アプリが利用しているオープンソースライブラリのライセンス一覧(Flutter 標準のライセンス画面) |
10. 試合生成アルゴリズムについて
「試合を生成する」ボタンを押したとき、内部では次のロジックで対戦カードが決まります。
- その大会の 進行中・完了済みの全試合 から、過去の組み合わせを集計:
- 各選手ペアが組んだ回数
- 各選手同士が対戦した回数
- 各選手の総試合数
- 待機中の選手(試合に出ていない、かつ「退場中」でない選手)から 空きコート分の試合 を生成。
- 4 人の組み合わせと 3 通りのチーム分けを総当たりで評価し、以下のスコア計算で 最も組み合わせが偏らない ペアを選びます。
スコア = ペア重複 × 5.0
+ 対戦相手重複 × 2.0
+ (最大試合数 − 最小試合数) × 1.0
- ペア重複 に最も大きな重みを置くことで、同じ 2 人組が固定化しないようにします。
- 対戦相手重複 が中程度の重みで、対戦相手の多様化を促します。
- 試合数差 が小さな重みで、出場機会の公平性を確保します。
特徴
- 決定論的: 同じ状態(同じ試合履歴・同じ待機メンバー)からは常に同じ対戦カードが生成されます。
- 公平性重視: ランダムでばらけさせるよりも「組み合わせの偏りの最小化」を優先します。
- 想定人数: 十数名規模を想定。極端に多い場合は応答時間が伸びることがあります(O(n⁴) の総当たり)。
11. よくある質問
Q1. 「試合を生成する」ボタンが押せません。
A. 以下のいずれかの条件を満たしていません。 - 待機中の選手が 4 名未満 → 退場中の選手を復帰、または途中追加。 - 空きコートがない → どこかの試合を完了させてからもう一度。
Q2. 同じ名前の選手を 2 人登録できません。
A. 「選手名 + チーム名」の組み合わせがユニークである必要があります。チーム名を分けるか、田中 (太郎) のようにフルネームを入れて区別してください。
Q3. 大会の途中で参加者が増えたら?
A. 「待機中の選手」セクション右上の 人型 + アイコン から大会未参加の選手を追加できます。次の試合生成から対象になります。
Q4. ある選手だけ早く帰ったらどうする?
A. その選手のチップにある ログアウトアイコン をタップして「退場中」に移してください。その選手は試合生成の対象外になります(ただし大会自体には在籍したままです)。後で復帰させたいときは退場中チップをタップ。
Q5. 完了した試合のスコアを訂正できますか?
A. 現在のバージョンでは完了済み試合の編集機能はありません。誤ったスコアは新しい試合として組み直すか、次回大会以降で対応してください。
Q6. 大会を一度終了したらやり直せますか?
A. 終了した大会は履歴専用となり、再オープンや追加の試合生成はできません。続行したい場合は新しい大会を作成し、「前回大会から複製」を活用してください。
Q7. データはどこに保存されますか?
A. 端末のローカル DB(SQLite)に保存されます。クラウド同期や別端末への自動移行は行いません。アプリのアンインストールや端末ストレージの初期化でデータは失われますのでご注意ください。
トラブル時のチェックリスト
- 試合を生成できない → 待機中 4 名以上 / 空きコートあり、を確認
- コート数を減らせない → 該当コートの試合を完了させる
- 選手追加でエラー → 選手名 + チーム名の重複を確認
- 履歴に大会が出ない → 「⋮」 → 「大会を終了する」を実行したか確認
ご利用ありがとうございます。改善要望や不具合の報告は、matchweave.ktateishi@gmail.com へお寄せください。