Swiss Draw Calculation

スイスドロー計算

スイスドロー計算は、参加者を入力して初回ペアリング(ランダム/シード)を選ぶだけで、各ラウンドの対戦表を自動生成し、プリセットや「勝数・負数・引分数」の入力で即時に集計・順位反映できるツールです。勝ち点に加えて OMW%・GWP%・OGW% のタイブレークも自動計算し、CSV出力やドロップ(途中棄権)・BYE処理にも対応します。

使い方

  1. 「参加者管理」に1行1名(例:山田太郎,T1)を入力し、「参加者を反映」を押します。
  2. 「初回ペアリング」(ランダム/シード)・「Best of」・「勝ち点」・「過去対戦の回避」・「BYE付与」を設定します。
  3. 必要があれば参加者一覧で「ドロップ(途中棄権)」にチェックを入れて対象外にします。
  4. 「次のラウンドを生成」を押してペアリングを作成します。
  5. 各対戦の結果を、プリセット(2–0/2–1/1–1/1–2/0–2)をクリックするか、「勝数」「負数」「引分数」に直接入力します。
  6. 入力と同時に「勝ち点」「OMW%(相手の試合勝率平均)」「GWP%(自分のゲーム勝率)」「OGW%(相手のゲーム勝率平均)」が自動更新されます。
  7. 参加者が奇数の場合は、未BYEで低勝ち点のプレイヤーに自動でBYE(勝ち扱い、Boの半分勝ち)が付きます。
  8. 下部の「順位表」でタイブレーク込みの順位(Points/OMW%/GWP%/OGW%/Matches/Games)を確認します。
  9. 表示が崩れた・再集計したい場合は「全再計算」を押します。
  10. 成績を保存したい場合は「CSV出力」でダウンロードします(UTF-8 BOM・全セルクォート)。
  11. 次ラウンドも「生成 → 入力 → 順位確認」を繰り返します。
  12. 大会をやり直す場合は「リセット」でラウンドと結果をクリアします(参加者と設定は保持)。

スイスドロー計算の使い方

1. 参加者を入れる

  1. 参加者管理に、1行1名で入力(形式は 名前,ID。IDは任意)
    例)山田太郎,T1 / 佐藤花子,H1
  2. 参加者を反映 を押す。参加者一覧に「名前(ID)」とドロップのチェックが表示される。
  3. 名簿を修正したら、再度「参加者を反映」を押す(ラウンドはリセット)。

備考:推奨ラウンド数は概算(おおむね ceil(log2(人数)))。()内はプレイヤーIDで、CSVキーや同姓同名の区別に使用。

2. ラウンド設定を決める

  • 初回ペアリング
    ランダム … 名簿をシャッフルして隣同士で対戦。
    シード … 名簿順をシード順として隣同士で対戦(必要なら上位半分対下位半分方式に差し替え可)。
  • Best of(ゲーム数):Bo3 なら先に2本先取。
  • 勝ち点:既定は 勝=3 / 引=1 / 負=0。
  • 過去対戦の回避:2回戦以降、同一カードを避けるように組む。
  • BYE付与:奇数人数時、未BYEかつ低勝ち点を優先して自動BYE(勝ち扱い、ゲームはBoの半分勝ち)。

3. ラウンドを作る(ペアリング)

次のラウンドを生成 を押すとラウンド #1 が作成される。2回戦以降は勝ち点帯(OMWを補助)で並べ替え、過去対戦を避けて組む。ドロップ済みの参加者は以降のペアリング対象外。

4. 試合結果を入れる

次のいずれかで入力でき、入力と同時に集計される。

  • プリセットボタン:各対戦の 2–0 / 2–1 / 1–1 / 1–2 / 0–2 をクリック。
  • 直接入力勝数(Aの勝ち本数)・負数(Bの勝ち本数)・引分数 を数値入力。

備考:BYEは自動で勝ち扱い(Bo3なら 2–0)。

5. 順位を見る・出力する

  • 順位表にタイブレーク込みの順位を表示。
  • 指標の意味
    Points … 勝ち点。
    OMW% … 対戦相手の試合勝率平均(各相手のMWPは下限33%、BYE除外)。
    GWP% … 自分のゲーム勝率(下限33%)。
    OGW% … 相手のゲーム勝率平均(下限33%)。
    Matches / Games(W-L-D) … 試合数とゲーム内訳。
  • CSV出力:ワンクリックでダウンロード(UTF-8 BOM、全セルクォートでExcelの文字化け・列ズレ対策済み)。

6. よく使う操作

  • ドロップ(途中棄権):参加者一覧のチェックをオン。以降のラウンドで自動的に除外。外せば復帰。
  • リセット:全ラウンドと結果をクリア(参加者・設定は保持)。
  • 全再計算:表示の再描画や再集計に使用。

7. 進行のコツ(運営向け)

  • 各ラウンドは「生成 → 入力 → 順位確認」を繰り返す。
  • 上位人数の抽出はCSVを活用(決勝トーナメント移行など)。
  • 参加者が増減したら名簿を修正して参加者を反映(その時点でラウンドはリセット)。
  • 画面幅が狭い場合はプリセットボタン中心で入力すると高速。

