「Groovyスクリプト」集について

Spinner

 目次

  1.スクリプト集の概要

  2.スクリプトを用いて出来ること

  3.スクリプトの実行環境

  4.スクリプトの提供について

 1.スクリプト集の概要

編集者は,ソフトテニス大会運営に際して必要な資料作成や大会後のWebによる結果公表データ作成に資する目的で,Webアプリケーションタイプの「ソフトテニス大会運営ツールキット」を作成し,実際の大会,例えば「第2回西日本小学生ソフトテニス大会」等で利用してきました。

「ソフトテニス大会運営ツールキット」の紹介ページにも記している様に,このアプリケーション作成の下敷きとしたのが,Java系の軽量スクリプト言語Groovyで記述した幾つかの部品スクリプト集です。例えば大会前の採点票作成に必要なXML(eXtensible Markup Language)データやトーナメント図などのSVG(Scalable Vector Graphics)ファイル等がスクリプトの実行により得られます。

スクリプトによるプログラムは,情況に合わせた変更も容易であり,プログラム実行も簡便で,コマンドプロンプトでのコマンド入力やエディタでのデータ編集に慣れ親しんで人には,結構使い勝手の良いものです。エディタ利用が不要な様にと「ソフトテニス大会運営ツールキット」を開発したところですが,今般作成済みで暫く眠っていたスクリプト集に改めて手を加えてみました。

 2,スクリプトを用いて出来ること

