Swiss Draw Manager
子ども大会用スイスドロー方式組み合わせ自動生成システム
ダウンロード
Microsoft Store からダウンロードできます: https://apps.microsoft.com/detail/9PPHQSM98RZ8
- 最新バージョン:v1.3.2.0(2026年1月4日リリース)
- 価格:無料
概要
このアプリケーションは、子ども大会をスイスドロー方式で運営するためのツールです。
Windows デスクトップアプリケーションとして動作し、組み合わせ生成から結果管理まで一貫してサポートします。
主な機能
1. 参加者管理
- 参加者の追加・削除
- 名前、学校、学年の管理
- 「欠席または次回戦不参加」チェックボックスで一時離脱管理
- 次回戦不戦勝者の決定
- 番号は自動採番(1から連番)
2. 対局組み合わせ生成
- 同点グループ化マッチング(v1.3.0.0~)
- 優先順位: 同点グループ内で学年近い相手を優先、点差最小の相手を選択
- BYE選出: 経験者優先 > 不戦回数少 > ポイント低 > 学年低 > ランダム
- 前回戦未入力時の警告(続行可能)
3. ポイントシステム
- 回戦別ポイント(回戦数に応じて自動調整):
- 1回戦: 1点
- 2回戦: 2, 1点
- 3回戦: 3, 4, 2点
- 4回戦: 6, 7, 5, 3点
- 5回戦: 11, 12, 13, 9, 6点
- 6回戦: 20, 22, 25, 19, 18, 11点
- 7回戦: 39, 40, 42, 45, 38, 31, 20点
- 8回戦: 78, 79, 81, 84, 77, 70, 59, 39点
- 同じ勝数でも獲得回戦によって異なるポイントになる設計(順位決定の公平性向上)
4. データ永続化
- 結果入力時に自動保存(
%USERPROFILE%\Documents\SwissDrawManager\autosave_(ID).json)
- 名前を付けて保存
- JSON形式(テキストエディタで手動編集可能)
5. 順位表エクスポート
- CSV形式で全対局結果を出力
- Excelで開ける形式
使い方
大会開始前
- 参加者を追加
- 「参加者管理」タブ下部の欄に名前、学校、学年を入力
- 「登録」ボタンをクリック
- 番号は自動的に割り振られる
- データ保存(オプション)
- autosave_(ID).jsonに自動保存される
- 「名前を付けて保存」でファイル名の変更可能
大会中
- 回戦生成
- 「次回戦生成」ボタンをクリック
- 条件に従って対局表が自動的に生成される
- 結果入力
- 各対局の「勝ち」ボタンをクリック
- BYEは自動的に勝ち扱い
- 入力後、即座にポイント計算・順位更新
- 途中入退場
- 一時離脱: 「欠席または次回戦不参加」チェックボックスをオンにする → 次回戦のマッチング対象外(不戦敗として記録)
- 復帰: チェックボックスをオフにする → 次回戦から復帰
- 途中入場: 「参加者追加」で新規追加(過去の回戦は不戦敗として記録、0ポイントからスタート)
大会終了後
- 順位表エクスポート
- 「順位表エクスポート」ボタンをクリック
- Excelで開いて印刷・配布
マッチングアルゴリズム
設計思想: シンプルな単一指標マッチング
本アプリの最大の特徴は、マッチングに「得点(ポイント)」という単一の指標のみを使用することです。
従来のスイスドローシステムでよく使われる複雑な指標:
- Opponent Match Win Percentage(対局相手の勝率)
- Game Win Percentage(ゲーム勝率)
- Opponent Game Win Percentage(対局相手のゲーム勝率)
これらをあえて導入せず、得点のみでマッチングを決定します。
メリット
- マッチングロジックが透明で、参加者(特に子ども)にも理解しやすい
- 運営者が説明しやすく、保護者からの質問にも明確に答えられる
- 計算がシンプルで、手動検証も可能
デメリット
- 対局相手の強さを反映した精密な順位付けができない
- 同点の場合のタイブレーカーが単純(勝数→番号順)
- 国際的な大会で使われる高度なスイスドローシステムとは異なる
子ども将棋大会では「わかりやすさ」と「透明性」を優先し、複雑な指標よりもシンプルな運営を重視しています。
同点グループ化マッチング(v1.3.0.0~)
v1.3.0.0から、同点グループ化マッチングを採用しています。
- 同点グループ化: 同じ得点のプレイヤーをグループ化
- 学年降順ソート: グループ内を学年降順で並べ、隣接ペアを優先マッチング
- overflow処理: 奇数グループから最低学年を次の奇数グループへ移動
- バックトラッキング: 制約を満たす完全マッチングを保証
基本方針
- 過去未対局: 過去に対局したことがない相手のみを選択
- 同点グループ内: 同じ得点のプレイヤー同士を優先マッチング
- 学年が近い: グループ内で学年が近い相手を優先
効果
- 同点プレイヤー同士が優先的にマッチング
- 学年が近い相手との対局が増える
BYE選出
奇数人数の場合、以下の優先順位でBYEを決定:
- 不戦回数が少ない
- 累計ポイントが低い
- 学年が低い
- ランダム
データ構造
対局履歴
HashSet<int> で管理(人数制限なし)
- 過去対局済みの相手番号を記録
- O(1) で対局履歴を検索可能
保存形式
- JSON形式(UTF-8)
- 手動編集可能(緊急時の修正に対応)
システム要件
- OS: Windows 10 バージョン 1809 以降、または Windows 11
- 必要なソフトウェア: .NET 8.0 Runtime(アプリのインストール時に自動的にインストールされます)
- 対応アーキテクチャ: x64, x86
- ディスク容量: 約50MB
変更履歴
2026-01-04 - v1.3.2.0 マッチングアルゴリズムとデータ管理の改善
- 同点マッチング優先バグ修正
- 同点のプレイヤー同士が優先的にマッチングされない問題を修正
- 処理順序を「同点ペア最優先、それ以外は点数降順」に変更
- より公平なマッチングを実現
- 自動保存の改善
- プロセスIDベースの自動保存ファイル(autosave_12345.json形式)
- 複数インスタンス同時起動対応
- 「上書き保存」ボタン廃止(常に自動保存有効)
- 終了後もautosaveファイル保持(データ復旧可能)
- 次回戦不戦勝機能の追加
- 参加者管理画面で次回戦に不戦勝を設定可能
- 複数参加者への同時設定対応
- 次回戦生成時に自動的に不戦勝として記録
- 通常のポイントを獲得
2025-12-28 - v1.3.1.0 重大なバグ修正とUI/UX改善
- 上書き保存バグ修正
- 「上書き保存」が内部ファイルにのみ保存される問題を修正
- 複数の大会を同時並行で管理可能に
- UI/UX改善
- 対局管理表の視認性改善(ゼブラ模様を罫線に変更)
- 新規参加者登録でエンターキー対応
- ダイアログのモダン化とセンタリング
- 大会名入力欄の幅拡大、ボタン間余白縮小
- エクスポート機能強化
- 対局表エクスポート機能追加
- 順位表エクスポート機能追加
- ファイル名に大会名を含むように改善
- その他のバグ修正
- 不戦敗バグ修正
- 「次回戦不参加」を「欠席または次回戦不参加」に変更
- BYE選出基準を改善(不戦勝+不戦敗の合計回数を考慮)
2025-11-23 - v1.3.0.0 マッチングアルゴリズム改善
- 同点グループ化マッチングの導入
- 同じ得点のプレイヤーをグループ化し、グループ内で学年が近い相手を優先マッチング
- 奇数グループからは最低学年を次の奇数グループへ移動(overflow処理)
- より公平なマッチングを実現(同点・同学年の相手と対局しやすい)
- データ読み込みの修正
- 大会データ読み込み時にMaxRoundsとTournamentNameが正しく復元されるよう修正
2025-11-20 - v1.2.0.0 可変回戦数・大会名入力・対局未設定チェック
- 可変回戦数対応(新機能)
- 1〜8回戦まで選択可能に(従来は5回戦固定)
- 新規大会作成時に回戦数を設定
- 各回戦のポイント配分も自動調整
- 大会名入力機能(新機能)
- メイン画面で大会名を常時編集可能
- 保存ファイル名に大会名を反映
- 空欄時はプレースホルダー「(クリックして編集)」を表示
- ツールチップで長い大会名を確認可能
- 対局未設定プレイヤーチェック(新機能)
- 次回戦生成時に対局が割り当てられていないプレイヤーを検出
- 警告メッセージで該当プレイヤーを一覧表示
- 未入力結果と未設定プレイヤーの両方をチェック
2025-11-18 - v1.1.0.0 手動対局編集機能追加とUI/UX大幅改善
- 手動対局編集機能の追加(新機能)
- EditPairingDialog(対局編集ダイアログ)を新規実装
- 対局管理画面に編集・削除・リセットボタンを追加
- 「対局を手動追加」ボタンを追加
- 通常対局・不戦勝・不戦敗の3種類に対応
- 過去の対局履歴を自動フィルタリング(重複対局防止)
- 自動生成された組み合わせを手動で修正可能に
- 手動対局編集ダイアログの機能強化
- 参加者2セレクターの初期表示対応
- 不戦勝・不戦敗時の表示改善(「不戦勝」「不戦敗」と表示)
- 組み合わせ不可時のエラーメッセージ表示
- 視認性の大幅向上
- 行選択時の背景色を濃く変更(より見やすく)
- すべての表で選択行がヘッダー無し部分まで着色
- 対局管理表の改善
- テキスト列の垂直中央揃えを修正
- 編集/削除/リセットボタン列を均等配分し、文字の潰れを解消
- 不戦勝・不戦敗時のリセットボタンを非表示化(不要な操作を防止)
- 用語の統一: すべての表のヘッダーを「名前」→「参加者名」に統一
- レイアウトの最適化
- 対局生成UIを1段レイアウトに変更(よりコンパクトに)
- 参加者管理の削除ボタンを右端に配置
- 「この回戦以降のすべての対局を削除」にラベル変更(より明確に)
2025-11-11 - v1.0.2.0 パフォーマンス最適化・アルゴリズム改善
- 重み付き貪欲法によるマッチング: ペナルティとリトライ機構で重複対局を回避
- 重複対局の回避: 過去対局相手にペナルティを設定し、リトライで回避を試行
- パフォーマンス向上: ボタン応答時間を150-500ms → 60-120msに短縮(約73%高速化)
- 非同期自動保存: UIスレッドをブロックせず、スムーズな操作を実現
2025-11-08 - v1.0.1.0 UI改善アップデート
- 左揃え改善: 参加者名・対局相手名を左揃えに変更(読みやすさ向上)
- スクロール速度修正: DataGridのマウスホイールスクロールを5行/ホイールに統一
- 5回戦制限: 最大5回戦までに制限(誤操作防止)
- テストデータ: 64人・128人オプションを削除(8人・16人・32人のみ)
ライセンス
プロプライエタリライセンス
© 2025 T.Y.
最終更新日:2026-01-04
(将棋練習会が開かれる10月あたりまで更新の予定はありません。)
ページトップへ戻る
© 2025-2026 T.Y.