let's see what kind of difference we see in the real world - 5 minute chess with 5 second increment - using the magic 63 opening positions ( hand selected positions from Kai's epd opening file)
I have modify the script (csh) lately to "automate" some of the variables,
Bob's match file takes the time parameter sin centiseconds so I set the base in seconds the script converts it to centiseconds and also automatically uses the base to calculate the increment - I use 1/60 of of the base as the default for the increment:
Code: Select all
set base = 300 ## in seconds
echo "base $base seconds"
@ time = $base * 100
set inc = `echo "scale=2; ($time * 100 / 100) / 60" |bc -lq`
set increment = `echo "scale=2; ($inc * 100 / 100) / 100" |bc -lq`
assign the engines (no change in script), uci engines are called by polyglot, hence the ini file:
Code: Select all
set eng1 = asmfish.ini
set eng2 = SF-McBrain-v31a.ini
set eng3 = komodo-11.2.ini
set eng4 = stockfish.ini
at some point , I may automate this piece, but I haven't so far:
Code: Select all
set opponents1= ( $eng1 $eng2 $eng3 $eng4 )
set opponents2= ( $eng4 $eng3 $eng2 $eng1 )
this code counts the players:
Code: Select all
set players1 = $#opponents1
set players2 = $#opponents2
pick the file and number of positions:
Code: Select all
set file = magic63.epd
@ positions = 63
the script here hasn't changed:
Code: Select all
set time_odds = 1
set games_per_position = 1
set positions_per_match = 1
@ rounds = $positions * 2
echo "using $positions positions from EPD file"
@ gamesPlanned = ( $players1 ) * ( $players2 - 1 ) * $positions * $games_per_position
echo $gamesPlanned "Games Planned"
sleep 2
@ counterStart = ( $gamesPlanned / ( $positions * $games_per_position ) ) * 5 + 12
@ counterIncrement = ( $counterStart - 12 )
cd run
set logid1 = 101
set logid2 = 50101
set logid3 = 10001
set logid4 = 5000101
rm -f commands
@ position = 0 #you can change this to start @ different position in the file
set counter = 0
set gamesStarted = 0
@ gamesPlanned = $gamesPlanned
this is the match driver here - the script creates commands that will then be called sequentially - two programs are called , "match" which keeps the games going and "geteloRR1" - which calls a modified version of Bayeselo and updates the results at regular intervals - "jot" is a very nifty tool and some have called it "seq" on steroids. This is also where the copying to dropbox occurs:
Code: Select all
loop:
@ position = $position + 1 # start at the 1st position ,
foreach player1 (`jot $players1`)
foreach player2 (`jot $players2`)
if ($opponents1[$player1] == $opponents2[$player2] ) goto skip # do not want engines to play themselves
echo "./match "match$position.$player1" $file $position $games_per_position $positions_per_match $time $inc $opponents1[$player1] localhost $logid1 $opponents2[$player2] localhost $logid2 $time_odds" >> commands
@ logid1 = $logid1 + $games_per_position * $positions_per_match
@ logid2 = $logid2 + $games_per_position * $positions_per_match
@ pairings = ( $pairings + $games_per_position )
echo "$pairings"
@ completed = ( $pairings - 11 )
@ gamesStarted = $pairings - $counter
if (( $gamesStarted + 1 ) < $counterStart ) goto skip2
echo "echo " "" >> commands
echo "echo "$completed of $gamesPlanned games completed..."" >> commands
echo "echo "time control: $base+$increment seconds"" >> commands
echo "./geteloRR1" >> commands
echo "echo " ">>~/Dropbox/Shared\ Folder/elota.txt" >> commands
echo "echo "$completed of $gamesPlanned games completed...">>~/Dropbox/Shared\ Folder/elota.txt" >> commands
echo "echo "time control: $base+$increment seconds ">>~/Dropbox/Shared\ Folder/elota.txt" >> commands
echo "./geteloRR2>>~/Dropbox/Shared\ Folder/elota.txt" >> commands
echo "cp pgn /Users/michaelbyrne/Dropbox/Shared\ Folder/all.pgn" >> commands
@ counter = $counter + $counterIncrement
skip2:
skip:
end
end # round is completed with both colors scripted
# echo "rm game.* log.*" >>commands
if ($pairings < $gamesPlanned ) goto loop
there also some wrap-up script once the match is over - that's for another day..
Ina addition there is a another script that is called "watcher" - which simply calls bayeselo periodically , reads the pgn files and summarize the results and copies the results to dropbox so I can easily follow remotely.:
Code: Select all
Date: 11/08/17 : 23:40:01
ResultSet-EloRating>00:00:00,00
ResultSet-EloRating>Rank Name Rating Δ + - # Σ Σ% W L D W% =% OppR
---------------------------------------------------------------------------------------------------------
1 asmFishX_2017-11-08_popc 3117 0.0 90 90 16 8.5 53.1 3 2 11 18.8 68.8 3095
2 Stockfish 241017 64 POPC 3114 3.4 90 90 16 8.5 53.1 3 2 11 18.8 68.8 3096
3 SF-McBrain v3.1a 64 POPC 3102 11.9 86 86 18 9.0 50.0 3 3 12 16.7 66.7 3099
4 Komodo 11.2.2 64-bit 3067 34.4 96 96 16 7.0 43.8 4 6 6 25.0 37.5 3110
---------------------------------------------------------------------------------------------------------
Σ = total score, 1 point for win, 1/2 point for draw
Date: 11/08/17 : 23:50:01
ResultSet-EloRating>00:00:00,00
ResultSet-EloRating>Rank Name Rating Δ + - # Σ Σ% W L D W% =% OppR
---------------------------------------------------------------------------------------------------------
1 asmFishX_2017-11-08_popc 3123 0.0 74 74 21 11.5 54.8 4 2 15 19.0 71.4 3092
2 SF-McBrain v3.1a 64 POPC 3103 19.9 73 73 22 11.0 50.0 3 3 16 13.6 72.7 3100
3 Stockfish 241017 64 POPC 3100 3.3 79 79 19 9.5 50.0 3 3 13 15.8 68.4 3100
4 Komodo 11.2.2 64-bit 3074 26.2 80 80 20 9.0 45.0 4 6 10 20.0 50.0 3109
---------------------------------------------------------------------------------------------------------
Σ = total score, 1 point for win, 1/2 point for draw
Date: 11/09/17 : 00:00:01
ResultSet-EloRating>00:00:00,00
ResultSet-EloRating>Rank Name Rating Δ + - # Σ Σ% W L D W% =% OppR
---------------------------------------------------------------------------------------------------------
1 asmFishX_2017-11-08_popc 3122 0.0 73 73 22 12.0 54.5 4 2 16 18.2 72.7 3093
2 Stockfish 241017 64 POPC 3112 9.9 74 74 22 11.5 52.3 4 3 15 18.2 68.2 3097
3 SF-McBrain v3.1a 64 POPC 3112 0.5 71 71 24 12.5 52.1 4 3 17 16.7 70.8 3096
4 Komodo 11.2.2 64-bit 3053 58.4 76 76 22 9.0 40.9 4 8 10 18.2 45.5 3115
---------------------------------------------------------------------------------------------------------
Σ = total score, 1 point for win, 1/2 point for draw
this watcher will update the results every 10 minutes and you can follow here if you wish:
https://www.dropbox.com/s/y07af1ysloh01 ... 1.txt?dl=1