スクリプト集には幾つかのスクリプトが含まれていますが,各スクリプトはそれぞれが単品で,その内容は概ね以下の通りとなっています。

  • 大会参加者名簿作成スクリプト:大会参加者をクラブ毎,種目別に集計した名簿を作成します。受付時用。
  • トーナメントフレーム表示スクリプト:与えられた参加ペア数に対応するペア識別番号とシード番号の対応を表示したトーナメント図を作成します。組み合わせ原稿作成用。
  • ブロック別予選リーグ,決勝トーナメントフレーム表示スクリプト:与えられた参加ペア数と1ブロック当りのペア数に対応する,予選リーグと決勝トーナメントが一体となったフレーム図を作成します。組み合わせ原稿作成用。
  • トーナメント組み合わせ作成スクリプト:同じクラブ内ペアによる同士討ちを出来るだけ少なくしたトーナメント組み合わせ(シード順位を記した参加者名簿)を作成します。
    • 各クラブ毎に強い順に並べた参加ペアのデータを予め用意
    • シードとしたいペアには運営者側で予めシード番号を付与
    • 例えば,同一クラブ内の上位2ペア,5ペアはそれぞれ勝ち進んだとしてベスト2,ベスト8となるまでは対戦しない条件で各ペアのシード番号を決定
    • ただし,初期条件として付与されるシード番号によっては解が得られない場合がある
    もしデータが得られたならば,トーナメント図作成の際の参加者名簿として利用します。
  • トーナメント図作成スクリプト:トーナメント組み合わせ図(スコア未記入,スコア記入)のSVGファイルを作成します。大会前,大会後結果公表用。
  • トーナメント戦に関わるXML作成スクリプト:トーナメント戦のジャッジペーパー作成に利用するためのXMLスクリプを作成します。大会前用。
  • ブロック別リーグ戦の1位のみ(或いは2位のみ,3位のみ)によるトーナメント戦に関わるスクリプト:SVGファイルとXMLファイルを得る2つのスクリプがあります。
    • SVG作成タイプでは次の図等のSVGファイルが得られます
      • 予選リーグ戦とトーナメント戦が一体となった組み合わせ図SVGファイル(大会前用)
      • リーグ戦結果を受けた,例えば各1位のペア名が記入されたトーナメント図SVGファイル(大会途中経過用)
      • リーグ戦,トーナメント戦のスコアが記入されたトーナメント図SVGファイル(大会後用)
    • XML作成タイプでは次の事柄に関するXMLファイルが得られます
      • 予選リーグ戦のジャッジペーパー作成用のXMLファイル(大会前用)
      • リーグ戦結果を受けた,例えば各1位のペア名が記入されたトーナメントのジャッジペーパー作成用XMLファイル(大会途中経過用)
      • リーグ戦のスコアや順位の結果をまとめたHTMLファイル作成のためのXMLファイルス(大会後用)
  • ブロック別リーグ戦の成績に基ずき行われる決勝トーナメント戦に関わるスクリプト:次の事柄が1つのスクリプトにより得られます。
    • 決勝トーナメント図SVGファイル(大会前用)
    • 決勝トーナメント進出ペア名入りトーナメント図SVGファイル(大会途中経過用)
    • スコアが記入された決勝トーナメント図SVGファイル(大会途中経過用)
    • 予選リーグ戦のジャッジペーパー作成用のXMLファイル(大会前用)
    • リーグ戦結果を受けた,トーナメント1回戦のジャッジペーパー作成用XMLファイル(大会途中経過用)

 3.スクリプトの実行環境

  • Operating System(OS):スクリプトは,編集者のPC環境では,Windows2000,WindowsXp,WindowsVistaの下で動作しています。
  • LinuxやFreeBSDなどのUNIX環境の下でも,JAVAが動作する環境ならば問題なく動作するものと思われます


  • 必要なソフトウェア

    スクリプトを動作させるにあたっては,次の2つのソフトウェアが必要です

    • JavaSDK:jdk1.5.0_17(*)(オープンソース)等をダウンロード,インストールします
    • Groovy:Groovy-1.6.3~1.6.5(**)(オープンソース)等をダウンロード,インストールします

    Windows環境では(*)jdk-1_5_0_17-windows-i586-p(インストーラ)やバイナリ版の(**)groovy-binary-1.6.3~1.6.5.zip等をダウンロードすればよいでしょう。LinuxやFreeBSDなどのUNIX環境では,それぞれ対応するtar.gzファイル等を選ぶこととなります

    スクリプト自体を動作させるには上記2つのソフトウェアで十分ですが,スクリプトによって作成されるSVGファイルやXMLファイルを利用するには,例えば以下のソフトウェアをインストールしておくと便利です

    Batik,Fop共にオープンソース・プログラムです。Windows環境では(***)batik-1.7.zip,(****)fop-0.95-bin.zip等をダウンロードすればよいでしょう

    Batikはプログラムで作成されるSVGファイルビュアーとして,またSVG→JPEG画像,PNG画像,PDFファイルへの変換ツールとして利用します。FOPはプログラムで作成されるXMLファイルを基にして,採点票印刷に必要なPDFファイル作成に利用します(注)。尚,FOP利用にあたっては別途XSLT言語で書いたスタイルシート(XSLファイル)が必要ですが,最小限のものは作成しています。SVGファイルビュアーのみとしてならばブラウザのMozillaFirefoxも利用可能ですが,テキスト文字のスペーシング機能が不十分なようです。少し高価ですが,SVGファイル取り扱い可能な描画ソフトウェアがあれば使い勝手が広がります

    (注)FOPの利用法については,別掲ページ(採点票)の<参考>欄に簡単な紹介があります

 4.スクリプトの提供について

「ソフトテニス大会運営ツールキット」を利用して頂きたい,と言うのが編集者の望みではありますが,スクリプトもまた慣れれば使い勝手のよいものです。エディタ利用が苦にならない方にはうってつけかと思います。プログラミングに興味ある方々には,用いているGroovyスクリプト言語の良さも是非味わって頂ければと思います

実際に大会運営に携わる方々を中心として,スクリプトに関心をもって頂けた方々へのスクリプトの提供を考えています。こんなスクリプトが是非欲しい,と言ったアイデアも歓迎します

ご希望の方は,件名を「スクリプト」としてメールにてご連絡ください。宛先は: shzh-ak@sings.jp  です


ページ先頭へ