How do I run an automated tournament between various Winboard engines ?

By Peter Berger [06-03-2001]

Introduction

newJori Ostrovskji has released a utility that can help you run automated round robin tournaments in Winboard without any knowledge of batch files.I have tried it briefly, and it works fine, but it runs in command mode without any graphical interface so you have to read the help files carefully to learn the commands needed to use it. [I recommend you look at the example log also]

The easiest way to do this without having to do any programming work is to create an appropriate simple batch file that starts the tournament matches .

Many people seem to feel unfamiliar with batchfiles , so this explanation tries to be very simple and explain things in a non-technical way ; if you are looking for details , all the options are explained much more thoroughly and better in the "Winboard.hlp" file , that comes with WinBoard itself . So this is only a little guide to encourage people to save their time by letting the computer do the work automatically :-) .

What is a batch file?

A batch file under Windows is basically a textfile where every line contains a set of commands which are run one after the other . The ending of the file has to be .bat , then you can click on it and Windows will perform the commands you have written into it . So let's create a file tournament.bat ( use an editor like wordpad or notepad , then choose => save as => tournament.bat

The first line of the file explained step by step :

start /wait E:\Programme\WinBoard\winboard -cp -fcp "Comet_B27" -fd "E:\_com" -scp "wcrafty1714" -sd "E:\_cra" -initString "new\n" /mg 10 /tc 5 /inc 3 

Explaination of the terms

a.) 'start /wait' tells Windows to run the command written in this line and to wait until it is finished before proceeding to the command in the next line .

b.) 'E:\Programme\WinBoard\winboard' is the command to run WinBoard itself on the computer ; you have to adapt this to the correct path on your computer .

c) '-cp' ; this is the option that puts WinBoard in "chess engine mode"

d.) '-fcp "Comet_B27"' : command to start the first engine , Comet here .

e.) '-fd "E:\_com"' : Directory where the first engine is installed , E:\_com here .

f) '-scp "wcrafty1714" : command to start the second engine , Crafty here .

g) '-sd "E:\_cra"' : Directory where the second engine is installed , E:\_cra here .

h) '-initString "new\n"' : this is the command sent to both engines at game start to make sure they know a new game has started

i) '/mg 10' : Both engines should play 10 games against each other

j.) '/tc 5' : This is the time in minutes the clocks for both engines are set to at the beginning of the game ; it is a 5 minutes blitz game

k.) '/inc 3' : After every move 3 seconds are added to the clock of the engines ; so it's a Fisher time control .

Now we already have all necessary knowledge to create a little tournament .

Hints on running the tournament.

Hint 1 : All the games will be run automatically ; very rarely there are problems with the start of a few games ; then a game will be missing and has to be restarted ( can be done by batch , too ) after the initial batch is done . So you should have a brief look at the games after the tournament is finished to make sure everything went fine .

Hint 2 : Don't get confused by the complicated looks of the file ; it can be set up very easily by doing "cut and paste" .

Hint 3 : In this example tournament that ran on one of my computers from 29/12/2000 to 01/01/2001everything went perfectly well ; the only engine not willing to start a few games was Little Goliath so you might want to be careful with this one .

Hint 4 : Don't forget to make sure the tournament games are saved by giving a filename in the WinBoard-ini-file under saveGameFile ; to check on games and results the tool ELOStat by Frank Schubert is extremely useful ; you can download it at http://wbec-ridderkerk.nl/html/download/other/elostat_13.zip

A complete example

