見出し画像

Python でスポーツ大会運営を楽にしよう

こんにちは、Artista プログラミングスクールの青柳です。
実は長いことテコンドーをやっています。大会にも色々出ましたが、最近は運営側にまわることが多くなりました。

紙の申請書からExcel申請書へ

以前は、大会の申請書は紙でした。大量に送られてくる申請書を、何人もの人手を使って二重三重にチェックした上で、Excel にまとめるということをしていました。当時は Google Spread Sheet も無かったので、紙からおこした複数の Excel ファイルをマージするという作業もありました。色々なポイントでミスが発生しやすく大変な作業でした。
これではかなわんということで、各道場から一括で Excel データをもらうということにしました。10 年以上前でしょうか。

Excel 申請書を自動集計して種目別選手一覧を作成

大会運営でまず大事なのは選手のエントリー状況の把握です。テコンドーは一人の選手が複数の競技(型、組手、その他)に参加するのが普通なので、競技の種類と階級ごとにエントリー表を作成する必要があります。これには、各道場から送られてくる複数の Excel ファイルを読み込んで、全体の一覧表、道場ごとの一覧表、競技とその階級ごとの一覧表を作成する必要があります。手動では本当に大変でした。
しかし、プログラムでやればこんなものは一瞬ですね!種目ごとに選手のリストを作ればいいのですから。

トーナメント表も作成

最初は一覧表を作っただけで満足だったのですが、トーナメント表も自動作成してしまおうということで、あとからその機能も付け加えました。人数に合わせたトーナメント表を自動作成できます。しかも、ある程度同門対決を回避するようにバラけるようなしくみも入れました。

表彰状も作っちゃう

入賞者には表彰状が付きものですね。当時はパソコンで印刷するようにしていましたが、当然当時にでは間に合わずに後日発送が当たり前でした。これは二度手間で大変ですね。大会の現場にパソコンを持ち込んで印刷するようにしましたが、現場で種目名と選手氏名を書き込みながらの印刷では、どうしても追いつかない状況でした。
コレについては、種目ごとの入賞者を Excel シートに記録してもらい、最後に Excel シートの入賞者データから Word ファイルを自動生成するという方法にしました。一瞬で数十種目の表彰状 Word ファイルを作成できますので、あとはまとめて開いて印刷ボタンを押すだけ、あとは寝て待てばよいのです 笑

大量の人手を必要としていた仕事がワンオペで楽勝に

というわけで、今までは延べ何十人日という作業が必要だったことが、1人日でもお釣りがくる作業になってしまいました。今まで最高で 400 人以上の大会もありましたが、ミスは0件でした!(そりゃそうだ)
プログラムを使うと、身近にある問題が一気に解決できてしまう良い例と言えるのではないでしょうか。

そういえば Java 版から Python 版に書き換えた

初版は Java 5.0 で実装されていました(古)
PC を交換して Java の環境もなくなってしまったので、古い Java を入れようか考えたのですが、めんどくさいので書き換えました 笑
というわけで、Python で書き換えたのがこちらです
https://github.com/Takayoshi-Aoyagi/tkd_competition_manager

私も身近な課題解決をできますか?

はい、できます。課題解決をしてみたいという方、一緒にプログラムを勉強してみませんか?


この記事が気に入ったらサポートをしてみませんか?