9 if { [
catch {
package require http}] } {
10 set ::tb::online_available 0
12 set ::tb::online_available 1
16 set url "http://k4it.de/egtb/fetch.php"
18 set proxyhost "127.0.0.1"
22 set tbInfo(section) 21
23 set tbInfo(material) "kpk"
24 set tbInfo(sections) [list 21 22 31 32 41]
25 foreach i $tbInfo(sections) {
set tbInfo($i) [list]}
27 set tbInfo(21) [list kqk krk kbk knk kpk]
29 set tbInfo(22) [list \
30 kqkq kqkr kqkb kqkn kqkp \
31 - krkr krkb krkn krkp \
36 set tbInfo(31) [list \
37 kqqk kqrk kqbk kqnk kqpk \
38 - krrk krbk krnk krpk \
43 set tbInfo(32) [list \
44 kqqkq kqqkr kqqkb kqqkn kqqkp \
45 kqrkq kqrkr kqrkb kqrkn kqrkp \
46 kqbkq kqbkr kqbkb kqbkn kqbkp \
47 kqnkq kqnkr kqnkb kqnkn kqnkp \
48 kqpkq kqpkr kqpkb kqpkn kqpkp \
50 krrkq krrkr krrkb krrkn krrkp \
51 krbkq krbkr krbkb krbkn krbkp \
52 krnkq krnkr krnkb krnkn krnkp \
53 krpkq krpkr krpkb krpkn krpkp \
55 kbbkq kbbkr kbbkb kbbkn kbbkp \
56 kbnkq kbnkr kbnkb kbnkn kbnkp \
57 kbpkq kbpkr kbpkb kbpkn kbpkp \
59 knnkq knnkr knnkb knnkn knnkp \
60 knpkq knpkr knpkb knpkn knpkp \
61 kppkq kppkr kppkb kppkn kppkp]
63 set tbInfo(41) [list \
64 kqqqk kqqrk kqqbk kqqnk kqqpk \
65 - kqrrk kqrbk kqrnk kqrpk \
66 - - kqbbk kqbnk kqbpk \
69 - krrrk krrbk krrnk krrpk \
70 - - krbbk krbnk krbpk \
73 - - kbbbk kbbnk kbbpk \
80 set tbInfo(42) [list \
81 kqqqkq kqqqkr kqqqkb kqqqkn kqqqkp \
82 kqqrkq kqqrkr kqqrkb kqqrkn kqqrkp \
83 kqqbkq kqqbkr kqqbkb kqqbkn kqqbkp \
84 kqqnkq kqqnkr kqqnkb kqqnkn kqqnkp \
85 kqqpkq kqqpkr kqqpkb kqqpkn kqqpkp \
86 kqrrkq kqrrkr kqrrkb kqrrkn kqrrkp \
87 kqrbkq kqrbkr kqrbkb kqrbkn kqrbkp \
88 kqrnkq kqrnkr kqrnkb kqrnkn kqrnkp \
89 kqrpkq kqrpkr kqrpkb kqrpkn kqrpkp \
90 kqbbkq kqbbkr kqbbkb kqbbkn kqbbkp \
91 kqbnkq kqbnkr kqbnkb kqbnkn kqbnkp \
92 kqbpkq kqbpkr kqbpkb kqbpkn kqbpkp \
93 kqnnkq kqnnkr kqnnkb kqnnkn kqnnkp \
94 kqnpkq kqnpkr kqnpkb kqnpkn kqnpkp \
95 kqppkq kqppkr kqppkb kqppkn kqppkp \
96 krrrkq krrrkr krrrkb krrrkn krrrkp \
97 krrbkq krrbkr krrbkb krrbkn krrbkp \
98 krrnkq krrnkr krrnkb krrnkn krrnkp \
99 krrpkq krrpkr krrpkb krrpkn krrpkp \
100 krbbkq krbbkr krbbkb krbbkn krbbkp \
101 krbnkq krbnkr krbnkb krbnkn krbnkp \
102 krbpkq krbpkr krbpkb krbpkn krbpkp \
103 krnnkq krnnkr krnnkb krnnkn krnnkp \
104 krnpkq krnpkr krnpkb krnpkn krnpkp \
105 krppkq krppkr krppkb krppkn krppkp \
106 kbbbkq kbbbkr kbbbkb kbbbkn kbbbkp \
107 kbbnkq kbbnkr kbbnkb kbbnkn kbbnkp \
108 kbbpkq kbbpkr kbbpkb kbbpkn kbbpkp \
109 kbnnkq kbnnkr kbnnkb kbnnkn kbnnkp \
110 kbnpkq kbnpkr kbnpkb kbnpkn kbnpkp \
111 kbppkq kbppkr kbppkb kbppkn kbppkp \
112 knnnkq knnnkr knnnkb knnnkn knnnkp \
113 knnpkq knnpkr knnpkb knnpkn knnpkp \
114 knppkq knppkr knppkb knppkn knppkp \
115 kpppkq kpppkr kpppkb kpppkn kpppkp]
120 proc ::tb::isopen {} {
121 return [
winfo exists .tbWin]
130 if {[
winfo exists $w]} {
return}
133 pack [ttk::frame $w.b] -side bottom -fill x
134 pack [ttk::frame $w.info] -side left -fill y
136 pack [ttk::frame $w.pos] -side right -fill both -expand yes
141 pack [ttk::frame $f.sec] -side top -fill x
142 foreach i $tbInfo(sections) {
143 set name "[
string index $i 0]-[
string index $i 1]"
144 ttk::radiobutton $f.sec.b$i -text " $name " -variable tbInfo(section) -value $i -command "::tb::section $i"
145 pack $f.sec.b$i -side left -pady 1 -padx 1
148 -width 35 -height 7 -font font_Fixed -wrap none \
149 -foreground black -background white -cursor top_left_arrow
150 pack $f.list -side top
151 pack [ttk::frame $f.separator -height 2]
155 -width 35 -height 0 -font font_Fixed -wrap none \
156 -foreground black -background white -cursor top_left_arrow
157 pack $f.data -side top -fill y -expand yes
159 $f.list.text tag configure avail -foreground blue
160 $f.list.text tag configure unavail -foreground gray40
161 $f.data.text tag configure fen -foreground blue
166 autoscrollframe $f text $f.text -width 30 -height 20 -font font_Small \
167 -wrap word -foreground black -background white -setgrid 1
168 $f.text tag configure indent -lmargin2 [font measure font_Fixed " "]
171 $f.board configure -relief solid -borderwidth 1
172 for {
set i 0} {$i < 64} {
incr i} {
173 ::board::bind $f.board $i <Button-1> [list ::tb::resultsBoard $i]
176 grid $f.board -row 0 -column 2 -rowspan 2
179 ttk::checkbutton $w.b.training -text $::tr(Training) -variable tbTraining -command ::tb::training
181 if { !$::tb::online_available } {
182 catch { $w.b.online configure -state disabled}
184 ttk::button $w.b.random -text $::tr(Random) -command ::tb::random
185 ttk::button $w.b.showboard -image tb_coords -command ::tb::showBoard
186 dialogbutton $w.b.help -text $::tr(Help) -command { helpWindow TB }
187 dialogbutton $w.b.close -text $::tr(Close) -command "destroy $w"
188 ttk::label $w.b.status -width 1 -textvar tbStatus -font font_Small -relief flat -anchor w
190 pack $w.b.training -side left -padx 2 -pady 2
191 catch {
pack $w.b.online -side left -padx 2 -pady 2}
192 pack $w.b.random $w.b.showboard -side left -padx 2 -pady 2
193 pack $w.b.status -side left -fill x -expand yes
194 bind $w <Destroy> { set ::tb::isOpen 0; set tbTraining 0 }
206 proc ::tb::showBoard {} {
214 grid $f.board -row 0 -column 2 -rowspan 2
221 proc ::tb::resultsBoard {sq} {
225 if {[
string index $board $sq] == "."} {
return}
232 set scores [
sc_pos probe board $sq]
233 set text(X) X
set color(X) red
set shadow(X) white
234 set text(=) =
set color(=) blue
set shadow(=) white
235 set text(?) "?"
set color(?) red
set shadow(?) white
236 set text(+) "#"
set text(-) "#"
237 if {[
sc_pos side] == "white"} {
238 set color(+) white
set color(-) black
239 set shadow(+) black
set shadow(-) white
241 set color(+) black
set color(-) white
242 set shadow(+) white
set shadow(-) black
244 for {
set i 0} {$i < 64} {
incr i} {
246 if {[
string index $board $i] != "."} { continue}
248 set score [
string index $scores $i]
249 catch {
::board::drawText $f.board $i $text($score) $color($score) 0 $shadow($score)}
257 proc ::tb::name {s} {
258 set s [
string toupper $s]
259 set idx [
string last "K" $s]
260 set new [
string range $s 0 [
expr $idx - 1]]
262 append new [
string range $s $idx end]
269 proc ::tb::section {{sec 0}} {
272 if {! [
winfo exists $w]} {
return}
273 if {$sec == 0} {
set sec $tbInfo(section)}
274 set tbInfo(section) $sec
275 if {! [
info exists tbInfo($sec)]} {
return}
276 set t $w.info.list.text
277 $t configure -state normal
279 $t configure -height 10
282 foreach tb $tbInfo($sec) {
284 $t insert end [
format "%-7s" ""]
286 set avail [
sc_info tb available $tb]
288 set taglist [list avail $tb]
290 set taglist [list unavail $tb]
292 $t insert end [
format "%-6s" [
::tb::name $tb]] $taglist
295 $t tag bind $tb <Any-Enter> \
296 [list $t tag configure $tb -foreground yellow -background darkBlue]
297 $t tag bind $tb <Any-Leave> \
298 [list $t tag configure $tb -foreground {} -background {}]
299 $t tag bind $tb <ButtonPress-1> [list ::tb::summary $tb]
302 if {$count == 5} {
set count 0
incr linecount $t insert end "\n"}
304 if {$linecount > 10} {
set linecount 10}
305 $t configure -height $linecount
306 $t configure -state disabled
312 proc ::tb::summary {{material ""}} {
315 if {! [
winfo exists $w]} {
return}
317 if {$material == ""} {
set material $tbInfo(material)}
318 set tbInfo(material) $material
319 set t $w.info.data.text
320 $t configure -state normal
322 $t insert end [
format "%-6s" [
::tb::name $material]]
323 if {! [
info exists tbs($material)]} {
324 $t insert end $::tr(NoSummary)
325 $t configure -state disabled
328 set data $tbs($material)
330 $t insert end [
format " %5u games per million\n\n" [
lindex $data 0]]
334 $t insert end $::tr(SideLongest)
335 $t insert end $::tr(toNoveMate)
336 $t insert end "---------------------------------\n"
339 $t insert end [
format "%-11s" $::tr(White)]
340 set len [
lindex $data 1]
341 set fen [
lindex $data 2]
342 if {$len == "0"} {
set len "-"}
343 if {[
string length $fen] > 2} {
345 $t insert end [
format "%3s" $len] [list fen $fen]
346 $t tag bind $fen <Any-Enter> \
347 [list $t tag configure $fen -foreground yellow -background darkBlue]
348 $t tag bind $fen <Any-Leave> \
349 [list $t tag configure $fen -foreground {} -background {}]
350 $t tag bind $fen <ButtonPress-1> [list ::tb::setFEN $fen]
352 $t insert end [
format "%3s" $len]
355 $t insert end [
format " %5s" [
lindex $data 5]]
356 $t insert end [
format " %5s" [
lindex $data 6]]
357 $t insert end [
format " %5s" [
lindex $data 7]]
361 $t insert end [
format "%-11s" $::tr(Black)]
362 set len [
lindex $data 3]
363 set fen [
lindex $data 4]
364 if {$len == "0"} {
set len "-"}
365 if {[
string length $fen] > 2} {
367 $t insert end [
format "%3s" $len] [list fen $fen]
368 $t tag bind $fen <Any-Enter> \
369 [list $t tag configure $fen -foreground yellow -background darkBlue]
370 $t tag bind $fen <Any-Leave> \
371 [list $t tag configure $fen -foreground {} -background {}]
372 $t tag bind $fen <ButtonPress-1> [list ::tb::setFEN $fen]
374 $t insert end [
format "%3s" $len]
377 $t insert end [
format " %5s" [
lindex $data 8]]
378 $t insert end [
format " %5s" [
lindex $data 9]]
379 $t insert end [
format " %5s" [
lindex $data 10]]
382 set mzugs [
lindex $data 11]
383 $t insert end $::tr(MutualZugzwang)
384 if {$mzugs >= 0} { $t insert end "$mzugs\n"}
else { $t insert end "?\n"}
386 $t configure -state disabled
391 set nBtmLoses [
lindex $data 12]
392 set nWtmLoses [
lindex $data 14]
393 set nBothLose [
lindex $data 16]
394 set n1 $::tr(WdrawBloss)
395 set n2 $::tr(BdrawWloss)
396 set n3 $::tr(AllLoss)
397 set zugnames [list $n1 $n2 $n3]
399 if {$nBtmLoses > 0} {
400 $t insert end [
lindex $zugnames 0]
401 $t insert end [
format "%5d\n" $nBtmLoses]
403 if {$nWtmLoses > 0} {
404 $t insert end [
lindex $zugnames 1]
405 $t insert end [
format "%5d\n" $nWtmLoses]
407 if {$nBothLose > 0} {
408 $t insert end [
lindex $zugnames 2]
409 $t insert end [
format "%5d\n" $nBothLose]
413 set btmFens [
lindex $data 13]
414 set wtmFens [
lindex $data 15]
415 set bothFens [
lindex $data 17]
416 set nBtmFens [
llength $btmFens]
417 set nWtmFens [
llength $wtmFens]
418 set nBothFens [
llength $bothFens]
419 set nTotalFens [
expr $nBtmFens + $nWtmFens + $nBothFens]
420 if {$nTotalFens == 0} {
421 $t configure -state disabled
426 $t insert end $::tr(SelectetZugzwang)
427 foreach n [list $nBtmFens $nWtmFens $nBothFens] \
428 fenlist [list $btmFens $wtmFens $bothFens] \
429 name $zugnames tomove [list b w w] {
430 if {$n == 0} { continue}
431 $t insert end "\n [
string trim $name]"
433 for {
set count 0} {$count < $n} {
incr count} {
434 set fen [
lindex $fenlist $count]
435 if {[
expr $count % 10] == 0} {
439 append fen " $tomove"
440 $t insert end [
format "%2d" [
expr $count + 1]] [list fen $fen]
441 $t tag bind $fen <Any-Enter> \
442 [list $t tag configure $fen -foreground yellow -background darkBlue]
443 $t tag bind $fen <Any-Leave> \
444 [list $t tag configure $fen -foreground {} -background {}]
445 $t tag bind $fen <ButtonPress-1> [list ::tb::setFEN $fen]
449 $t configure -state disabled
456 proc ::tb::results {} {
459 if {! [
winfo exists $w]} {
return}
469 $t insert end "\n (Training mode; results are hidden)"
471 $t insert end [
sc_pos probe report] indent
478 proc ::tb::updateOnline {} {
481 if {! [
winfo exists $w]} {
return}
487 if { ! $tbTraining } {
488 set query [ ::http::formatQuery hook null action egtb fen [
sc_pos fen]]
489 ::http::geturl $::tb::url -timeout 5000 -query $query -command { ::tb::httpCallback }
495 proc ::tb::httpCallback { token } {
497 upvar #0 $token state
500 if {! [
winfo exists $w]} {
return}
504 foreach tag {tagonline} {
506 set del [$t tag nextrange $tag 1.0]
507 if {$del == ""} {break}
508 catch {$t delete [
lindex $del 0] [
lindex $del 1]}
512 if {$state(status) != "ok"} {
513 $t insert end $state(status) tagonline
520 if {[
sc_pos side] == "black"} {
523 foreach line [
split $b "\n"] {
524 if {$line == "NEXTCOLOR"} {
535 foreach line [
split $b "\n"] {
536 if {$line == "NEXTCOLOR"} {
539 if { $line == "No information available" } {
540 append result "$line\n"
542 if {[
string match "hook|null|value|*" $line]} {
543 append result "Online : [
string range $line 16 end]\n"
546 if {[
scan $line "%d-%d:%s" sq1 sq2 tmp] == 3} {
547 set p1 [
string toupper [
string index [
sc_pos board] $sq1]]
548 set p2 [
string index [
sc_pos board] $sq2]
556 ::http::cleanup state
557 $t insert end $result tagonline
567 proc ::tb::random {} {
569 if {[
catch {
sc_game startBoard "random:$tbInfo(material)"} err]} {
570 tk_messageBox -title "Scid" -icon warning -type ok -message $err
576 sc_game startBoard "random:$tbInfo(material)"
585 proc ::tb::setFEN {fen} {
586 if {[
catch {
sc_game startBoard $fen} err]} {
587 tk_messageBox -title "Scid" -icon info -type ok -message $err
599 proc ::tb::training {} {
600 global tbTraining tbStatus gameInfo
604 set gameInfo(showTB_old) $gameInfo(showTB)
605 set gameInfo(showTB) 0
607 if {$gameInfo(showTB) == 0} {
set gameInfo(showTB) $gameInfo(showTB_old)}
618 global tbTraining tbStatus
619 if {! $tbTraining} {
return}
620 set moves [
split [
sc_pos probe optimal]]
621 set len [
llength $moves]
623 set tbStatus "No optimal move was found."
626 set i [
expr int(rand() * $len)]
627 set move [
lindex $moves $i]
628 if {[
catch {
sc_move addSan $move}]} {
629 set tbStatus "Error playing $move."
631 set tbStatus "Played $move."
663 257 10 {7K/6Q1/8/8/2k5/8/8/8} 0 -
664 100.0 0.0 0.0 0.0 10.3 89.7
669 542 16 {8/8/2R5/3k4/8/8/8/1K6} 0 -
670 100.0 0.0 0.0 0.0 9.9 90.1
676 0.0 100.0 0.0 0.0 100.0 0.0
682 0.0 100.0 0.0 0.0 100.0 0.0
687 2352 28 {8/8/8/1k6/8/8/K5P1/8} 0 -
688 76.5 23.5 0.0 0.0 41.9 58.1
693 222 13 {8/8/8/8/8/8/8/qk1K2Q1} 13 {8/8/8/8/8/8/8/QK1k2q1}
694 41.7 57.8 0.5 41.7 57.8 0.5
699 400 35 {K3r3/8/5k2/Q7/8/8/8/8} 19 {k7/5r2/K7/8/8/8/1Q6/8}
700 99.0 0.8 0.2 28.7 5.8 65.5
705 25 17 {K7/8/8/3k4/4b3/8/8/7Q} 0 -
706 99.7 0.3 0.0 0.0 23.1 76.9
711 74 21 {8/KQ6/2n5/2k5/8/8/8/8} 0 -
712 99.3 0.7 0.0 0.0 19.5 80.5
717 937 28 {3KQ3/8/8/8/8/8/3kp3/8} 29 {8/1p4k1/7Q/8/7K/8/8/8}
718 99.4 0.6 0.0 7.7 12.1 80.2
723 423 19 {8/3R4/8/8/5k2/6r1/7K/8} 19 {1k6/2R5/3K4/8/8/8/6r1/8}
724 29.1 70.2 0.7 29.1 70.2 0.7
729 322 29 {k7/8/b7/8/K7/R7/8/8} 0 -
730 35.2 64.8 0.0 0.0 96.8 3.2
732 4R3/8/8/8/8/b1K5/8/3k4 8/5R2/7b/8/8/2K5/8/1k6 8/8/1b6/5R2/8/3K4/8/2k5
733 8/8/8/8/8/1k6/b7/R1K5 8/8/8/8/8/2K5/4k3/R2b4
738 397 40 {8/8/6R1/2K5/n7/8/8/3k4} 1 {8/8/8/8/1n6/k7/8/KR6}
739 48.4 51.6 0.0 0.0 89.0 11.0
741 8/2n5/8/4R3/3K1k2/8/8/8 8/8/5k2/4R3/3K4/2n5/8/8 8/8/8/1k6/2R5/3K4/4n3/8
742 8/8/8/2n5/3K4/4R3/5k2/8 8/8/8/3k4/2R5/3K4/n7/8 8/8/8/3k4/4R3/3K4/6n1/8
743 8/8/8/4k3/3R4/2K5/1n6/8 8/8/8/5k2/4R3/3K4/2n5/8 8/8/8/6n1/3K4/4R3/3k4/8
744 8/8/8/8/2R5/1k1K4/4n3/8 8/8/8/8/3K1k2/4R3/8/2n5 8/8/8/8/3R4/2K1k3/1n6/8
745 8/8/8/8/4R3/3K1k2/2n5/8 8/8/8/8/6n1/3K4/4R3/3k4 8/8/8/8/8/2KR4/8/2k2n2
746 8/8/8/8/8/2RK4/8/n2k4 8/8/8/8/8/3KR3/8/3k2n1 8/8/8/n7/3K4/2R5/3k4/8
751 2146 26 {2K5/8/7p/6k1/8/8/R7/8} 43 {8/8/8/8/5R2/2pk4/5K2/8}
752 91.4 8.4 0.2 16.4 17.5 66.1
754 8/8/8/8/8/1k6/p7/R1K5 8/8/8/8/8/2k5/1p6/1R1K4 8/8/8/8/8/4k3/5p2/3K1R2
755 8/3K4/8/3k4/3p4/8/8/3R4 8/1K6/8/1k6/1p6/8/8/1R6 8/2K5/8/2k5/2p5/8/8/2R5
756 8/2K5/8/2k5/3p4/8/8/3R4 8/3K4/8/3k4/4p3/8/8/4R3 8/1K6/8/1k6/2p5/8/8/2R5
757 8/2K5/8/2k5/1p6/8/8/1R6 8/3K4/8/3k4/2p5/8/8/2R5 8/K7/8/k7/1p6/8/8/1R6
762 49 1 {8/8/8/8/8/K7/7B/kb6} 1 {6BK/8/6k1/8/8/b7/8/8}
763 0.0 100.0 0.0 0.0 100.0 0.0
768 87 1 {knB5/8/1K6/8/8/8/8/8} 1 {K1k1n3/B7/8/8/8/8/8/8}
769 0.0 100.0 0.0 0.0 100.0 0.0
774 387 1 {7k/7p/5K2/8/8/8/1B6/8} 29 {8/1p4k1/7B/8/8/7K/8/8}
775 0.0 94.8 5.2 23.6 76.4 0.0
776 1 0 {} 1 {8/8/8/8/8/8/1pK5/kB6} 0 {}
780 68 1 {k7/n1K5/8/3N4/8/8/8/8} 1 {8/8/8/8/1n6/1k6/8/KN6}
781 0.0 100.0 0.0 0.0 100.0 0.0
786 497 7 {8/8/8/8/pN6/8/2K5/k7} 29 {8/1p6/6kN/8/8/7K/8/8}
787 0.0 87.1 12.9 32.6 67.4 0.0
792 2810 33 {2K5/k7/7p/8/8/8/6P1/8} 33 {8/2p1K3/8/8/8/4P3/8/3k4}
793 43.4 33.3 23.2 43.4 33.3 23.2
794 121 106 {} 106 {} 15 {
795 8/8/8/1Kp5/2Pk4/8/8/8 8/8/8/2Kp4/3Pk3/8/8/8 8/8/8/8/1Kp5/2Pk4/8/8
796 8/8/8/8/1pK5/kP6/8/8 8/8/8/8/2Kp4/3Pk3/8/8 8/8/8/8/2pK4/1kP5/8/8
797 8/8/8/8/3Kp3/4Pk2/8/8 8/8/8/8/8/1Kp5/2Pk4/8 8/8/8/8/8/1pK5/kP6/8
798 8/8/8/8/8/2Kp4/3Pk3/8 8/8/8/8/8/2pK4/1kP5/8 8/8/8/8/8/3Kp3/4Pk2/8
799 8/8/8/8/8/Kp6/1Pk5/8 8/8/8/8/Kp6/1Pk5/8/8 8/8/8/Kp6/1Pk5/8/8/8
804 13 4 {8/8/8/4k3/8/8/1K6/QQ6} 0 -
805 100.0 0.0 0.0 0.0 2.1 97.9
810 18 6 {7Q/8/8/8/4k3/8/8/1R5K} 0 -
811 100.0 0.0 0.0 0.0 1.1 98.9
816 36 8 {8/Q4B2/5k2/8/8/8/8/K7} 0 -
817 100.0 0.0 0.0 0.0 9.4 90.6
822 41 9 {K7/N7/8/8/8/5k2/Q7/8} 0 -
823 100.0 0.0 0.0 0.0 9.7 90.3
828 156 10 {8/8/8/2k5/8/8/4P1Q1/7K} 0 -
829 100.0 0.0 0.0 0.0 2.8 97.2
834 8 7 {4R3/3k4/8/8/5R1K/8/8/8} 0 -
835 100.0 0.0 0.0 0.0 0.3 99.7
840 46 16 {8/8/3R4/4k3/4B3/8/8/K7} 0 -
841 100.0 0.0 0.0 0.0 8.8 91.2
846 15 16 {K7/2R5/3k4/3N4/8/8/8/8} 0 -
847 100.0 0.0 0.0 0.0 9.2 90.8
852 333 16 {K7/8/3R4/4kP2/8/8/8/8} 0 -
853 100.0 0.0 0.0 0.0 2.5 97.5
858 31 19 {K7/8/3B4/3k4/8/8/4B3/8} 0 -
859 49.3 50.7 0.0 0.0 58.8 41.2
864 206 33 {7K/4B3/4k3/8/8/8/8/2N5} 0 -
865 99.5 0.5 0.0 0.0 18.1 81.9
870 453 31 {8/3P4/KBk5/8/8/8/8/8} 0 -
871 96.0 4.0 0.0 0.0 16.8 83.2
873 1B1K4/8/8/k7/8/P7/8/8 1B6/3K4/8/1k6/8/P7/8/8 1BK5/8/1k6/8/8/P7/8/8
874 8/B1k5/K7/P7/8/8/8/8 kB6/8/1PK5/8/8/8/8/8 kB6/8/KP6/8/8/8/8/8
879 20 1 {k7/3N4/K1N5/8/8/8/8/8} 0 -
880 0.0 100.0 0.0 0.0 100.0 0.0
885 426 27 {1N6/8/8/8/8/2k3P1/8/2K5} 0 -
886 96.3 3.7 0.0 0.0 18.5 81.5
891 563 32 {8/8/8/8/2k5/6P1/K5P1/8} 0 -
892 98.4 1.6 0.0 0.0 7.9 92.1
897 51 30 {2K5/8/1k6/5q2/8/8/6Q1/7Q} 13 {7Q/7K/8/6Qk/8/8/7q/8}
898 99.1 0.8 0.1 0.6 32.8 66.6
903 0 35 {Kr6/8/8/8/8/3Q4/4Q3/2k5} 19 {6Q1/8/8/8/8/7K/2r4Q/7k}
904 100.0 0.0 0.0 0.1 0.2 99.7
909 0 15 {8/8/7Q/5k1K/7Q/5b2/8/8} 0 -
910 100.0 0.0 0.0 0.0 0.1 99.9
915 0 19 {5K2/3n4/4k3/2Q5/8/8/8/1Q6} 0 -
916 100.0 0.0 0.0 0.0 0.1 99.9
921 7 22 {8/8/8/3Q4/7Q/2k5/1p6/K7} 13 ?
922 100.0 0.0 0.0 0.0 0.7 99.3
927 36 67 {8/8/8/8/q7/6k1/8/KR5Q} 38 {8/8/q7/8/8/6R1/2K4Q/k7}
928 97.0 2.8 0.2 24.4 21.2 54.4
929 1 1 {8/8/8/8/1R6/k4q2/8/1K2Q3} 0 {} 0 {}
933 132 34 {1K2Q3/8/3k4/1r2R3/8/8/8/8} 20 {6rQ/8/8/8/8/7K/5R2/6k1}
934 99.8 0.1 0.0 0.3 17.1 82.1
939 12 29 {2k5/5b2/8/8/2K5/8/Q7/6R1} 0 -
940 100.0 0.0 0.0 0.0 11.6 88.4
945 2 40 ? 1 {8/8/8/8/1n6/k7/8/KR5Q}
946 99.9 0.1 0.0 0.0 7.7 92.3
952 100.0 0.0 0.0 0.3 1.4 98.3
957 28 33 {5q2/8/8/5B2/k1K4Q/8/8/8} 24 {6KQ/8/1B6/6k1/8/6q1/8/8}
958 55.7 44.0 0.3 30.5 62.3 7.2
964 99.3 0.6 0.0 0.7 27.5 71.8
970 99.7 0.3 0.0 0.0 19.8 80.2
976 99.5 0.5 0.0 0.0 16.7 83.3
982 100.0 0.0 0.0 1.0 14.1 84.9
987 74 41 {8/7q/8/k7/2K5/2N5/8/4Q3} 24 {7K/8/1N6/Q5k1/8/8/6q1/8}
988 50.1 49.6 0.3 33.5 62.2 4.3
994 99.2 0.7 0.0 3.0 27.2 69.8
1000 99.8 0.2 0.0 0.0 20.9 79.1
1006 99.4 0.6 0.0 0.0 17.8 82.2
1012 99.9 0.1 0.0 1.9 15.0 83.1
1017 1179 124 {4q3/K7/8/8/8/4P3/6Q1/k7} 29 {8/7q/3PK3/8/8/8/Q7/3k4}
1018 68.4 31.2 0.4 35.2 51.2 13.6
1019 640 640 {} 0 {} 0 {}
1024 99.6 0.3 0.1 19.7 6.1 74.1
1025 1 1 {k7/8/KQ1r4/P7/8/8/8/8} 0 {} 0 {}
1030 99.9 0.1 0.0 0.0 16.7 83.3
1036 99.7 0.3 0.0 0.0 12.5 87.5
1041 622 105 {8/8/8/8/3P2Q1/8/1p6/K1k5} 34 ?
1042 100.0 0.0 0.0 3.3 7.3 89.4
1047 8 29 {3R4/1R6/8/8/q7/7K/8/k7} 49 {7R/1q6/3K4/8/k7/8/2R5/8}
1048 58.2 36.8 5.1 52.0 37.0 11.0
1050 6R1/8/8/8/6R1/7q/1K5k/8 6R1/8/8/8/8/6R1/7q/K6k 8/6R1/8/8/8/3K2R1/7q/7k
1051 8/6R1/8/8/8/6R1/7q/1K5k 8/8/1R6/8/8/1R1K4/q7/k7 8/8/6R1/8/8/6R1/7q/2K4k
1052 8/8/8/3R4/8/k7/2KR4/4q3 8/8/8/6R1/8/6R1/7q/3K3k 8/8/8/8/1R6/1R6/q7/k2K4
1053 8/8/8/8/8/2K5/2R1R3/kq6
1058 38 31 {8/1R6/8/8/8/5r1K/4R3/k7} 20 {1k6/2R5/7r/3K3R/8/8/8/8}
1059 99.2 0.7 0.0 0.4 33.4 66.2
1064 8 29 {8/8/8/2b5/8/4KR2/1k6/6R1} 0 -
1065 99.3 0.7 0.0 0.0 22.4 77.6
1066 1 1 {8/8/8/8/8/b1k5/1R6/1RK5} 0 {} 0 {}
1070 8 40 {4k3/6R1/8/7n/5K2/1R6/8/8} 1 {8/8/8/8/1n6/k7/8/KR1R4}
1071 99.7 0.3 0.0 0.0 15.0 85.0
1077 100.0 0.0 0.0 1.0 5.7 93.3
1083 38.7 48.0 13.4 71.2 25.6 3.2
1084 372 0 {} 372 {3Kn3/8/8/8/8/4r3/7Q/3k4} 0 {}
1088 649 65 {k7/7r/3K4/8/6B1/8/4R3/8} 30 {8/4R2K/8/5k2/8/8/7B/4r3}
1089 41.3 58.7 0.0 0.8 94.1 5.1
1091 8/8/8/8/8/1R1K4/2B5/r1k5 8/8/8/8/8/2KB4/2R5/kr6 8/8/8/8/7B/4r3/5R2/2K1k3
1092 8/8/8/8/rB6/8/1R6/1K1k4 7k/6R1/7r/8/8/8/1B6/1K6 8/8/8/8/8/2K4B/6R1/3r1k2
1093 8/8/8/8/4R3/k7/2K1B3/4r3 8/8/8/8/8/2R3Br/k1K5/8 8/8/8/3B1r2/3K4/8/6R1/3k4
1094 8/8/8/8/8/R2K4/5B2/1r1k4 8/8/8/8/8/3K2R1/8/4k1Br 8/8/8/2B5/8/6r1/k1K4R/8
1095 8/5r2/8/8/1R4B1/8/3K4/k7 8/8/3B4/1r6/8/2K5/4R3/1k6 8/8/8/8/3KB2r/8/5R2/k7
1096 8/8/3B4/8/8/5r2/k1K1R3/8 5R2/8/8/8/8/3K4/5Br1/2k5
1102 98.2 1.8 0.0 0.0 31.1 68.9
1108 98.9 1.1 0.0 0.0 24.0 76.0
1114 99.1 0.9 0.0 2.4 17.1 80.5
1115 1 1 {1k1K4/7R/8/8/8/8/6p1/7B} 0 {} 0 {}
1120 35.4 41.1 23.4 78.2 19.7 2.1
1121 455 0 {} 455 {} 0 {}
1125 430 37 {2k1r3/8/R7/N2K4/8/8/8/8} 41 {4K3/8/1r6/8/5k2/1R4N1/8/8}
1126 36.7 63.3 0.1 3.2 93.6 3.2
1128 2R5/8/8/8/8/k2K4/8/r1N5 8/8/8/8/3N4/1R1K4/8/r1k5 8/8/8/8/3N4/2KR4/8/2k1r3
1129 8/8/8/8/4N3/7R/k1K5/5r2 8/8/8/8/8/2KRN3/8/2k1r3 8/8/8/8/8/3KN3/3R4/2k1r3
1130 8/8/8/8/8/5RN1/8/2K1k1r1 8/8/8/8/8/6RN/8/3K1k1r 8/8/8/8/8/NR1K4/8/r1k5
1131 8/8/8/8/r1N5/2R5/k1K5/8
1137 97.7 2.3 0.0 0.0 32.4 67.6
1143 99.0 1.0 0.0 0.0 24.6 75.4
1145 8/8/8/8/4n3/1k6/N7/R1K5 8/8/8/8/8/3n4/N2k4/RK6 8/8/8/8/8/n7/1k6/N1RK4
1151 98.5 1.5 0.0 4.5 17.1 78.4
1157 37.7 11.8 50.5 91.0 7.1 1.8
1158 243 2 {} 241 {} 0 {}
1162 9184 74 {8/1k6/4R3/8/8/8/6Pr/4K3} 33 {8/1P6/2k5/8/K7/8/8/1r5R}
1163 66.6 33.0 0.4 20.1 54.4 25.5
1164 209 209 {} 0 {} 0 {}
1169 96.4 3.6 0.0 0.0 32.6 67.4
1170 225 225 {} 0 {} 0 {}
1175 97.5 2.5 0.0 0.0 24.7 75.3
1176 413 413 {} 0 {} 0 {} 0 {}
1181 99.4 0.4 0.3 10.0 6.6 83.5
1183 8/8/8/8/8/1p6/kP6/1RK5 8/8/8/8/8/k7/Pp6/RK6
1184 } 1 {8/8/8/8/8/2p5/1kP5/2RK4}
1189 15.3 20.2 64.5 96.5 2.9 0.6
1190 1 0 {} 1 {8/8/8/8/q7/2BB4/1K6/3k4} 0 {}
1194 13 23 {4r3/8/8/8/8/4B3/8/k1K4B} 31 {1K4B1/8/3k4/8/B5r1/8/8/8}
1195 16.5 83.4 0.1 1.3 97.2 1.5
1197 8/8/8/8/8/3K1k2/6r1/4B2B 8/8/8/8/8/5k2/6r1/3KB2B 8/8/8/B7/8/3k4/2r5/KB6
1202 35 22 {6B1/8/7B/8/b7/2K5/8/k7} 2 {1B5K/5k1B/8/8/8/4b3/8/8}
1203 15.6 84.3 0.0 0.0 98.6 1.4
1208 28 78 {8/K7/8/8/8/5k2/6n1/2B4B} 1 ?
1209 48.2 51.8 0.0 0.0 66.1 33.9
1210 1 1 {8/8/8/8/8/6n1/2K4B/kB6} 0 {} 0 {}
1215 48.0 50.2 1.8 11.4 54.1 34.5
1216 1 1 {B1k5/1pB5/3K4/8/8/8/8/8} 0 {} 0 {}
1221 25.0 6.4 68.6 97.6 1.7 0.7
1222 1 0 {} 1 {8/8/q7/8/3K4/2N5/8/k1B5} 0 {}
1226 64 36 {8/8/8/2N5/8/8/B6K/5kr1} 41 {8/8/1B4N1/5k2/8/1r6/8/4K3}
1227 26.0 73.8 0.2 3.8 94.6 1.6
1229 3r4/8/2B5/8/1N6/8/8/k1K5 8/8/8/8/8/2k5/1r6/B1NK4 8/8/8/8/8/2k5/3r4/1KN1B3
1230 8/8/8/8/8/3k4/4r3/2KN1B2 8/8/8/8/8/4k3/5r2/3KN1B1 8/8/8/8/B7/1r6/N1k5/K7
1231 } 2 {8/8/8/8/8/1k3r2/8/1KB4N 8/r7/8/B7/8/8/N1k5/K7} 0 {}
1235 54 39 {8/7B/8/8/6N1/8/3k4/1Kb5} 2 {KB6/8/k4N2/8/6b1/8/8/8}
1236 25.5 74.5 0.0 0.0 98.8 1.2
1241 36 107 {6Bk/8/8/7N/8/7K/6n1/8} 1 {8/8/3N4/8/3n4/8/B7/K1k5}
1242 32.2 67.8 0.0 0.0 96.1 3.9
1243 922 922 {} 0 {} 0 {}
1248 91.4 5.5 3.2 14.7 23.0 62.4
1249 62 61 {} 1 {8/8/8/1N6/3K4/B7/5p2/k7} 0 {}
1254 21.3 11.5 67.2 96.8 2.8 0.4
1256 3K4/2P5/B3qk2/8/8/8/8/8 8/1KP1q3/1B1k4/8/8/8/8/8 8/qPK5/8/3k4/1B6/8/8/8
1257 2q5/2B2P2/3K4/1k6/8/8/8/8 8/2P5/4q3/KB6/8/k7/8/8 8/3P4/5q2/1KB5/8/1k6/8/8
1258 8/1KP1q3/4k3/B7/8/8/8/8 3K4/q1P5/B4k2/8/8/8/8/8 8/5P2/3K4/8/4k2B/7q/8/8
1259 8/4P3/6q1/k1K5/2B5/8/8/8 3k4/KP1q4/3B4/8/8/8/8/8 8/3K1P2/1k2Bq2/8/8/8/8/8
1260 3K4/2P5/2B2k2/8/1q6/8/8/8 8/1P1K4/1qB2k2/8/8/8/8/8 1k6/3K1P2/4Bq2/8/8/8/8/8
1261 5k2/1P1K4/1qB5/8/8/8/8/8
1267 30.9 67.3 1.8 23.4 73.1 3.5
1268 306 4 {} 302 {} 0 {}
1273 41.3 58.7 0.0 0.0 86.9 13.1
1274 160 160 {} 0 {} 0 {}
1279 53.7 46.3 0.0 0.0 76.4 23.6
1280 2125 2112 {} 13 {} 0 {}
1285 86.4 9.5 4.1 16.7 24.1 59.2
1286 406 403 {} 2 {} 1 {8/8/8/8/8/k1p5/2P5/1BK5}
1290 5 1 {k1N5/2K5/8/3N4/8/5q2/8/8} 72 ?
1291 0.0 42.8 57.1 94.0 6.0 0.0
1292 229 0 {} 229 {} 0 {}
1296 15 3 {5r1k/8/7K/4N3/5N2/8/8/8} 41 {8/8/1r4N1/4kN2/8/8/8/4K3}
1297 0.0 99.6 0.4 6.3 93.7 0.0
1302 2 4 {7k/5K2/8/8/5NN1/8/8/2b5} 1 {8/8/8/8/8/8/N1k5/K1b4N}
1303 0.0 100.0 0.0 0.0 100.0 0.0
1308 8 7 {7n/8/8/8/1N1KN3/8/8/k7} 1 {K7/N1k5/8/3n4/3N4/8/8/8}
1309 0.1 99.9 0.0 0.0 100.0 0.0
1310 362 362 {} 0 {} 0 {}
1315 31.3 66.4 2.3 12.8 73.6 13.6
1316 3143 3124 {} 19 {} 0 {}
1321 17.9 11.9 70.2 97.2 2.3 0.5
1327 26.7 69.3 4.0 29.3 68.5 2.2
1328 1181 23 {} 1158 {} 0 {}
1333 38.8 61.2 0.0 0.0 88.1 11.9
1334 642 640 {} 2 {} 0 {}
1339 49.2 50.8 0.0 0.0 77.2 22.8
1340 4191 4128 {} 63 {} 0 {}
1345 78.3 13.6 8.1 21.8 27.6 50.6
1346 2303 2281 {} 14 {} 8 {
1347 8/8/8/8/3K4/NkpP4/8/8 8/8/8/8/3K4/3PpkN1/8/8 8/8/8/8/8/1k2p3/4P3/KN6
1348 8/8/8/8/8/2K5/2PpkN2/8 8/8/8/8/8/3K4/3PpkN1/8 8/8/8/8/8/3K4/NkpP4/8
1349 8/8/8/8/1p6/1P6/K7/N1k5 8/8/8/8/8/1K6/1PpkN3/8
1354 726 124 {8/5P2/8/8/3K4/3P3q/7k/8} 41 {8/2KP2q1/8/2P5/5k2/8/8/8}
1355 16.0 12.6 71.4 98.4 1.5 0.1
1356 2 0 {} 2 {8/2KP3q/2P2k2/8/8/8/8/8 8/2KP3q/8/2P3k1/8/8/8/8} 0 {}
1360 1652 54 {3K4/8/8/4P3/8/2r5/5P2/2k5} 40 {8/8/8/7K/5P2/3Pr3/8/2k5}
1361 35.4 20.1 44.5 75.2 18.2 6.6
1362 119 18 {} 99 {} 2 {1r1k4/1P6/1PK5/8/8/8/8/8 8/8/8/8/k7/r1P5/1KP5/8}
1366 519 43 {8/6P1/7k/8/6P1/1K6/8/1b6} 4 {K5b1/P7/1k6/8/8/8/2P5/8}
1367 54.4 45.6 0.0 0.0 75.4 24.6
1368 212 211 {} 1 {8/8/8/8/8/b2k4/P2P4/1K6} 0 {}
1372 705 50 {3n4/5P2/8/8/3K2P1/8/k7/8} 17 {7K/8/4k2P/8/8/8/5P2/5n2}
1373 64.7 35.3 0.0 0.0 62.4 37.6
1374 1077 920 {} 157 {} 0 {}
1378 5080 127 {8/8/8/8/1p2P3/1k1KP3/8/8} 43 {7K/8/4P3/5P2/3k4/7p/8/8}
1379 77.1 10.3 12.6 27.7 19.1 53.2
1380 4237 4179 {} 52 {} 6 {
1381 8/8/8/8/2k5/K1p5/P3P3/8 8/8/8/8/3k4/1K1p4/1P3P2/8
1382 8/8/8/8/4k3/2K1p3/2P3P1/8 8/8/8/2k5/K1p5/P3P3/8/8
1383 8/8/8/8/5k2/3K1p2/3P3P/8 8/8/8/k7/p1K5/2P5/2P5/8
1389 100.0 0.0 0.0 0.0 4.0 96.0
1395 100.0 0.0 0.0 0.0 3.1 96.9
1401 100.0 0.0 0.0 0.0 2.7 97.3
1407 100.0 0.0 0.0 0.0 2.4 97.6
1413 100.0 0.0 0.0 0.0 2.1 97.9
1419 100.0 0.0 0.0 0.0 2.0 98.0
1425 100.0 0.0 0.0 0.0 1.7 98.3
1431 100.0 0.0 0.0 0.0 1.4 98.6
1437 100.0 0.0 0.0 0.0 1.1 98.9
1443 100.0 0.0 0.0 0.0 5.0 95.0
1449 100.0 0.0 0.0 0.0 1.1 98.9
1455 100.0 0.0 0.0 0.0 1.2 98.8
1461 100.0 0.0 0.0 0.0 9.1 90.9
1467 100.0 0.0 0.0 0.0 1.0 99.0
1473 100.0 0.0 0.0 0.0 0.7 99.3
1478 100.0 0.0 0.0 0.0 0.9 99.1
1484 100.0 0.0 0.0 0.0 0.8 99.2
1490 100.0 0.0 0.0 0.0 0.6 99.4
1496 100.0 0.0 0.0 0.0 0.3 99.7
1502 100.0 0.0 0.0 0.0 4.3 95.7
1508 100.0 0.0 0.0 0.0 0.5 99.5
1514 100.0 0.0 0.0 0.0 0.6 99.4
1520 100.0 0.0 0.0 0.0 8.5 91.5
1526 100.0 0.0 0.0 0.0 0.5 99.5
1531 119 15 {8/8/4k3/8/8/3P4/3P4/5R1K} 0 -
1532 100.0 0.0 0.0 0.0 0.2 98.8
1538 74.0 26.0 0.0 0.0 31.6 68.4
1544 100.0 0.0 0.0 0.0 4.1 95.9
1550 98.3 1.7 0.0 0.0 6.8 93.2
1556 100.0 0.0 0.0 0.0 8.4 91.6
1562 100.0 0.0 0.0 0.0 0.8 99.2
1568 99.8 0.2 0.0 0.0 1.3 98.7
1570 8/B1k5/K7/P7/P7/8/8/8 K7/8/1k6/1P6/BP6/8/8/8 K7/8/Bk6/1P6/1P6/8/8/8
1571 KBk5/P1P5/8/8/8/8/8/8 kB6/8/1PK5/1P6/8/8/8/8 kB6/8/KP6/1P6/8/8/8/8
1577 98.7 1.3 0.0 0.0 25.0 75.0
1583 98.4 1.6 0.0 0.0 12.0 88.0
1589 100.0 0.0 0.0 0.0 1.0 99.0
1594 97 33 {7K/5k2/8/8/1P6/1P6/1P6/8} 0 -
1595 99.9 0.1 0.0 0.0 0.6 99.4
1597 1k6/1P6/K7/P7/P7/8/8/8 1k6/1P6/K7/PP6/8/8/8/8 2k5/2P5/3K4/P7/P7/8/8/8
1598 8/1k6/1P6/KP6/1P6/8/8/8 8/8/1k6/1P6/KP6/1P6/8/8 8/8/8/1k1P4/8/PK6/P7/8
1599 8/8/8/1k6/1P6/KP6/1P6/8 8/K1k5/P1P5/P7/8/8/8/8 K1k5/2P5/P1P5/8/8/8/8/8
1600 K1k5/8/P1P5/P7/8/8/8/8 k7/8/KP6/PP6/8/8/8/8