OK , so here is a complete little Blitz tournament ( set up in 10 minutes ) :
start /wait E:\Programme\WinBoard\winboard -cp -fcp "Comet_B27" -fd "E:\_com" -scp "wcrafty1714" -sd "E:\_cra" -initString "new\n" /mg 10 /tc 5 /inc 3 
start /wait E:\Programme\WinBoard\winboard -cp -fcp "Comet_B27" -fd "E:\_com" -scp "EXchess xb" -sd "E:\_ex" -initString "new\n" /mg 10 /tc 5 /inc 3
start /wait E:\Programme\WinBoard\winboard -cp -fcp "Comet_B27" -fd "E:\_com" -scp "LG2000V3" -sd "E:\_lg" -initString "new\n" /mg 10 /tc 5 /inc 3
start /wait E:\Programme\WinBoard\winboard -cp -fcp "Comet_B27" -fd "E:\_com" -scp "yace" -sd "E:\_ya" -initString "new\n" /mg 10 /tc 5 /inc 3
start /wait E:\Programme\WinBoard\winboard -cp -fcp "Comet_B27" -fd "E:\_com" -scp "ZChess" -sd "E:\_zc" -initString "new\n" /mg 10 /tc 5 /inc 3
start /wait E:\Programme\WinBoard\winboard -cp -fcp "Comet_B27" -fd "E:\_com" -scp "amy" -sd "E:\amy" -initString "new\n" /mg 10 /tc 5 /inc 3
start /wait E:\Programme\WinBoard\winboard -cp -fcp "Comet_B27" -fd "E:\_com" -scp "phalanx -t32768 -r900" -sd "E:\phalanx" -initString "new\n" /mg 10 /tc 5 /inc 3
start /wait E:\Programme\WinBoard\winboard -cp -fcp "wcrafty1714" -fd "E:\_cra" -scp "EXchess xb" -sd "E:\_ex" -initString "new\n" /mg 10 /tc 5 /inc 3
start /wait E:\Programme\WinBoard\winboard -cp -fcp "wcrafty1714" -fd "E:\_cra" -scp "LG2000V3" -sd "E:\_lg" -initString "new\n" /mg 10 /tc 5 /inc 3
start /wait E:\Programme\WinBoard\winboard -cp -fcp "wcrafty1714" -fd "E:\_cra" -scp "yace" -sd "E:\_ya" -initString "new\n" /mg 10 /tc 5 /inc 3
start /wait E:\Programme\WinBoard\winboard -cp -fcp "wcrafty1714" -fd "E:\_cra" -scp "ZChess" -sd "E:\_zc" -initString "new\n" /mg 10 /tc 5 /inc 3
start /wait E:\Programme\WinBoard\winboard -cp -fcp "wcrafty1714" -fd "E:\_cra" -scp "amy" -sd "E:\amy" -initString "new\n" /mg 10 /tc 5 /inc 3
start /wait E:\Programme\WinBoard\winboard -cp -fcp "wcrafty1714" -fd "E:\_cra" -scp "phalanx -t32768 -r900" -sd "E:\phalanx" -initString "new\n" /mg 10 /tc 5 /inc 3
start /wait E:\Programme\WinBoard\winboard -cp -fcp "EXchess xb" -fd "E:\_ex" -scp "LG2000V3" -sd "E:\_lg" -initString "new\n" /mg 10 /tc 5 /inc 3
start /wait E:\Programme\WinBoard\winboard -cp -fcp "EXchess xb" -fd "E:\_ex" -scp "yace" -sd "E:\_ya" -initString "new\n" /mg 10 /tc 5 /inc 3
start /wait E:\Programme\WinBoard\winboard -cp -fcp "EXchess xb" -fd "E:\_ex" -scp "ZChess" -sd "E:\_zc" -initString "new\n" /mg 10 /tc 5 /inc 3
start /wait E:\Programme\WinBoard\winboard -cp -fcp "EXchess xb" -fd "E:\_ex" -scp "amy" -sd "E:\amy" -initString "new\n" /mg 10 /tc 5 /inc 3
start /wait E:\Programme\WinBoard\winboard -cp -fcp "EXchess xb" -fd "E:\_ex" -scp "phalanx -t32768 -r900" -sd "E:\phalanx" -initString "new\n" /mg 10 /tc 5 /inc 3
start /wait E:\Programme\WinBoard\winboard -cp -fcp "LG2000V3" -fd "E:\_lg" -scp "yace" -sd "E:\_ya" -initString "new\n" /mg 10 /tc 5 /inc 3
start /wait E:\Programme\WinBoard\winboard -cp -fcp "LG2000V3" -fd "E:\_lg" -scp "ZChess" -sd "E:\_zc" -initString "new\n" /mg 10 /tc 5 /inc 3
start /wait E:\Programme\WinBoard\winboard -cp -fcp "LG2000V3" -fd "E:\_lg" -scp "amy" -sd "E:\amy" -initString "new\n" /mg 10 /tc 5 /inc 3
start /wait E:\Programme\WinBoard\winboard -cp -fcp "LG2000V3" -fd "E:\_lg" -scp "phalanx -t32768 -r900" -sd "E:\phalanx" -initString "new\n" /mg 10 /tc 5 /inc 3
start /wait E:\Programme\WinBoard\winboard -cp -fcp "yace" -fd "E:\_ya" -scp "ZChess" -sd "E:\_zc" -initString "new\n" /mg 10 /tc 5 /inc 3
start /wait E:\Programme\WinBoard\winboard -cp -fcp "yace" -fd "E:\_ya" -scp "amy" -sd "E:\amy" -initString "new\n" /mg 10 /tc 5 /inc 3
start /wait E:\Programme\WinBoard\winboard -cp -fcp "yace" -fd "E:\_ya" -scp "phalanx -t32768 -r900" -sd "E:\phalanx" -initString "new\n" /mg 10 /tc 5 /inc 3
start /wait E:\Programme\WinBoard\winboard -cp -fcp "ZChess" -fd "E:\_zc"  -scp "amy" -sd "E:\amy" -initString "new\n" /mg 10 /tc 5 /inc 3
start /wait E:\Programme\WinBoard\winboard -cp -fcp "ZChess" -fd "E:\_zc"  -scp "phalanx -t32768 -r900" -sd "E:\phalanx" -initString "new\n" /mg 10 /tc 5 /inc 3
start /wait E:\Programme\WinBoard\winboard -cp -fcp "amy" -fd "E:\amy" -scp "phalanx -t32768 -r900" -sd "E:\phalanx" -initString "new\n" /mg 10 /tc 5 /inc 3

Download an example of the the batch file .

You can download this whole article in Microsoft Word format as well.

Contributed by Peter Berger

HTMLised by Aaron Tay