![Smile :)](./images/smilies/icon_smile.gif)
Technical note: all numbers below do not remove captures that only differ in the order in which pieces are captured (clockwise or counter-clockwise e.g.).
Code: Select all
b b b b
b b b b
b b b b
. . . .
. . . .
w w w w
w w w w
w w w w
W:B1,2,3,4,5,6,7,8,9,10,11,12:W21,22,23,24,25,26,27,28,29,30,31,32"
Searching starting position to nominal depth=13
perft( 1) 7 nodes, 0.00s, 0.01 Mnps
perft( 2) 49 nodes, 0.00s, 0.05 Mnps
perft( 3) 302 nodes, 0.00s, 0.30 Mnps
perft( 4) 1469 nodes, 0.00s, 1.47 Mnps
perft( 5) 7473 nodes, 0.00s, 7.47 Mnps
perft( 6) 37628 nodes, 0.00s, 37.63 Mnps
perft( 7) 187302 nodes, 0.02s, 11.02 Mnps
perft( 8) 907836 nodes, 0.05s, 18.91 Mnps
perft( 9) 4431847 nodes, 0.25s, 17.66 Mnps
perft(10) 21566606 nodes, 1.11s, 19.43 Mnps
perft(11) 105534946 nodes, 5.55s, 19.02 Mnps
perft(12) 512171742 nodes, 27.34s, 18.73 Mnps
perft(13) 2483592238 nodes, 130.49s, 19.03 Mnps
Code: Select all
b b b b
b b b b
b b b b
. . . .
. . . .
w w w w
w w w w
w w w w
W:B1,2,3,4,5,6,7,8,9,10,11,12:W21,22,23,24,25,26,27,28,29,30,31,32"
Searching starting position to nominal depth=13
perft( 1) 7 nodes, 0.00s, 0.01 Mnps
perft( 2) 49 nodes, 0.00s, 0.05 Mnps
perft( 3) 302 nodes, 0.00s, 0.30 Mnps
perft( 4) 1469 nodes, 0.00s, 1.47 Mnps
perft( 5) 7482 nodes, 0.00s, 7.48 Mnps
perft( 6) 37986 nodes, 0.00s, 37.99 Mnps
perft( 7) 190146 nodes, 0.02s, 11.19 Mnps
perft( 8) 929902 nodes, 0.05s, 19.79 Mnps
perft( 9) 4570615 nodes, 0.24s, 19.37 Mnps
perft(10) 22442551 nodes, 1.19s, 18.89 Mnps
perft(11) 110877932 nodes, 5.70s, 19.44 Mnps
perft(12) 544300084 nodes, 28.02s, 19.43 Mnps
perft(13) 2670481140 nodes, 141.67s, 18.85 Mnps
Code: Select all
b b b b
b b b b
b b b b
. . . .
. . . .
w w w w
w w w w
w w w w
W:B1,2,3,4,5,6,7,8,9,10,11,12:W21,22,23,24,25,26,27,28,29,30,31,32"
Searching starting position to nominal depth=13
perft( 1) 7 nodes, 0.00s, 0.01 Mnps
perft( 2) 49 nodes, 0.00s, 0.05 Mnps
perft( 3) 302 nodes, 0.00s, 0.30 Mnps
perft( 4) 1469 nodes, 0.00s, 1.47 Mnps
perft( 5) 7482 nodes, 0.00s, 7.48 Mnps
perft( 6) 37986 nodes, 0.00s, 37.99 Mnps
perft( 7) 190146 nodes, 0.00s, 190.15 Mnps
perft( 8) 929905 nodes, 0.05s, 19.37 Mnps
perft( 9) 4570667 nodes, 0.25s, 18.21 Mnps
perft(10) 22450628 nodes, 1.13s, 19.94 Mnps
perft(11) 110961169 nodes, 5.97s, 18.59 Mnps
perft(12) 545059387 nodes, 28.16s, 19.36 Mnps
perft(13) 2675994747 nodes, 137.05s, 19.53 Mnps
Code: Select all
b b b b
b b b b
b b b b
. . . .
. . . .
w w w w
w w w w
w w w w
W:B1,2,3,4,5,6,7,8,9,10,11,12:W21,22,23,24,25,26,27,28,29,30,31,32"
Searching starting position to nominal depth=13
perft( 1) 7 nodes, 0.00s, 0.01 Mnps
perft( 2) 49 nodes, 0.00s, 0.05 Mnps
perft( 3) 302 nodes, 0.00s, 0.30 Mnps
perft( 4) 1469 nodes, 0.00s, 1.47 Mnps
perft( 5) 7361 nodes, 0.00s, 7.36 Mnps
perft( 6) 36768 nodes, 0.00s, 36.77 Mnps
perft( 7) 179740 nodes, 0.02s, 10.57 Mnps
perft( 8) 845931 nodes, 0.05s, 17.62 Mnps
perft( 9) 3963680 nodes, 0.19s, 21.08 Mnps
perft(10) 18391564 nodes, 0.88s, 20.99 Mnps
perft(11) 85242128 nodes, 4.20s, 20.28 Mnps
perft(12) 388623673 nodes, 19.06s, 20.39 Mnps
perft(13) 1766623630 nodes, 87.17s, 20.27 Mnps
Code: Select all
b b b b
b b b b
b b b b
. . . .
. . . .
w w w w
w w w w
w w w w
W:B1,2,3,4,5,6,7,8,9,10,11,12:W21,22,23,24,25,26,27,28,29,30,31,32"
Searching starting position to nominal depth=13
perft( 1) 7 nodes, 0.00s, 0.01 Mnps
perft( 2) 49 nodes, 0.00s, 0.05 Mnps
perft( 3) 302 nodes, 0.00s, 0.30 Mnps
perft( 4) 1469 nodes, 0.00s, 1.47 Mnps
perft( 5) 7361 nodes, 0.00s, 7.36 Mnps
perft( 6) 36768 nodes, 0.02s, 2.30 Mnps
perft( 7) 179740 nodes, 0.00s, 179.74 Mnps
perft( 8) 845931 nodes, 0.05s, 17.62 Mnps
perft( 9) 3963671 nodes, 0.19s, 20.97 Mnps
perft(10) 18368918 nodes, 0.88s, 20.97 Mnps
perft(11) 84967210 nodes, 4.16s, 20.44 Mnps
perft(12) 386267783 nodes, 19.11s, 20.21 Mnps
perft(13) 1749766090 nodes, 87.61s, 19.97 Mnps
Code: Select all
b b b b
b b b b
b b b b
. . . .
. . . .
w w w w
w w w w
w w w w
W:B1,2,3,4,5,6,7,8,9,10,11,12:W21,22,23,24,25,26,27,28,29,30,31,32"
Searching starting position to nominal depth=13
perft( 1) 7 nodes, 0.00s, 0.01 Mnps
perft( 2) 49 nodes, 0.00s, 0.05 Mnps
perft( 3) 302 nodes, 0.00s, 0.30 Mnps
perft( 4) 1469 nodes, 0.00s, 1.47 Mnps
perft( 5) 7361 nodes, 0.00s, 7.36 Mnps
perft( 6) 36473 nodes, 0.00s, 36.47 Mnps
perft( 7) 177532 nodes, 0.02s, 10.44 Mnps
perft( 8) 828783 nodes, 0.03s, 25.90 Mnps
perft( 9) 3860866 nodes, 0.19s, 20.43 Mnps
perft(10) 17743464 nodes, 0.83s, 21.40 Mnps
perft(11) 81383200 nodes, 3.96s, 20.58 Mnps
perft(12) 365734003 nodes, 18.11s, 20.20 Mnps
perft(13) 1638016958 nodes, 82.61s, 19.83 Mnps
Code: Select all
b b b b
b b b b
b b b b
. . . .
. . . .
w w w w
w w w w
w w w w
W:B1,2,3,4,5,6,7,8,9,10,11,12:W21,22,23,24,25,26,27,28,29,30,31,32"
Searching starting position to nominal depth=13
perft( 1) 7 nodes, 0.00s, 0.01 Mnps
perft( 2) 49 nodes, 0.00s, 0.05 Mnps
perft( 3) 302 nodes, 0.00s, 0.30 Mnps
perft( 4) 1469 nodes, 0.00s, 1.47 Mnps
perft( 5) 7361 nodes, 0.00s, 7.36 Mnps
perft( 6) 36473 nodes, 0.00s, 36.47 Mnps
perft( 7) 177532 nodes, 0.02s, 11.10 Mnps
perft( 8) 828783 nodes, 0.03s, 25.11 Mnps
perft( 9) 3860875 nodes, 0.19s, 20.54 Mnps
perft(10) 17761384 nodes, 0.89s, 19.93 Mnps
perft(11) 81647058 nodes, 4.16s, 19.64 Mnps
perft(12) 367917147 nodes, 19.58s, 18.79 Mnps
perft(13) 1655269811 nodes, 86.13s, 19.22 Mnps
Code: Select all
b . b .
b b . .
b . b .
. b b b
w w . w
. w w w
. w w .
. w . .
W:B1,3,5,6,9,11,14,15,16:W17,18,20,22,23,24,26,27,30"
Searching starting position to nominal depth=16
perft( 1) 5 nodes, 0.00s, 0.01 Mnps
perft( 2) 13 nodes, 0.00s, 0.01 Mnps
perft( 3) 42 nodes, 0.00s, 0.04 Mnps
perft( 4) 107 nodes, 0.00s, 0.11 Mnps
perft( 5) 360 nodes, 0.00s, 0.36 Mnps
perft( 6) 1099 nodes, 0.00s, 1.10 Mnps
perft( 7) 3736 nodes, 0.00s, 3.74 Mnps
perft( 8) 12495 nodes, 0.00s, 12.49 Mnps
perft( 9) 43686 nodes, 0.00s, 43.69 Mnps
perft(10) 164177 nodes, 0.02s, 10.26 Mnps
perft(11) 628686 nodes, 0.05s, 13.10 Mnps
perft(12) 2643623 nodes, 0.20s, 12.96 Mnps
perft(13) 10833722 nodes, 0.75s, 14.43 Mnps
perft(14) 49327264 nodes, 3.41s, 14.48 Mnps
perft(15) 212130912 nodes, 14.03s, 15.12 Mnps
perft(16) 1021757399 nodes, 68.66s, 14.88 Mnps
b . b .
b W . .
b . . .
. . . .
w . . w
w w . .
b . . b
. w . .
B:B1,3,5,9,25,28:WK6,17,20,21,22,30"
Searching starting position to nominal depth=12
perft( 1) 6 nodes, 0.00s, 0.01 Mnps
perft( 2) 47 nodes, 0.00s, 0.05 Mnps
perft( 3) 271 nodes, 0.00s, 0.27 Mnps
perft( 4) 1916 nodes, 0.00s, 1.92 Mnps
perft( 5) 10810 nodes, 0.00s, 10.81 Mnps
perft( 6) 73137 nodes, 0.00s, 73.14 Mnps
perft( 7) 389809 nodes, 0.03s, 12.18 Mnps
perft( 8) 2469050 nodes, 0.13s, 19.60 Mnps
perft( 9) 12803372 nodes, 0.74s, 17.40 Mnps
perft(10) 77920042 nodes, 3.78s, 20.60 Mnps
perft(11) 396940628 nodes, 24.19s, 16.41 Mnps
perft(12) 2365222285 nodes, 122.13s, 19.37 Mnps
Code: Select all
b b b b
b b b b
. . . .
. . . .
. . . .
. . . .
w w w w
w w w w
W:B1,2,3,4,5,6,7,8:W25,26,27,28,29,30,31,32"
Searching starting position to nominal depth=11
perft( 1) 7 nodes, 0.00s, 0.01 Mnps
perft( 2) 49 nodes, 0.00s, 0.05 Mnps
perft( 3) 392 nodes, 0.00s, 0.39 Mnps
perft( 4) 3136 nodes, 0.00s, 3.14 Mnps
perft( 5) 26592 nodes, 0.00s, 26.59 Mnps
perft( 6) 218695 nodes, 0.02s, 12.86 Mnps
perft( 7) 1820189 nodes, 0.05s, 37.92 Mnps
perft( 8) 14533014 nodes, 0.36s, 40.37 Mnps
perft( 9) 114530866 nodes, 3.03s, 37.77 Mnps
perft(10) 861843865 nodes, 23.66s, 36.43 Mnps
perft(11) 6305003332 nodes, 185.75s, 33.94 Mnps
Thanks Ed, your perft reference numbers and feedback were indispensable! The project is not quite finished: for Frisian draughts (orthogonal captures on a 10x10 board) I still need to implement one rule (a king cannot make more than 3 consecutive moves).Ed Gilbert wrote:Rein,
Implementing efficient and correct move generators for all those draughts variations with a common set of source files is an ambitious project. Congratulations!
-- Ed
Code: Select all
Position<Board<10,10> > Woldouby("W:B12,13,14,16,18,19,21,23,24,26:W25,27,28,30,32,33,34,35,37,38");
Perft::root<InternationalRules>(Woldouby, 15);
Maar wellicht dat Rein nu ook al een speelbare versie heeft?Concurrentie voor Lusoris?
De meeste Friese dammers zullen het computerprogramma Lusoris wel kennen. Dat programma heeft nu mogelijk concurrentie gekregen uit Zweden. Mats Winther meldt althans op zijn homepage dat hij een programma geschreven heeft waarmee men het Friese damspel ("a wild form of checkers", zoals hij het kenschetst) kan spelen. Zie op:
http://hem.passagen.se/melki9
Het programma zelf is gratis, maar om het te kunnen spelen heeft u wel eerst het programma Zillions of Games nodig. Als ik het goed begrijp, kost een downloadversie van dat programma ongeveer 25 dollar; het laten toesturen van het programma op CD wordt ongeveer twee keer zo duur.
Welke Friese dammer test dit programma eens, en doet daar voor anderen verslag van, bijvoorbeeld in Oer Alles?
Siebren Dyk
Code: Select all
const bool non_ambiguous = is_UniqueManCapture<Rules>::VALUE || empty() || small<Rules>()(current_capture, captured_pieces) || is_unique();