組み合わせ

このCGIは・・(概要)

スポーツやゲームで、メンバーの組み合わせを行います。参加する人数からできるだけランダムにメンバーを選択して1グループずつ作っていきます。

このプログラムは、「テニスや卓球の練習試合の組み合わせを決めるためのCGIは無いか」という疑問から、探してもなさそうなのでいっそのこと作ってしまえと取り掛かりました。

それを実現するためには、配列のハッシュや配列の配列という二次元データの処理というよく使う手順でありながら、意外と奥の深い処理手順を駆使する必要がありました。

あまり必要なプログラムとは思えないので、用途は後から考えることにして、とりあえず動けばよいという考えで作られていますので、まだ工夫の余地はあると思われます。そのため、GPLで配布しますから、皆さんで工夫してみてください。

このプログラムで出来ること

詳しい説明はヘルプをご覧ください。またこのCGIのソースはMEMBERS.CGIにあります。文字コードはEUCです。EUCが編集できるテキストエディタでご利用ください。

著作権についてはこのページの文書情報をご覧ください。

入力フォーム

(ゼッケン)名前
"(ゼッケン)名前"欄には、ゲーム参加者の氏名などを記入します。
このとき、氏名の前に数字またはアルファベットを含む文字列をカンマ(,)で区切っていれておくと、その文字順に並べ替えて出力できる。
  • 記入例:2,山本太郎
  • 記入例:16,鈴木
飛び番号がある場合もこちらを利用する。
番号を記入する場合
IDなど、連続番号で指定する場合はこちらを利用する。その場合、開始番号と終了番号を記入する。
一ゲームの人数
ゲームあたりに参加する人数を決める。
クラス対抗のゲームでランダムに選択してチームを作る場合など、自チームだけを決める場合は、ここに1チームのメンバーを入力します。
また、練習試合のように、両チームの参加者をランダムに選択したい場合は両チーム合わせた人数を入力します。
  • 参加者6人×2チームのポートボールの場合12人となります。
  • テニスや卓球のダブルスの場合は4人
野球などのように1ゲームへの参加者が多い場合は、1チームの人数を1ゲームの参加者として、制限付きランダムを選択する。
一方のチームだけ決める場合は、番号順に並べ替えて出力できます。
練習試合のように双方のチームに誰が行くかもランダムに決めたい場合は並べ替えをしないで、得られた組み合わせを前後で二つに分ける。
試合数
何回試合を行うかを入力します。
この場合、オプションで試合毎にランダムに選択するか、全員の参加機会が出来るだけ同じにするかを指定する。
オプション
組み合わせと出力方法の指定をする。
制限付きランダム
全員が同じ試合数を消化するまで次のゲームに参加しない。デフォルト(初期値)
ランダム
連続して次のゲームに連続して参加することもある。一人当たりのゲーム差が大きくなることもある。
結果を番号、またはゼッケンで並べ替えする。
デフォルト(初期値)
組み合わせをさらに複数のグループに分けるときなどは、このチェックを外す。

組み合わせ結果(Table)の解説

ゲーム一覧表
各ゲームの参加者の一覧です。入力時に並べ替えが指定してあると並べ替えがされています。
メンバー一覧表
参加者別の試合数と参加するゲームの一覧

組み合わせ結果(CSV)の解説

MS office Excell形式のCSVです。下記文字列をドラッグして選択しコピーメモ帳などに貼り付けて、拡張子をcsvにして保存するか、そのままエクセルに貼り付ける。そのとき、エクセルで表示されるメニューからテキストウィザードを使用すると表として貼り付けられる。

ゲーム一覧
ゲーム毎の参加者の一覧
メンバー一覧
参加者毎の参加ゲームの一覧

設置方法

このCGIは、サーバーにテキストモードで転送して実行権限を与えるだけで動作するように作成されています。拡張子を.txtから、.cgiに変更してください。

jcode.plはこのCGIと同じ場所に置くか、PATHを書き換えること。

なお、サーバーにJcode.pmがある場合は、最初のrequire 'jcode.pl';の部分を、use Jcode;に書き換えれば動きます。その他、書き換えが必要そうな部分は最初の方にまとめてありますから適当に変更してください。

文書情報

  1. 配布サイトホーム
  2. CGI目次へ
  3. メンバーCGIへ
  4. 携帯用メンバーCGIへ
  5. ヘルプ
First Published
2009-03-18
Last Modified
2009-04-06 12:00:00 (JST)

著作権

このプログラムはThe GNU General Public License ( GNU 一般公衆利用許諾書 バージョン3 (GPLv3))で配布します。

© TESHIMA Shizuka 2009 - 2012 All Rights Reserved mailto:office@ichiya.com