スイスドロー計算とは?

スイスドロー(Swiss-system)計算は、 「近い実力(=勝ち点が近い相手)同士を毎ラウンド組ませて、全員が同じ回数だけ試合し、最後に順位を決める」 方式のための組み合わせ・集計ルールです。早期敗退がなく、少ないラウンド数でも上位がはっきりしやすいため、カードゲームやチェス、eスポーツの大会で広く使われます。

基本の流れ

  1. 初回はランダムまたはシードで対戦組み合わせを作る(奇数なら1人はBYE=不戦勝)。
  2. 勝敗(必要ならゲーム単位の本数)を入れて勝ち点を集計(例:勝=3、引=1、負=0)。
  3. 2回戦以降は同じ勝ち点帯の中で、過去に当たっていない相手を優先してペアリング。
  4. 全ラウンド後、勝ち点が同じなら OMW%(対戦相手の試合勝率平均)、GWP%(自分のゲーム勝率)、OGW%(相手のゲーム勝率平均)などのタイブレークで順位を並べる。

この仕組みを実装したのが「スイスドロー計算ツール」で、ペアリング生成・勝ち点集計・タイブレーク計算・BYEやドロップ(途中棄権)の処理まで自動で行います。

スイスドローの狙いと基本設計

  • 狙い:少ないラウンド数で実力順に近づける。全員同じ回数プレーでき、早期敗退がない。
  • 設計思想
    1. 直前までの成績が近い者同士を当て続ける(スコアグループ内で対戦)。
    2. 同じ相手とは原則当てない(再戦回避)。
    3. 奇数なら1名がBYE(不戦勝)。同じ人に複数回BYEが行かないよう配慮。

ペアリングの具体手順(典型)

  1. 参加者をスコア(勝ち点)順に並べる。初回だけランダム/シード。
  2. 同じ勝ち点の塊(スコアグループ)ごとに上からペアリング。
  3. グループ内で相手が見つからない場合、上下グループからフローターを借りて調整。
  4. それでも決まらなければ再戦許容(最後の手段)。
  5. BYEは未BYEかつ勝ち点が低い人を優先。

勝ち点とラウンド数

  • 勝ち点:多くは勝=3、引=1、負=0。
  • 必要ラウンド数の目安ceil(log2(参加人数))。例:32人なら5回戦。
  • 上位〇名で決勝トーナメント移行する方式も多い。

タイブレーク(同点の並び替え)

  1. MWP:自分の試合勝率(下限0.33)。
  2. OMW%:対戦相手のMWP平均(BYEは除外、各相手は下限0.33)。
  3. GWP%:自分のゲーム勝率(下限0.33)。
  4. OGW%:相手のゲーム勝率平均(下限0.33)。

ミニ例

Bo3・勝=3/引=1/負=0の場合、あるプレイヤーが2勝1敗なら勝ち点6。ゲーム勝率が62.5%、対戦相手の勝率平均が65.3%なら、同点者より順位が上になる。

BYE(不戦勝)の扱い

  • 実質「勝ち」扱い(勝ち点付与、ゲーム勝も付与)。
  • OMW/OGW計算には含めない。
  • 同一選手に複数回当たらないよう未BYE者を優先。

ドロップ(途中棄権)

  • 以後のペアリング対象外になる。
  • それまでの結果は成績に残る。
  • ドロップが多いとOMW/OGWが歪むため、下限0.33が重要。

代表的なバリエーション

  • FIDE Dutch / Monrad:チェス用の詳細規則。
  • Accelerated Swiss:序盤に加点し、強者同士を早めに当てる。
  • McMahon:初期点を持った状態で開始(囲碁など)。
  • スプリット&フォールド:上位半分と下位半分を初回で当てる。

ラウンド設計と「カット」

スイスのみで順位確定なら十分なラウンド数が必要。実際はスイス5〜8回戦後に上位を「カット」してトーナメント移行する方式が多い。

よくある疑問とコツ

  • なぜ33%下限? 極端に低い勝率による不公平を防ぐため。
  • 直接対決を見ないの? 種目による。チェスはSonneborn–Berger、カードゲームはOMW優先など。
  • 途中参加・増減:原則開始前に確定。やむを得ない場合は名簿更新して次ラウンドから反映。

まとめ

  • スイス方式は「実力が近い者同士を当て続ける」設計。
  • 順位は「勝ち点 → OMW% → GWP% → OGW% → 細則」で決まる。
  • ツール化の要点は、グループ管理・再戦回避・BYE配分・ドロップ処理・33%下限・CSV出力。
  • 大会運営ではラウンド数と上位カットの設計が重要。

関連ツール

注意事項

このツールは無料でご利用いただけます。

※このプログラムはPHP8.2.22にて作成、動作確認を行っております。
※ご利用下さっている皆様のご意見・ご要望(改善要望)をお寄せください。