WBTM is a program for running automated round-robin- and swiss tournaments for Winboard chess engines on one computer. You can download the latest version from here.
Changes from version 0.15 are marked with dark green.
New items from version 0.15 are marked with dark
red.
Changes from version 0.30 are marked with purple.
There is no particular installation, the program runs fine with just the plain executable. Only the file TourneyHelp.txt should be present in the same directory with the executable, otherwise the help-command does not work.
You can still use player files from old WBTM-versions, but since everything can be integrated to winboard.ini, that is no longer the preferred way.
2.1 Winboard.ini as player file
From version 0.15 on, you can use winboard.ini as player file. All the settings you can make in player file, you can make in winboard.ini. When you install new winboard engines you usually have two options: to run them from command line, or edit winboard.ini so that they will appear in the starting dialog. If you use the latter alternative, you can use the command ReadPlayers just as you would in the player file's case. All files that are not recognized as player files, are treated as winboard.ini-files. Command Read without parameters tries to find your winboard.ini automatically and read it.
In version 0.15 there were restrictions with engine options. From 0.30 on, every valid winboard engine list should also be a valid WBTM-player list. If you have troubles with it, let me know.
There is an exception indeed. Within the section where engines are defined, all comments are treated as options to the engines. It occurred that although WBTM works fine with /name and /group -options, Winboard does not. The solution only works with versions 0.32 upwards. The solution is to put /group and /name -options last in the line and after a semicolon. That way Winboard will treat them as comments, but WBTM will recognize them and treat the semicolon as whitespace.
The program name (with options, if needed) is obligatory. Many engines are located in their own directories, what means that the /fd=directory_path option is needed. WBTM assumes, that the first thing on a line is program name (with it's options).
For WBTM you can also specify two options, which are not recognized by Winboard and therefore they do no harm in normal Winboard use. Those options are /name and /group. The /name option let's you specify a name for the engine, which will be shown in WBTM. This is convenient if you want to use the same engine with several options or configurations. The option /group is ment for large player lists. If you have all 100+ engines installed and they all are in the same Winboard.ini, it is not so nice to pick say only the ten highest ranked engines. With /group you can divide the player list to several groups, which can then be handled with commands addgroup and available. An engine can belong to several groups. Here's an example of winboard.ini:
/firstChessProgramNames={
bestia /fd c:\chess\winboard ; /group="a
b"
Crafty /fd=c:\chess\winboard
/firstInitString="-init\n-a\n-b\n-xboard" ; /group="a
c"
nerowb /fd c:\chess\winboard ; /group="b"
Ozwald043 /fd=c:\chess\ozwald\oz043 ; /name="NewOzwald"
/group="d"
freyr /fd c:\chess\winboard /xreuse ; /group="d"
Sjeng8 /fd c:\chess\winboard /group="c"
yace023 /fd c:\chess\winboard ; /name="OldYace"
/group="c d"
"morphy_322 -x" /fd c:\chess\winboard /xreuse ;
/name="Morphy"
"faile -hash16" /fd c:\chess\winboard ;
/group="d" /name="Some Version Of Faile"
mint /fd c:\chess\winboard ;
/group="a"
MAD /fd c:\chess\winboard\francesca /xreuse ;
/group="a"
LG2000v3 /fd=c:\chess\winboard\LG2000 /xreuse ;
/group="a"
}
Note that the parameters given to specific engines here may be totally incorrect for those particular engines.
Winboard accepts two formats of the
player lists:
/firstProgramNames={GNUChess
"Crafty" /fd="c:\program files\crafty"
"yace" /fd=d:\chess programs\yace"
}
and
/firstProgramNames="GNUChess
\"Crafty\" /fd=\"c:\\program files\\crafty\"
\yace\" /fd=\"d:\\chess programs\\yace\"
"
The difference is the characters, that enclose the section. In the first one they are { and }, in second they are double quotes. I prefer the first alternative, because it is simpler, and it is also mentioned in the winboard.hlp. If you use the second alternative, you must make sure that quotes (both single and double) and backslash are preceded by backslash, otherwise there is no way to know what you mean.
WBTM supports both these formats.
Once you have set up your player file running a tourney can be quite simple. Let's assume your Winboard.ini is all set up and Winboard path is c:\chess\winboard\winboard.exe. Then you can create and run a tourney with the following commands to the WBTM prompt:
Reset
Set type
RoundRobin
Set WinboardPath c:\chess\winboard.exe
ReadPlayers
AddAllPlayers
CreateRRGames
Spool -all
Run
Now let's see what happens here. The reset command is quite obvious, it clears (or resets) all variables of the tourney. Then we must set the tourney's type to Round Robin. Then the program needs to know where Winboard's executable resides. Next the players are read to the player list (note that the player list presents only the players that can be added to tourney, you still have to add them by hand). Then all players on the list are added to the tourney. Now we can create games for a round-robin tourney with CreateRRGames. At this point we have created the tourney, since all players and games between them exist. The next step is playing the games. For that the games must be spooled, which means that WBTM creates a bat-file for each game, one that calls Winboard with correct parameters so that the two engines play their game with correct options. You can call the bat-files yourself, but I strongly suggest you use the WBTM's runner, which executes all spooled games one by one and collects the results (and creates a results report in HTML and copies the games as PGN to a single file). By default the runner is set to STOP, and you can set it to RUN-state with command run. If things go smoothly, in the end you have a file named default.pgn with all the games and table.htm with the results table in your current directory.
To run a swiss tourney is complicated than running round robin tourneys, but not much. When all the players wanted to play are added, the number of rounds to be played must be set.
Reset
Set type Swiss
Set WinboardPath c:\chess\winboard.exe
ReadPlayers
AddAllPlayers
SetRounds 5
Pair
Spool -all
Run
Now let's see what happens here different than round robin tourney. The whole idea of swiss tourneys is that every player will not meet all the other players, which means thet the whole tourney can be finished in less time. That means that there must be some way to determine which players will meet on each round. Swiss pairing system tries always to pair players, who have scored the same number of points on the previous rounds. There are some principles and many rules in pairing a swiss round, and the most important one is that no players shall meet each other more than once during the tourney. The command Pair will do the pairing automatically in normal cases. There are situations when it will fail, but this topic is handled more detailed under the pairing section.
In a swiss tourney games can only be created for one round at a time, since the next round's pairings depend on previous round's results. Therefore in this example the Pair + Spool -all -commands will have to be typed five times, every time after a round is ready.
So, you can run a simple tourney with time control five minutes for the whole game. How about changing some parameters? You can set every parameter with command set. If you type only set without any parameters, you get a list of all the items that can be set. The current list is the following:
AutoRunNEW | AutoSaveNEW | Computer | FilesPath |
Hashtables | Name | Options | PgnFile |
Ponder | RoundsNEW | SubRounds | Tablebases |
TimeControl | TypeNEW | WinboardPath | WhiteOptions |
BlackOptions | PicsDirNEW |
Let's go through the parameters one by one:
If you set AutoRun on, it will spool games one by one as long as there are games. Games with unknown result will be replayed. If tourney type is swiss, a new round will be paired automatically when a round is finished. All tourneys end when all the games are finished with known results.
If you set AutoSave on, the tourney will automatically be saved after every game. The save file will be the file where tourney was saved last time, or tourney.ini in the starting directory. Tourney will also be saved before quitting, if you exit with command quit.
This is text-only setting. This string will indicate the computer you have used in the tourney, and will appear in the HTML-result file.
This is the directory where all files (bat, pgn) of the tourney reside. By default it is set to empty, which means any one directory you currently are in. The last character should be \, otherwise it is added.
This is the directory where all image files for HTML-resulttable reside. Initially it is set to empty, when all the images must be in same dir as the html-file. This setting is relative, so it will simply be appended in fromt of the file name. It is your own responsibility to make sure that the directory exists. If you generate the html-file to a directory, where is no subdirectory with the images, no pictures will be shown.
Another thing you have to handle yourself is tha last character of PicsDir. If the image files are on disk, the last character should be '\', whereas in web it should be '/'. This is a thing that can't be automatically determined, so it is pu to you to make it work. Or go the simplest path, and use characters instead of pictures, see the -xg-option of table.
This is text-only setting, and currently the text you set here will appear in the HTML-result file, nowhere else. You are supposed to tell the hashtable settings used in the tourney.
This is text-only setting, and currently the text you set here will appear in the HTML-result file as name of the page.
Tourney specific options for Winboard. For example if you want to show board coordinates while the programs play, you can set Options to /coords. Note that player specific options override tourney specific ones, and there are a couple of parameters that are needed by WBTM.
Tourney specific options for Winboard. For example if you want to show board coordinates while the programs play, you can set Options to /coords. Note that player specific options override tourney specific ones, and there are a couple of parameters that are needed by WBTM.
Don't ask me what is the difference between white and black options or why they both are there. We all make mistakes!
Sets the name (and optionally location too) of the pgn-file where the games are collected. If PgnFile includes '\'-characters, it is interpreted as a whole path, otherwise only filename, which will reside in FilesPath-directory.
Sets ponder on or off. Pondering means, that engine can think on opponent's time. It is recommended that ponder is only used with multi-cpu computers.
Sets the number of rounds in swiss tourney. Minimum is so, that 2^rounds >= number of players. That ensures that only one player can win all his games. Maximum is number of players / 2. If you want to have more rounds, play a round robin tourney.
This setting determines what is done to winboard.debug files that Winboard produces. Possible values are ALWAYS saved, AUTOMATICally saved and NEVER saved. Automatic saving means that only those files where the game's result wsn't found are saved. The save file name is gXXX.debug, where XXX is the game's number.
How many games every engine shall play against every other engine. A normal round-robin tourney runs with SubRounds = 1, double with SubRounds = 2 etc.
This is text-only setting, and currently the text you set here will appear in the HTML-result file, nowhere else. You are supposed to type here the tablebases used in the tourney.
You should specify three parameters: moves per session, time and increment. If you want to play the whole game in some time, you set moves per session to 0. Time is minutes or minutes:seconds. Increment is always seconds. Example: blitz, 5 minutes for 40 moves without increment: set TimeControl 40 5 0
Tourney type. Either Round Robin or Swiss.
Now this is an important setting. In order to be able to generate working bat-files WBTM has to know where Winboard.exe is. Before spooling any games Tourney Manager tries to open the Winboard.exe-file, so there must exist one by that name, otherwise you won't spool a game.
Besides commands and settings there are a couple of things you should know.
You will probably have some settings which apply to every tourney you run. Such settings can be for example your winboard path. You can save your favourite settings with the plain Save command. Save without parameters saves the current tourney to file tourney.ini in the same directory where WBTMs executable lies. This file is automatically loaded every time WBTM starts. This fact gives you also possibility to type save before you exit, when you will continue from the very same situation next time you run WBTM. Note that save saves everything from a tourney, that includes games, their status and players, but not the player list.
To run really automated tourneys you can use WBTM with a command file. You just type all the commands you want to a file and then run WBTM with that file as parameter. For example:
Tourney.exe command_file.txt
In this format WBTM exits when all the commands from the file have been executed. If you want to continue after the commands, you should use the option c. This way you can specify commands that are always run when WBTM starts. One possibility could be read c:\players.txt, when you would automatically have your player list ready.
If you give a command that is not recognized by Tourney Manager, it is treated as a system command. It means that you can use commands such as dir, type, copy, del etc. In WBTM prompt too. The command cd is an exception, it doesnt work the way I imagined. Therefore its replaced with the C-function chdir.
Runner is a vital part in making WBTM's tourneys automatic. Runner works in its own thread. To the user runner has two states: it is either on or off. When runner is on, it waits until there is a game with status SPOOLED in the tourney. Then runner launches Winboard to play that game. While Winboard is running, runner reads the winboard.debug -file seeking for indication of end of the game (line beginning with GameEnd). When the game is over, runner reads the result and waits for next spooled game. Runner can be started or stopped either immediately or in the future, you can specify starting and stopping time (and date). When runner is on, that only means that runner has the permission to start spooled games, it doesn't affect Winboard any way.
Games can also be played outside WBTM and runner. You just have to execute the bat-files in files-directory. Runner will always check if spooled games are already played outside WBTM. This is determined by existence of pgn-file of the same number as the game. For example the bat file for game number 14 is named g14.bat and it's pgn-file g14.pgn. So if game 14 is spooled and runner is on it will check if there exists a file named g14.pgn. If it does, then result for game number 14 is searched from that file no matter what it really includes, it can even be a jpg-photo of yourself.
You can specify how many games a player plays against each of the opponents. That number is controlled by the SubRounds-setting. You can create games with the command CreateRRGames, which will create games required to run a Round Robin tourney with current players or Pair, which will create games for a swiss tourney according to its parameters. CreateRRGames deletes all existing games, so it is quite dangerous command.
When a game is created, it's status is NOTHING DONE. That is true, it is simply created, but that is all. No bat-files or anything else exists for it, it only has two players assigned, and a round - subround -property. When you want to see some action, you must spool the game. Spooling means that a bat-file is created for the game and it's status is changed to SPOOLED. The bat-file will include a command-line call to Winboard with all appropriate options.
If the tourney setting AutoRun is on, WBTM will automatically spool games when runner is on and there are no spooled games. In swiss tourneys new games will be paired, if a round is finished.
After the game is run (the bat file is executed and Winboard is finished with the game) the result is read from the pgn-file. At the same time game's status is also changed to READY. If result wasn't found the result-property is set to UNFINISHED or UNKNOWN. Games with this result and status READY are marked with '*' on result table. Usually something has gone wrong with these games, for example one engine has not started playing at all. If you decide that these games should be played again you can do it with Replay. If you decide that a player is having too many difficulties you can forfeit all it's resulting games, ie. set the results as win for the opponent. To set the result or status of a single game use the command game.
You can always observe the status of a tourney with command TextTable. It produces a result grid with player's standings, results of individual games, total points, comparison points and a bar visualizing the amount of points scored. If there exists at least one game with status other that READY the players will be sort according their numbers. When the tourney is finished, players are sord according to their standings.
The comparison points are Sonneborn-Berger-points, because if two players have the same score in Round-Robin tourney, their Buchholz points are also identical.
The bar indicating player's points has three possible characters: # means a whole point, \ means half a point, and | is only a separator making it easier to see how many points a player has scored.
A somewhat nicer-looking result table is generated with command Table. It produces an equal table in html-format. Note that if you want the bar shown with the gif-pictures while publishing the table in web, you have to make sure that the path to the gifs is correct. I don't know how to solve the problem with these paths so that they could easily be visible both in web and on local computer. If you have a suggestion, mail me!
Mainly for debugging purposes WBTM keeps a log of it's console input and output. A file named WBTM.log is automatically created when you execute WBTM. It will reside in the directory where you called WBTM. It is overwritten every time WBTM is started.
If you use the system command 'dir' for the current directory, you will always see a file named 'tmpfile.$$$'. That file is needed for logging system commands' output, and it is automatically deleted after the logging is done (which is in practice immediately).
5.5 Saving winboard.debug-files
Sometimes something goes wrong with running the games and it may be an engine's fault. In such situations it would be nice to see the winboard.debug-file, if it revealed what went wrong. For that there is a tourney option: SaveDebugFiles. It can have three different values: NEVER, AUTO, and ALWAYS. Never and always are obvious, but auto saves winboard.debug for those games, where result was set to UNKNOWN or UNFINISHED (something went wrong because the game was not finished). Saved files get the name gXXX.debug, where XXX is the game's number.
I won't write a tutorial how the swiss pairing is done. If you are not familiar with the matter, I suggest you just use plain Pair and take whatever it gives you. But if you know how swiss pairing works, there are some points which may be useful. WBTM tries to make pairing according to FIDE rules. First step is to create brackets. That can be done with CreateBrackets, when you can specify whether to create the brackets from top to bottom (highest score first) or vice versa and how big brackets will be created, ie. what is the acceptable difference in scores within players in same bracket. These special cases are only needed in special cases, where normal pair fails. It doesn't really fail, but it can get stuck to situations where making pairing would get a really long time. In these cases creating the brackets upwards starting from the lowest players usually helps.
You can see the created brackets with ShowBrackets. If you are not satisfied with the pairing WBTM made, you can do it completely or partially manually with giving parameters to Pair. You can specify two players, who will be paired, if they have not met each other. You can specify a bracket to be paired, or you can give the same parameters to pair as you gave to CreateBrackets. It is also possible to alter the timeout value. That means that Pair will usually try 10 seconds to make pairing, after which it resigns and tries other settings. The settings go in following order:
Finally Pair may come to a point where all the players are in one bracket. Pairing this can fail too, but then you should really do the whole pairing manually. This pairing routine has been tested with thousands of simulated tourneys, which have shown that the basic pairing works fine with tourneys where Rounds < 15, which would already allow far more players than there are different Winboard engines (written 18.9.2001).
Let's start with player list related commands, since creating players and adding them to the tourney is always the first thing you do when starting a tourney.
CreatePlayer | DeletePlayer | WritePlayers | ReadPlayersCHANGED |
AvailableCHANGED | AddPlayer | RemovePlayer | AddAllPlayers |
AddGroupNEW |
Creates a new player to playerlist. A player created with CreatePlayer is not added to current tourney by default. A player can only enter tourney with commands AddPlayer or AddAllPlayers.
The user will be asked for new player's
- Name
- Dir - the directory where program's exe-file resides
InitString - engine options for winboard. If the engine must be started with some options, for example engine.exe -hash32 -xboard, then initstring would be '-hash32 -xboard'. You shouldn't type the quotes, they are added automatically if needed. Options - options for winboard. If the engine needs some special winboard option, for example /initstring 'Hello, world!', then it should be put here. Note that these options are added last on the winboard command line, so if engine needs it's own special time control, it can be specified here. ProgramExe - Name of engine's exe-file, for example Engine_012.exe.
Deletes player from playerlist, so that <player> can no longer be added to tourneys. Doesn't affect players already in a tourney. If you want to remove a player from tourney, use RemovePlayer instead.
Player can be referred by name or number. If referred by name, the whole name (case-sensitive) must be typed.
WritePlayers (wri) <player-file_path>
You can save a player list with WritePlayers. It should be noted, that saving player list writes over the existing file. If you want to append a player to file, you should first read the list from file.
ReadPlayers (readp) <player-file_path>
When creating a tourney you must add players. Players can only be added from a player list. To create players to list you can either create every player by hand with CreatePlayer, or read formerly created players from a player file. If you don't specify a file, then winboard.ini is automatically tried.
Shows all available players, that is players created with CreatePlayer or read from file with ReadPlayers, whose name begin with <player>. If <player> is omitted, shows all available players.
Adds <player> to tourney. Player can be referred by name or number.
Removes player from tourney. Player can be referred by name or number. If referred by name, the whole name (case-sensitive) must be typed.
If AutoSave is on, tourney will be saved before executing this command.
Adds all available players to tourney one by one. Behaves similarly to adding players by hand.
Adds all available players whose group setting include <group> to tourney one by one. Behaves similarly to adding players by hand.
Once you have created all the players you want and written them to a player file, you don't have to create them again. When starting a new tourney, you just read the players to player list, and then add all the players you want to the tourney.
Reset | Load | Save | CreateRRGames |
CreateBracketsNEW | ShowBracketsNEW | PairNEW | Spool |
Run | Stop | Player | Game |
RemoveGameCHANGED | ShowGamesCHANGED | ShowPlayers | Get |
Set | TableCHANGED | TextTableCHANGED | Replay |
UnSpoolNEW | ReSpool | ForfeitPlayer | GetAllResults |
HouseKeepNEW |
Clears the whole tourney, and sets the variable-values to defaults. If AutoSave is on, tourney will be saved before executing this command.
Loads a tourney from file. If <file_path> is omitted, a file named 'tourney.ini' from current directory is loaded if it exists. When loading a tourney, all variables concerning that tourney are loaded, that includes the schedule information, but not runner status. If a game is running on winboard when tourney is saved, it is not likely that the same game is still in progress when tourney is loaded again.
A tourney can be saved to a file. Saving includes all variables, players and schedule related settings. The runner status is not saved, because there is no way to determine whether winboard is running a game from this tourney or not. If winboard is not running, the save command is purposed to save the whole situation, so that an identical situation could be restored later with Load.
If <file_path> is omitted, the situation will be saved to file named 'tourney.ini' in current directory, it that is possible.
If AutoSave is on, this command also sets the save file.
When all players are added and tourney parameters (time control, subrounds, directories, files etc.) are set, the games can be created with CreateRRGames. Like it's name suggests, it creates all games for Round Robin tourney with current players. CreateRRGames deletes all existing games!
If AutoSave is on, tourney will be saved before executing this command.
Pair [<bracket>] [<player1> <player2>] [-size <size>] [-time <seconds>] [-down/-up]
Pairs a swiss round. Without parameters pairs using the basic method. If you give one number as parameter, a bracket by that number will be paired. If you give two players (numbers or names) they will be paired. Bracket size may be specified with -size, timeout with -time and direction of pairing with -up and -down. For details see Pairing swiss rounds.
CreateBrackets (createb) [-size <size>] [-down/-up]
Creates brackets for swiss tourney. Bracket size may be specified with -size, timeout with -time and direction of pairing with -up and -down. For details see Pairing swiss rounds.
ShowBrackets (showb) [<bracket>]
Shows either all brackets (no parameters) or a specified bracket.
Spool (spo) [<item> [<number>]]
Spools the item to Runner. When a game is spooled, it's status is changed and a bat-file is created. The Runner seeks spooled games and if it is not currently running any, it will run the next spooled game.
You can spool the next game, a game by number, the next round, a specified round, all games of a particular player or all remaining games. If <item> is omitted, the next game will be spooled. The next game will be determined by round, so that game will be selected from lowest round with games with status NOTHING DONE. The same applies to determining next round.
If <item> is a number, then game by that number is spooled. To specify a round, use 'round' as <item>, and 'player' when specifying a player.
Here's a summary:
spool Spools the next game. spool 3 Spools game number 3. spool -round Spools the next round. spool -round 3 Spools round 3. spool -player 3 Spools all games of player number 3. spool -player Ozw Spools all games of all players whose name begins with 'Ozw'. spool -all Spools all remaining games. Run [[<start_date>] <start_time>]
Sets runner on. That means that spooled games will be run with Winboard one by one. <start_time> specifies the time when runner will be activated. When runner is on, that only means that runner has the permission to start spooled games, it doesn't affect Winboard.
Start time is of format hh:mm:ss, where minutes and seconds can be omitted.
Start date is of format dd.mm.yyyy.
Stop [[<stop_date>] <stop_time>]
Behaves like the run command, but stops runner instead of starting it.
Player <player> [<variable> <value>]
You can set and view player's variables with this command. If you omit <variable> and <value>, player's variables are shown.
Possible variables to alter are the same which occur in the player file: Name, directory, executable, init string, white options, black options and group.
Game <number> [<command> <param>]
Modify some data of a specific game. A game can only be referred by number.
<command> can be result or status. If <command> is not specified, game data will be shown.
Command Result sets the game's result. <param> can then be one of the following:
1-0 (white win)
0-1 (black win)
1/2-1/2 (draw)
unfinished
<command> Status sets the game's status. <param> can then be one of the following:
0 (Nothing done)
1 (Spooled)
2 (Ready)
If status is set to READY, the game's result will be set to UNKNOWN.
RemoveGame (remg) [<number>] [-all] [-player <number>/<name>] [-white <number>/<name>] [-black <number>/<name>] [-round <number>] [-subround <number>] [-status <status>] [-result <result>]
Removes games. If -all is given, then all existing games will be removed. Otherwise all the given conditions must hold at the same time. If we wanted to remove all games, where player 'Ozwald' has played on white and black has won, we would give the command
remg -white Ozwald -result 0-1 -status READY
The alternatives for status are: nothing (nothing done), spooled and ready. The alternatives for result are: white or 1-0 for white win, black or 0-1 for black win, draw or 1/2, unknown and both lose.
If AutoSave is on, tourney will be saved before executing this command.
ShowGames (showg) [<number>] [-all] [-player <number>/<name>] [-white <number>/<name>] [-black <number>/<name>] [-round <number>] [-subround <number>] [-status <status>] [-result <result>]
Shows games. If -all is given, then all existing games will be shown. Otherwise all the given conditions must hold at the same time. If we wanted to show all games, where player 'Ozwald' has played on white and black has won, we would give the command
showg -white Ozwald -result 0-1 -status READY
The alternatives for status are: nothing (nothing done), spooled and ready. The alternatives for result are: white or 1-0 for white win, black or 0-1 for black win, draw or 1/2, unknown and both lose.
ShowPlayers (showp) [<number> / <name>]
Plain ShowPlayers without parameters shows a list of players at current tourney. You can also specify one player by number or one or several players by name. Name can be the name as whole or only the beginning, when all players matching that string will be showed. If parameters are present, a more detailed info will be shown. That info includes number, name, program exe, options, init string, program directory, current rank in tourney, points scored so far, buchholz and sonneborn-berger -comparisons and a list of games there player has played.
Shows the current value of <variable>. Type 'Get' to see a list of available variables. If you specify variable 'All', you get a list of all the variables at once.
Sets the value of <variable>. The only non-trivial variable is TimeControl, which format is MPS TIME INC. MPS specifies how many moves are to be completed within TIME. TIME is just plain minutes or min:sec. INC is time bonus (seconds) player gets for every move.
There is a new tourney option: SaveDebugFiles. It can have three different values: NEVER, AUTO, and ALWAYS. Never and always are obvious, but auto saves winboard.debug for those games, where result was set to UNKNOWN or UNFINISHED (something went wrong because the game was not finished). Saved files get the name gXXX.debug, where XXX is the game's number.
Table [-s] [-n] [-d] [-p] [-c] [-r] [-b] [-a] [-t] [<html-file>]
Writes result table in html-format to <html-file>. If <html-file> is omitted, table is written to file 'table.htm' in files directory. There are now nine options. If you give only the option-letter, that option is turned on. If you prefix that letter by 'x', that option is turned off. For example -s would turn sorting on and -xc would turn the comparison-column off. These options are static, which means that these options apply till they are changed. So giving the options as before, all the result tables would be formatted sorted and without comparison columns, until they were altered again. The only columns which are always present are player names and total points scored.
In swiss tourneys, if sorting is on, the opponents of a player are now referred as players ranking rather than player's number, as was before. An example: Let's say Crafty is player number 2 and is ranked first. On the first round it defeated Ozwald, number 5, who is now ranked 10. Formerly Crafty's result cell in round 1 would have said +W5 and Ozwald's -B2, but now they say +10W for crafty and -1B for Ozwald.
To summarize the situation now: if table is not sorted, the rank-column tells player's current ranking. If table is sorted, the player's number carries no information.
Before: Now:
Rank No Name 1 2 1. 2. Crafty +W3 2. 1. ... 3. 4. ... 4. 5. ... 5. 6. ... 6. 3. Ozwald -B2 --->
Rank No Name 1 2 1. 2. Crafty +W6 2. 1. ... 3. 4. ... 4. 5. ... 5. 6. ... 6. 3. Ozwald -B1
Option Explanation -s Sort the table according to player rankings. If this is off, players are displayed order of their numbers. -n Show player numbers. -d Show games grid, ie. individual results of games between each player. -p Show grid points as total score against that opponent instead of result of every game. If SubRounds = 3, then a grid cell would have either text "2.0" (on) or "=1=" (off). -c Show comparison points. In Round Robin tourneys only Sonneborn-Berger comparison is shown, in Swiss tourneys also Buchholz comparison is shown. -r Show player rank. -b Show bar indicating player's points. -a AutoSort on/off. If auto sort is on, it will override -s. If this is on, sorting will only be applied on finished tourneys. -t Show total number of games played. TextTable (tex) [-s] [-n] [-d] [-p] [-c] [-r] [-b] [-a] [-t] [<txt-file>]
Writes result table in text-format to <txt-file>. If <txt-file> is omitted, table is written to stdout, which normally means the console. See Table for options.
During a tourney there will often be games where either program has had some problem and therefore the game status is READY, but result is UNKNOWN. With Replay, all these UNKNOWN games will be spooled again. It is your choice as tourney organizer to decide when a program should be adjudicated to lose and when to replay.
To adjudicate you can use ForfeitPlayer or Game.
If you delete the bat-files for spooled games, no actual damage is done, since command ReSpool will spool every game with status SPOOLED again. The spooling order will be random.
This command will unspool every spooled game. That means that the games' status will be changed to NOTHING DONE and the bat-files will be deleted.
All games of player <player> are adjudicated as a win for the opponent. This command only affects games with status other than READY. You can also change game's status with the command Game.
Player can be referred by name or number.
Gets the results for each spooled game, if it is available (that means it seeks a pgn-file for that particular game). This command is quite useless, there shouldn't be any occasion when it has to be used since the end of game is detected from winboard.debug, not from the existence of pgn-file.
This command does housekeeping tasks, ie. things that are done when there is time and Winboard is not running. That involves
- checking the log file size
- Saving the tourney if AutoSave is on
- in case of swiss tourney pairing a round if AutoRun is on
You should not have to give this command ever, but it is there if you need to.
View | Quit |
This command launches Winboard in pgn-viewer mode (if you have set winboard path correctly) and loads automatically the pgn-save file. Move time interval is set to 0, so you will automatically see game's last position, from which you can easily find games where a program has not made moves at all, and perhaps decide to replay them.
Isn't it quite obvious, what this command does? Well, if AutoSave is on, the tourney is also saved before exiting.
WBTM is about 10000 lines of C++ code. I don't even dream of releasing a bug-free program of this scope at once. So if you have bugs, comments, questions, suggestions or think that something vital is missing from WBTM dont hesitate to contact me. All feedback is welcome!
- Jori Ostrovskij -