ブロックスデュオ プログラム対戦 要領
GPCCでは、2009年の問題の一つとして、ブロックスデュオのプログラムを募集しています。
昨年との違いは最後にまとめてあります。過去の大会の情報は、ブロックスデュオ(再継続)にリンクがあります。参考文献とブロックスデュオ記録プログラムも参照してください。
■応募期限
2009年10月6日(火)
締め切りました。ご応募ありがとうございました。大会の情報は、大会特設ページをご覧ください。
■応募プログラムの条件
- ブロックスデュオを人間と対戦できるプログラム。
- 先手・後手の両方できること。
- 1局1プログラムあたり、思考時間がおおむね15分を超えないこと。
- 手の入力に4文字コードを使用できること。
- 打った手を4文字コードで表示できること。
対戦時に棋譜を4文字コードでファイルに出力することができると、主催者側は助かります。「4文字コード」および棋譜の形式については後述します。
■対戦日時
- 2009年10月24日(土) (場所は東京農工大学の小谷研究室の予定)
- 当日いらっしゃることを歓迎します。ご来場いただいた場合は、その場でプログラムの改良やパラメタの設定を行ってかまいません(各対戦の途中では不可)。
- 詳しくは大会特設ページに掲載していきます。
■対戦環境
以下のようなWindowsおよびx86 Linuxの環境を用意します。これらで動作可能な実行ファイルを作成してください。もしソースファイルのみお送りいただくと、こちらで正しくコンパイルできない可能性があります。
- マシンスペック: Intel Pentium 4 Processor 3.40GHz, 1GB RAM
- Windows: Microsoft Windows XP Professional Service Pack 2
- Linux: Red Hat Enterprise Linux WS release 4
Java言語を使用する場合は、コンパイル済みの.classファイル、またはそのjarアーカイブをお送りください。Java言語の実行環境は以下の通りです。
- Windows上: JDK1.5.0.9
- Linux上: JDK1.5.0.11
なお、Windows環境ではJDKにパスが通っていません。実行ファイル中からJavaのプログラムを呼び出すなど、特殊な使い方をされる場合には、応募前にご相談ください。
■対戦要領
各対戦は、ブロックスデュオのルールに従い、勝ち・負け・引き分けを決めます。
ただし、ブロックスデュオのルールのうち、ボーナス点は考慮しません。つまり、置けなかったピースのマスの数の合計のみで勝負を決めます。合計が同じ場合は引き分けです。
まだ指せる手があるときには、パスはできないものとします(ブロックスデュオのルールに明記されていませんが、対戦の続行が困難になるため禁止とします)。
応募数によって、総当り、あるいはスイス方式で行います。順位は以下の順で優先して決めます。(賞金などはありません。)
- 勝ち星の数(引き分けは0.5)
- ソルコフ(対戦した相手があげている勝ち星の総数)
- SB(勝利した相手があげている勝ち星の総数)
■応募方法
下記応募フォームに記入し、chairのアドレス(ユーザ名Nobuhisa.Fujinami、ドメイン名jp.sony.com)まで、送信してください。
プログラムは添付するか、ダウンロードできるアドレスを記述してください。
添付の場合、拡張子が.exeのファイルは削除されてしまいますので、拡張子を.exなどに変更するか、アーカイブ(tar,tar+gz,tar+bzip2,LZH,ZIP,CAB,RARのどれか)に入れてお送りください。
一人で複数応募することもできます。
以下の場合は応募前に早めにchairにメールでご相談ください。
- 動作環境が特殊
- ハードウエアの持ち込み希望
- ネット上で動作
- その他不安な点がある場合
お願い: 応募のメールのSubject(表題)の先頭に、BLOKUSの文字を入れるようにしてください。
-- 応募フォーム ここから --
■氏名
■メールアドレス
■電話番号 (当日トラブルがあったときに連絡するかもしれません 必須ではありません)
■プログラム名 (以前の応募の差し替えの場合はその旨明記してください)
■プログラムの特徴 (アルゴリズムなど 省略可)
■プログラムの場所 (添付/ダウンロード可能なアドレス)
■動作環境・起動方法
■使用方法 (先手・後手の選択や、手の入力方法などを簡単に)
■当日来場予定の有無
■その他
-- ここまで --
今後作成予定の、大会のWebページには、応募された皆様のお名前、プログラム名を掲載します(所属、メールアドレス、電話番号は掲載しません)。また、大会実施後は、対戦の棋譜、順位、感想(任意)を掲載します。掲載内容は、プログラミング・シンポジウム報告集に引用することがあります。
■「4文字コード」による手の記述法
使っていただけると、対戦させるときや試合の記述(棋譜)に便利であろうと、GPCCのプログラム対戦のためにco-chairが考えた手の表記法です。対戦相手の手の入力と、プログラムが打った手の表示に使用してください。
棋譜の出力は、応募の必要条件ではありません。
- 一手を英数4文字で表します。
- 座標2文字、ピースの種類1文字、向き1文字です。
- 各要素について、下に解説します。
特別な場合として、パスのときはハイフン4つ(----)とします。
座標
1 2 3 4 5 6 7 8 9 A B C D E
┏━━━━━━━━━━━━━━┓
1┃ ┃
2┃ ┃
3┃ ┃
4┃ ┃
5┃ ● ┃
6┃ ┃
7┃ ┃
8┃ ┃
9┃ × ┃
A┃ ○ ┃
B┃ ┃
C┃ ┃
D┃ ┃
E┃ ┃
┗━━━━━━━━━━━━━━┛
- 横方向を先に、縦方向を次に書く。
例: ×の位置は 29
- ●は先手のスタートポイント 55
- ○は後手のスタートポイント AA
- 先手が55でなくAAを覆うのは禁止
ピースの種類と基準位置
- ピースの21種類に、それぞれアルファベット1文字を割り振った。
- ピースの座標は、下で「■」で記したマスの座標とする。
1単位:
a: ■
2単位:
b: ■
□
3単位:
c: □ d: □
■ ■□
□
4単位:
e: □ f: □ g: □ h: ■□ i: □■
■ ■ ■□ □□ □□
□ □□ □
□
5単位:
j: □ k: l: □ m: □ n: □□ o: □ p: □
□ □ □ □■ ■ ■□ ■
■ □ □■ □□ □□ □ □□□
□ ■ □ □
□ □□
q: □ r: □□ s: □ t: □ u: □
□ ■□ □■□ □■□ □■□
■□□ □ □ □ □
ピースの向き
0: □ 1: □
□■□ □■□
□ □
2: □□ 3: □□
□■ ■□
□ □
4: □ 5: □
□■□ □■□
□ □
6: □ 7: □
■□ □■
□□ □□
例
- コード「65p3」は下図の手を表します。「65p6」でも同じです。
- 入力としては両方受け付けることとします。表示は好きなほうでかまいませんが、向きの数字の小さいほう、この場合は「65p3」を推奨します。
1 2 3 4 5 6 7 8 9 A B C D E
┏━━━━━━━━━━━━━━┓
1┃ ┃
2┃ ┃
3┃ ┃
4┃ □ ┃
5┃ □□□ ┃
6┃ □ ┃
7┃ ┃
8┃ ┃
9┃ ┃
A┃ ○ ┃
B┃ ┃
C┃ ┃
D┃ ┃
E┃ ┃
┗━━━━━━━━━━━━━━┛
注意
対称性のあるピースの場合、同じ手に対して向きが複数対応しますが、どれも正しいものとします。表示の際には、(位置が異なる場合も含めて)向きの数字の小さいほうを使うことを推奨します。例えば、「33b6」と「43b2」は同じ手ですが、表示には「43b2」を使うことを推奨します。
アルファベットの大文字小文字で意味に違いはありません。(この説明中では座標に大文字、ピースに小文字を使っていますが、これはポリオミノそれぞれの形から大文字のアルファベットで「T-ペントミノ」などと呼ぶ習慣があるので混乱しないように小文字にしたこと、座標とピースの種類で大文字小文字を変えたほうが見やすいような気がするから、という気分の問題です。)
棋譜
棋譜は、4文字コードを1行に一つずつ並べたテキストファイルとします。その行に4文字コード以外は出力しないでください。先手後手を交互に、初手から最終手まで順に並べます。対戦終了時の双方のパスを出力する必要はありません。改行コードは、CR+LFとします。
以下に例を示します。
66r3
99t7
96t4
58l2
B9k4
34q2
74u0
9Ck2
CDd1
CAm1
E8f5
D8a0
B5i3
B7d0
B2n6
52s0
81o2
7Eo6
43e2
28u0
15m1
4Ag6
88a0
6Ci2
69g2
3Dp0
3Bj2
D4j0
EEb2
94r0
----
B1c2
----
ECb0
自分あるいは対戦相手の異常終了に備え、手を指す度に棋譜ファイルを更新することを推奨します。
■昨年からの主な変更点
対戦をスムーズに行うために、以下の点を変更させていただきました。ご協力をお願いします。
- 棋譜(推奨)のファイル形式を明記しました。
- Java言語の動作環境を明記しました。
- 大会へのご来場を歓迎し、その場での改良を認めるようにしました。
以上