Chess variant tournament: Spartan Chess

Discussion of computer chess matches and engine tournaments.

Moderator: Ras

User avatar
hgm
Posts: 28452
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Chess variant tournament: Spartan Chess

Post by hgm »

Evert wrote:I thought the problem was that it sent "done=1" rather than "feature done=1". That could be caught, right?
I know how you feel about working around engine bugs though. ;)
True, but not sending "feature done=1" should not have been a fatal offense, unless you sent "feature done=0" first. It means WinBoard should time out after 10 sec of waiting. The done=1 just cuts short the waiting (but done=0 extends the timeout period to an hour!)

Because of problems in previous WB versions, which could start engines before they had sent done=1 (or before the 10sec timeout) triggered by the done=1 of the second engine, I enforced a more strict order of things. But I had made it too strict, with as a result that WB v1 engines not explicitly installed as such would also cause WB to hang.
As I said, the gap will be even wider for large variants (which apparently don't work at all in 32 bit at the moment).
Could Sjaak handle 12x12 boards, or is that outside its range? (After all, 144 > 128...) I have recently taken up an interest in Chu Shogi, which seems to be a highly under-rated game. It is very Chess-like (no piece drops like in regular Shogi), except for this Lion piece, which can do two moves per turn, and thus make all kind of 'e.p.' or double captures. One thing that sets Chu Shogi apart from most other variants is that there actually is a fairly large community playing it. Pieces for it are still sold commercially in Japan, and you can play it on-line on 81Dojo.

A more modest alternative variant is Sho Shogi. Basically that is regular Shogi without the drops, except that you start with an extra 'Drunk Elephant' piece in front of your King, which promotes to a second King. Bringing you in a situation somewhat similar to Spartan Chess, except that there is no special duple-check rule, and you must just capture both Kings to win. I guess Sjaak should have no trouble handling that.
User avatar
hgm
Posts: 28452
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Chess variant tournament: Spartan Chess

Post by hgm »

Evert wrote:An easy hack would be to have Sjaak never play gating moves from castling and just catch when the opponent does it at the top (similar to how Fairy-Max handles under promotions). Not sure what that would do to its playing style or strength though (but it'll still be better at it than it is now).
Gating at the Rook square is extremely unlikely to occur in a real game. You don't want E or H to be trapped in a corner at all, with only b3 or g3 as a possible escape route. I even treat it in WB through a method that I consider only a temporary kludge, by notating it as a RxK capture. Gating at the King square should be pretty common, though.

I don't expect it to be very damaging to do as you propose. Initially I had a Seirawan implementation in Fairy-Max that considered gating only at the game-level move (and then gated for itself at the earliest opportunities). This concept proved fatally flawed, however. In particular because the opponent would delay gating until after the situation became tactical, and then capture a piece (e.g. Fairy-Max' Bishop attacking his Queen, protected by another Queen) providing instant protection (by gating a Hawk at d1). But on castling moves there doesn't seem to be any danger for that happening.
Shatranj is very slow, but as I understand it it's less boring if you actually know what you're doing (aiming for strong squares, not count on promotion to Ferz to win you the game instantly, that sort of thing). Sjaak does none of those, but it could...
Well, apart from being slow, there also was a 70% draw rate.
Isn't ChessV's source available under the GPL?

EDIT: even if it is, the original author can release newer versions under a different licence because he holds the copyright. I was just thinking that someone else could pick it up.
Indeed, ChessV is GPL. But for this version (adding Xiangqi and Spartan, and repairing Knightmate) the author only sent me a binary, and sources were never released. The license for that binary was not specified. I cannot imagine that the author would have any objection to me sharing it (it did not seem too buggy), but still it feels improper to do it.
User avatar
Evert
Posts: 2929
Joined: Sat Jan 22, 2011 12:42 am
Location: NL

Re: Chess variant tournament: Spartan Chess

Post by Evert »

hgm wrote: Could Sjaak handle 12x12 boards, or is that outside its range? (After all, 144 > 128...)
Alas, no. As you say, 144>128, which is the limit of what it can handle. If I ever get around to rewriting the move generator in C++ with templates for handling different board-sizes (as opposed to duplicating code for 64 and 128 bit boards by hand as I do now) it would be fairly easy to extend it to do that, although at some point the size of the tables used by the move generator become prohibitive (I deliberately don't use full magic multiplication to keep the memory footprint down though, so maybe it's ok).

I love bitboards, but at some point you have to give in and admit that maybe they're not the best data structure for what you're trying to do.
A more modest alternative variant is Sho Shogi. Basically that is regular Shogi without the drops, except that you start with an extra 'Drunk Elephant' piece in front of your King, which promotes to a second King. Bringing you in a situation somewhat similar to Spartan Chess, except that there is no special duple-check rule, and you must just capture both Kings to win. I guess Sjaak should have no trouble handling that.
That should be fairly straightforward to implement, yes. There are only two things I may need to look at: restricting the Lance to a single file (right now I don't think I can do that, but I may be wrong) and disabling the duple-check test from Spartan chess. Other than that it should "just work".
I'll check it out. Is there an easy way to test it in XBoard?
User avatar
hgm
Posts: 28452
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Chess variant tournament: Spartan Chess

Post by hgm »

Evert wrote:I'll check it out. Is there an easy way to test it in XBoard?
Sho Shogi should work in XBoard as 9x9+0_shogi (sent to the engine), by setting /holdingsSize=0 and providing a pieceToCharTable and initial setup in a position file. My incipient engine HaChu plays it, and I might have an ini file to configure WB for it for it in the WinBoard-Chu package (I forgot what exactly was in there).
User avatar
hgm
Posts: 28452
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Chess variant tournament: Spartan Chess

Post by hgm »

Evert wrote:Bit disappointed about Leonidas, but I think I found (and fixed) the problem. I'll need to test it at long time controls (as opposed to "longer" time controls) to be certain though. I'll make sure it's in good shape for the next Spartan match (whenever that is).
It would be good to understand why Leonidas loses this game:

Code: Select all

[Event "Computer Chess Game"]
[Site "ENHORNING"]
[Date "2013.02.12"]
[Round "66"]
[White "Pair-o-Max 4.8S"]
[Black "Leonidas 8.3"]
[Result "1-0"]
[TimeControl "40/1200"]
[Variant "spartan"]
[Annotator "2. -1.02   1... +0.38"]

1. e3 Lf6 {+0.38/13 30} 2. Bd3 {-1.02/9 26} Lc6 {+0.39/12 16} 3. Nc3
{+0.88/8 16} Hfd5 {+0.44/12 23} 4. f4 {-1.00/10 54} Hc4 {+0.77/13 16} 5.
Nce2 {-1.22/10 15} Wd5 {+1.24/14 31} 6. Nf3 {+0.82/12 27} Le4 {+1.22/14 31}
7. Bxe4 {+0.72/12 30} Wxe4 {+0.26/14 22} 8. d3 {+0.70/11 24} Wd6
{+0.23/13 22} 9. b3 {+0.78/10 18} Hac5 {+0.23/13 31} 10. O-O {+0.47/10 46}
Hhf5 {+0.18/12 20} 11. Ba3 {+0.60/10 16} Ga7 {+0.19/11 19} 12. Qc1
{+0.54/10 53} Hxf4 {+0.17/12 32} 13. Nxf4 {+0.45/10 21} Hf5 {+0.14/12 32}
14. Nd5 {+0.26/11 1:13} Le6 {+0.10/12 32} 15. bxc4 {+0.21/10 15} Lxd5
{+0.18/12 32} 16. cxd5 {+0.12/10 33} Cd7 {+0.11/12 26} 17. e4 {+0.01/10 16}
Wf4 {+0.16/12 17} 18. Bxc5 {+0.05/10 15} Ga5 {+0.16/13 29} 19. Qe3
{+0.02/11 17} Wxe3+ {+0.26/13 33} 20. Bxe3 {+0.12/12 38} Hcd6 {+0.18/13 27}
21. Ne5 {+0.06/11 31} Hef6 {+0.25/13 21} 22. c4 {+0.28/12 50} Cee7
{+0.24/14 34} 23. Ng4 {+0.39/12 23} Ga3 {+0.07/12 19} 24. Rfd1
{+0.50/12 37} Cef7 {+0.23/14 23} 25. e5 {+1.21/12 14} Hxd5 {+0.32/14 24}
26. e6 {+1.48/13 19} Ga6 {+0.37/14 20} 27. exf7 {+1.58/13 23} Gd6
{+0.44/13 25} 28. cxd5 {+1.80/12 21} Cxd5 {+0.30/14 22} 29. Nh6
{+2.52/13 50} Cxd3 {+0.96/15 53} 30. Rxd3 {+2.84/15 15} Gxd3 {-1.73/17 50}
31. Bc5 {+2.90/15 29} Gd8 {-1.78/16 38} 32. Rc1 {+3.60/15 1:05} Kxf7
{-2.98/15 28} 33. Nxf7 {+3.46/14 19} Gd5 {-2.98/15 23} 34. Bd4+
{+3.43/13 17} Hc6 {-2.98/14 23} 35. Bxf6 {+3.47/15 34} Ge6 {-2.98/17 45}
36. Ne5 {+3.71/16 30} Gxf6 {-3.03/19 45} 37. Rxc6+ {+3.39/19 9} Gxc6
{-3.34/20 27} 38. Nxc6 {+3.91/20 10} Kd7 {-4.49/20 40} 39. Nd4
{+3.92/16 17} He4 {-4.75/20 30} 40. Kf2 {+4.10/14 15} Kd6 {-5.63/22 1:15}
41. Ke2 {+4.23/15 46} Kd5 {-6.42/21 33} 42. Kd3 {+4.76/15 19} Hf3
{-6.54/21 36} 43. gxf3 {+4.94/14 24} Ke5 {-11.94/21 37} 44. a4
{+5.60/15 32} Kd5 {-11.94/20 30} 45. a5 {+9.96/16 29} Kd6 {-13.87/21 17}
46. f4 {+10.41/15 31} Kd7 {-14.08/22 18} 47. a6 {+11.69/15 29} Kc8
{-14.08/22 37} 48. Ne6 {+11.70/15 38} Hf6 {-19.52/20 28} 49. Nc5
{+12.49/15 31} Kb8 {-15.10/19 32} 50. h4 {+13.72/15 21} Ka7 {-23.61/20 35}
51. h5 {+20.59/17 34} Hg5 {-159.85/17 12} 52. Kc4 {+79.93/18 22} Hh4
{-21.95/21 18} 53. h6 {+79.94/22 17} Hg3 {-22.36/22 37} 54. h7
{+79.95/28 9} Hf2 {-22.36/17 28} 55. h8=Q {+79.96/28 0.4} He1=K
{-22.36/16 31} 56. Qb2 {+15.43/13 28} Kf1 {-27.51/16 20} 57. f5
{+16.84/13 24} Kg1 {-27.46/16 33} 58. Qg7+ {+17.37/13 24} Kh1
{-159.89/12 2.5} 59. Qxa7 {+23.69/13 19} Kg2 {-159.91/10 0.1} 60. Qg7+
{+79.95/19 18} Kf1 {-159.93/8 0.1} 61. Qb2 {+79.96/28 4} Kg1
{-159.95/6 0.1} 62. a7 {+79.97/28 0.1} Kh1 {-159.97/4 0.1} 63. a8=Q+
{+79.98/28 0.1} Kg1 {-159.98/1 0.1} 64. Qbg2# {+79.99/28 0.1}
{Xboard adjudication: Checkmate} 1-0
From move 20-30 Pair-o-Max' score steadily rises from 0 to +2.84, but Leonidas does't even see a speck of dust, and happily reports +0.96 in favor of black on 29... Cxd3. That is a difference of 3.8 with no pieces on the board of controversial value and a white passer on the 7th! It must overlook some important tactics in the 15 ply it claimed to have searched (against Pair-o-Max' 13 on the previous move).

2k2k2/1h3Ph1/3g1h1N/3c1h2/8/3PB3/P5PP/R2R2K1 b - - 1 29
[d]2k2k2/1p3Pp1/3q1p1N/3r1p2/8/3PB3/P5PP/R2R2K1 b - - 1 29
Position before 30... Cxd3 {+0.96/15} (black Q=G, R=C)

It seems that black is clearly behind in the given position (R+B > G, R > K, N >~ C, 7th-rank passer, uncompromised King safety for white), and there doesn't seem to be much 'up for grabs'. After 31. Rxd3 its score drops by about the value of C, so it obviously had not expected the Captain to be taken. But even with the Captain (say after 31. Rdc1) it is strange it thinks itself ahead.
User avatar
Evert
Posts: 2929
Joined: Sat Jan 22, 2011 12:42 am
Location: NL

Re: Chess variant tournament: Spartan Chess

Post by Evert »

hgm wrote: From move 20-30 Pair-o-Max' score steadily rises from 0 to +2.84, but Leonidas does't even see a speck of dust, and happily reports +0.96 in favor of black on 29... Cxd3. That is a difference of 3.8 with no pieces on the board of controversial value and a white passer on the 7th! It must overlook some important tactics in the 15 ply it claimed to have searched (against Pair-o-Max' 13 on the previous move).
Well, part of that at least I do understand: the pawn evaluation code in the version of Leonidas that participated was only called for black, so it would never "see" the passer on the 7th rank as particularly interesting except for not wanting to let it promote. Even then the passer evaluation is probably much too crude.

The static-eval in the current version is +0.40 (so still positive), but the search switches (from Cxd3) to Cd7 with a -0.70 score, so it does at least see after a search that the position is bad.

I will look into it more though.
User avatar
hgm
Posts: 28452
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Chess variant tournament: Spartan Chess

Post by hgm »

Game 209 is also interesting. This probably ends draw because Pair-o-Max messes up the incrementally updated material score on promotion to King (it does appear not to correct for the actual value of the chosen piece on underpromotion). So it mis-calculates by the value of Q-K, and as a result thinks it is about even, and carelessly wastes its last Pawn because the division by 2 of the score that results in hardly hurts it. After that it is not clever enough to win KQKC (which should be pretty similar to KQKR).

Code: Select all

[Event "Computer Chess Game"]
[Site "ENHORNING"]
[Date "2013.02.11"]
[Round "52"]
[White "Pair-o-Max 4.8S"]
[Black "Leonidas 8.3"]
[Result "1/2-1/2"]
[TimeControl "40/1200"]
[Variant "spartan"]
[Annotator "2. -1.09   1... +0.43"]

1. Nc3 Hfd5 {+0.43/14 30} 2. e3 {-1.09/9 21} Lc6 {+0.49/13 19} 3. f4
{+0.93/9 37} Hc4 {+0.61/12 30} 4. Nce2 {-1.28/10 38} Hdf5 {+0.81/12 28} 5.
Nd4 {-1.12/10 23} Hxf4 {+0.87/13 30} 6. Nxc6 {+0.98/11 20} Hxc6
{+0.84/13 18} 7. Nh3 {+0.92/10 16} Hec5 {+0.89/13 19} 8. Bd3 {+0.67/11 40}
Hf6 {+0.76/13 31} 9. Nxf4 {+0.31/11 21} Kc7 {+0.54/12 40} 10. Ng6
{+0.05/11 30} Kg7 {+0.66/13 22} 11. Nxh8 {+0.09/11 36} Kxh8 {+0.32/13 24}
12. O-O {+0.00/11 32} Ha6 {+0.00/13 40} 13. b3 {+0.27/10 33} Cd6
{+0.11/12 17} 14. Rf4 {+0.10/10 18} Cee6 {+0.21/12 22} 15. bxc4
{+0.09/11 21} Hf5 {+0.28/13 29} 16. Rh4 {+0.09/12 25} Wf7 {+0.27/13 27} 17.
a4 {+0.17/11 32} Wg6 {+0.22/13 32} 18. Qe1 {+0.11/11 21} He4 {+0.28/11 17}
19. Ra2 {+0.11/10 28} Gb1 {+1.11/14 33} 20. Rxh8 {+0.07/12 17} Gxa2
{+1.09/14 22} 21. Ra8 {+0.14/11 19} Kb7 {+1.09/13 18} 22. Rg8 {+0.49/13 52}
We5 {+1.17/14 34} 23. Rg5 {+0.43/12 1:06} Wa1 {+1.20/13 17} 24. h4
{+0.72/11 1:13} Cd7 {+1.21/12 18} 25. h5 {+0.58/10 14} Cf7 {+0.65/12 26}
26. Rd5 {+0.13/10 17} Gxa4 {+0.72/12 26} 27. h6 {+0.15/11 16} Hxc4
{+0.42/13 24} 28. Qh4 {+1.09/12 1:03} Hb3 {+0.03/12 37} 29. h7
{+1.51/11 12} Ha2 {+0.55/13 56} 30. h8=Q {+4.88/10 23} Hb1=K {-2.80/11 27}
31. Qe1 {-1.04/10 12} Hxe3 {-3.17/10 22} 32. dxe3 {-1.04/10 13} Hb6
{-4.06/11 23} 33. Rd4 {+0.28/11 16} Ga2 {-4.34/13 42} 34. Qhh4
{+0.27/10 14} Kxc1 {-4.10/13 42} 35. Ra4 {+0.40/11 21} Gxa4 {-5.93/14 51}
36. Qxa4 {+1.22/14 16} Wb2 {-5.99/15 21} 37. Qxa6+ {+0.70/14 19} Kc7
{-6.00/16 43} 38. Qa7+ {+0.75/14 24} Kd6 {-6.02/16 44} 39. Qxf7
{+0.83/14 1:51} Hc5 {-6.02/13 38} 40. Qf8+ {+0.86/9 11} Kd7 {-6.03/15 53}
41. Kf2 {+0.88/10 29} Kd1 {-5.94/13 22} 42. Qf7+ {+0.82/12 57} Kd6
{-5.78/14 24} 43. Qb4 {+0.81/11 20} Kc1 {-5.77/14 21} 44. Qf8 {+0.77/11 56}
Wd1+ {-5.83/14 31} 45. Kg3 {+0.85/11 20} Ke7 {-5.83/15 31} 46. Qh6
{+0.79/11 26} Ce5 {-5.76/14 30} 47. Qe1 {+0.86/11 38} Kxc2 {-6.61/13 37}
48. Bxc2 {+0.90/11 16} Wxc2 {-7.24/14 38} 49. Qeh1 {+0.79/12 1:49} Wf5+
{-4.16/14 30} 50. Kf3 {+0.80/12 28} We4+ {-4.29/14 30} 51. Kf4
{+1.03/12 34} Wd3+ {+0.91/17 26} 52. Kg4 {+0.02/12 18} Wf2+ {+0.43/17 30}
53. Kf3 {+0.01/15 31} We4+ {+0.50/17 28} 54. Ke2 {+0.58/12 25} Wg3+
{-4.25/14 25} 55. Kd2 {+0.74/13 43} We4+ {-4.33/14 21} 56. Kc1
{+1.13/11 20} Wd3+ {-4.33/15 31} 57. Kd1 {+0.59/12 30} Wf2+ {-4.33/15 31}
58. Kc2 {+0.63/12 41} Wxh1 {-4.46/15 31} 59. Qxh1 {+0.57/13 15} Ke6
{-4.61/16 31} 60. g3 {+0.69/13 24} Hd5 {-4.61/16 22} 61. e4 {+0.69/14 29}
Hc4 {-5.74/15 18} 62. Qf3 {+0.70/13 20} Hd4 {-5.71/15 24} 63. Kb3
{+0.59/13 22} Cc5 {-5.93/17 28} 64. Kb4 {+0.12/13 16} Cc3 {-5.96/17 23} 65.
e5 {-1.48/13 15} Kxe5 {-4.64/17 28} 66. g4 {-2.96/13 15} Cd3 {-4.64/17 23}
67. Qe2+ {+0.26/14 30} Kf4 {-3.07/18 22} 68. g5 {+0.76/14 35} Kxg5
{-3.07/18 36} 69. Kxc4 {+0.89/15 26} Kh6 {-4.27/18 49} 70. Qg4
{+0.06/15 15} Hg5 {-4.54/19 22} 71. Qh4+ {+0.29/16 27} Kg6 {-4.66/19 36}
72. Qf2 {+0.51/16 29} Hh4 {-4.37/18 30} 73. Qg3+ {+0.12/15 14} Kf5
{-4.33/17 19} 74. Qxh4 {+0.26/16 28} Cf3 {-4.32/18 28} 75. Qxd4
{+0.92/17 23} Cf4 {-3.40/18 31} 76. Qb2 {+0.93/18 20} Ke6 {-9.69/19 42} 77.
Kd3 {+0.93/17 14} Kf7 {-9.95/20 29} 78. Qe5 {+0.91/18 22} Cf6
{-10.20/22 1:02} 79. Kd4 {+0.91/18 15} Ce6 {-10.20/20 28} 80. Qf5+
{+0.90/19 25} Ke7 {-10.20/20 29} 81. Qf2 {+0.90/18 19} Cd6+ {-10.20/20 42}
82. Ke4 {+0.91/20 33} Ce6+ {-10.20/20 38} 83. Ke3 {+0.90/19 27} Cf6
{-10.20/20 22} 84. Qg2 {+0.91/20 40} Ke8 {-10.20/19 33} 85. Qg7
{+0.90/17 18} Cf7 {-10.20/19 31} 86. Qe5+ {+0.89/17 29} Ce7 {-10.20/18 19}
87. Qg5 {+0.88/18 37} Ce6 {-10.20/19 22} 88. Kd4 {+0.90/18 34} Kf8
{-10.20/20 17} 89. Qg4 {+0.89/18 27} Kf7 {-10.20/21 33} 90. Qh4
{+0.90/19 29} Cg6 {-10.20/18 19} 91. Qh5 {+0.90/18 19} Kf6 {-10.20/20 37}
92. Qh2 {+0.90/19 29} Cg7 {-10.20/19 37} 93. Qh8 {+0.89/18 29} Kg6
{-159.79/18 23} 94. Qe8+ {+0.88/18 46} Kf5 {-10.20/18 37} 95. Qe3
{+0.89/19 17} Kg6 {-10.20/17 35} 96. Qb3 {+0.88/19 1:05} Kf6 {-10.20/18 37}
97. Qf3+ {+0.89/18 21} Ke7 {-159.69/17 33} 98. Qh3 {+0.89/17 36} Cg6
{-159.73/17 37} 99. Qh2 {+0.90/18 35} Cf6 {-159.69/17 32} 100. Ke4
{+0.91/19 26} Cd6 {-159.71/16 18} 101. Qh1 {+0.90/19 26} Kd7 {-10.20/19 38}
102. Qf1 {+0.90/19 17} Kc6 {-9.69/17 18} 103. Qe1 {+0.89/20 52} Kb5
{-9.69/20 42} 104. Qg1 {+0.89/18 22} Kc6 {-10.20/18 33} 105. Qd1
{+0.89/19 19} Kc7 {-10.11/19 40} 106. Qc2+ {+0.89/18 21} Kb6 {-9.61/17 33}
107. Qf2+ {+0.88/19 41} Kb7 {-3.36/15 45} 108. Qe1 {+0.88/18 24} Kc6
{-3.32/15 30} 109. Qg1 {+0.89/19 27} Cb6 {-3.32/13 28} 110. Qc1+
{+0.89/18 17} Kb7 {-3.31/13 28} 111. Kf4 {+0.87/16 18} Cc6 {-3.27/11 15}
112. Qg1 {+0.88/17 22} Cd6 {-3.09/11 30} 113. Qh1+ {+0.88/19 41} Kc7
{-2.64/12 30} 114. Qc1+ {+0.90/18 32} Kd7 {-2.31/11 30} 115. Qe1
{+0.90/18 17} Cf6+ {-1.82/11 27} 116. Ke4 {+0.90/19 19} Ce6+ {-1.48/11 21}
117. Kd4 {+0.89/20 46} Cd6+ {-1.15/11 18} 118. Kd3 {+0.90/19 20} Cd5+
{+0.82/11 30} 119. Ke4 {+0.91/19 25} Ke6 {+0.49/11 28} 120. Qb1
{+0.91/19 20} Ce5+ {+0.00/19 28} 121. Kf3 {+0.90/19 36} Cf5+ {+0.00/25 19}
122. Ke3 {+0.92/20 30} Ce5+ {+0.00/26 28} 123. Kd2 {+0.90/19 1:01} Cd5
{+0.00/30 18} 124. Ke2 {+0.93/18 20} Kd6 {+0.00/38 16} 125. Kf3
{+0.93/19 1:20}
{Xboard adjudication: 50-move rule} 1/2-1/2
Game 112 suggest a search bug in Sjaak:

Code: Select all

[Event "Computer Chess Game"]
[Site "ENHORNING"]
[Date "2013.02.10"]
[Round "28"]
[White "Pair-o-Max 4.8S"]
[Black "Sjaak $Rev: 480 $"]
[Result "1-0"]
[TimeControl "40/1200"]
[Variant "spartan"]
[Annotator "2. -1.08   1... +0.36"]

1. d4 Ce6 {+0.36/14 30} 2. Nf3 {-1.08/9 1:05} Hbd5 {+0.50/13 27} 3. h4
{-1.19/9 26} Cdd6 {+0.60/13 27} 4. c3 {-1.32/10 53} Lc6 {+0.64/14 25} 5.
Nbd2 {-1.18/9 22} Hxd4 {+0.65/13 21} 6. Nxd4 {-1.44/9 20} Cxd4
{+0.77/14 18} 7. cxd4 {-1.52/11 32} Hd5 {+0.80/13 27} 8. Nb3 {-1.46/10 42}
Ce4 {+0.78/12 20} 9. e3 {-1.40/10 32} Hxd4 {+0.76/14 29} 10. Nxd4
{-1.47/10 20} Cxd4 {+0.90/14 20} 11. Qxd4 {-1.66/11 22} Wd5 {+0.89/14 21}
12. Qg4 {-1.54/10 26} Lf6 {+0.89/12 18} 13. Bd3 {-1.43/10 26} Le6
{+2.10/14 21} 14. Qh3 {-1.63/11 20} Le4 {+2.62/15 24} 15. Bxe4
{-2.04/13 18} Wxe4 {+2.51/15 22} 16. Qf3 {-2.15/13 25} Wxf3+ {+2.49/15 50}
17. gxf3 {-2.21/13 30} Hh6 {+2.54/16 33} 18. Rg1 {-2.12/11 18} Gb4
{+2.90/15 25} 19. f4 {-2.18/12 27} Lf6 {+2.90/19 29} 20. Rh1 {-2.36/12 17}
Hg6 {+2.90/15 22} 21. b3 {-2.24/12 19} Hh5 {+2.90/17 18} 22. Bb2
{-2.49/12 15} Lxh4 {+2.90/16 27} 23. Rg1 {-2.61/11 18} Gc5 {+2.90/17 36}
24. Rc1 {-2.59/11 16} Gd6 {+2.90/17 19} 25. Be5 {-2.48/12 35} Gb6
{+2.90/18 37} 26. Bd4 {-2.67/11 22} Ga5 {+2.90/18 19} 27. Rc2 {-2.54/11 25}
Kf7 {+2.90/18 30} 28. e4 {-2.75/11 30} Hf5 {+2.90/18 39} 29. Be5
{-2.63/12 18} Hxf4 {+2.90/17 27} 30. Bxf4 {-2.58/13 31} Gb6 {+2.90/17 22}
31. Rg4 {-2.55/13 44} Kb7 {+2.90/17 41} 32. Bg5 {-2.75/12 41} Lxg5
{+3.05/16 38} 33. Rxg5 {-2.74/14 26} Gf6 {+3.13/15 36} 34. Rf5
{-2.70/13 15} Ge6 {+3.17/15 45} 35. f3 {-2.76/14 32} He5 {+3.20/15 26} 36.
Rf4 {-2.59/13 14} Kg6 {+3.13/15 48} 37. Rc4 {-2.71/12 20} Gd6 {+3.05/14 35}
38. Rb4 {-2.83/13 19} Ka6 {+3.05/14 30} 39. Ke2 {-2.92/13 16} Hb6
{+3.25/15 45} 40. Rf8 {-2.53/13 19} Kb5 {+3.30/17 1:07} 41. Rxb5
{-2.68/14 20} Kg7 {+1.12/17 16} 42. Rd5 {+0.81/18 20} Gxd5 {+1.27/18 25}
43. exd5 {+0.62/19 31} Kxf8 {+2.65/20 31} 44. a4 {+0.63/16 21} Ha5
{+0.94/21 40} 45. b4 {-1.21/16 32} Hd4 {-1.47/21 20} 46. Kd2 {+0.68/16 34}
Hxa4 {-7.72/20 18} 47. b5 {+0.07/16 27} He3 {-8.54/20 39} 48. Kxe3
{+5.23/17 36} Hb3 {-8.77/21 26} 49. Kd2 {+6.29/17 41} Hg4 {-8.77/18 26} 50.
fxg4 {+6.97/16 22} Ha2 {-9.83/21 21} 51. Kc1 {+7.45/18 29} Ke8
{-9.95/22 25} 52. g5 {+7.85/19 22} Hd6 {-9.99/22 16} 53. Kb1 {+8.27/19 21}
Hxd5 {-10.19/23 21} 54. gxh6 {+8.41/20 42} Kf8 {-10.35/24 44} 55. b6
{+8.51/21 20} Kg8 {-159.65/22 24} 56. b7 {+8.56/22 38} Kh7 {-159.77/22 14}
57. b8=Q {+79.62/21 35} Kxh6 {-159.79/21 8} 58. Qe5 {+79.67/20 24} Hc4
{-159.79/20 11} 59. Qf6+ {+79.68/19 18} Kh7 {-159.77/21 22} 60. Qf7+
{+79.86/22 47} Kh6 {-159.79/22 16} 61. Qxc4 {+79.88/21 22} Kg5
{-159.81/20 0.8} 62. Qf7 {+79.90/23 29} Kg4 {-159.83/18 1.1} 63. Kxa2
{+79.91/24 24} Kg5 {-159.85/18 1.0} 64. Kb3 {+79.92/25 30} Kg4
{-159.87/14 0.1} 65. Kc3 {+79.93/25 27} Kg5 {-159.89/12 0.1} 66. Kd3
{+79.94/28 15} Kg4 {-159.91/10 0.1} 67. Qf6 {+79.95/28 6} Kg3
{-159.93/10 0.1} 68. Ke3 {+79.96/28 1.0} Kg4 {-159.95/6 0.1} 69. Qg6+
{+79.97/28 0.1} Kh4 {-159.97/4 0.1} 70. Kf3 {+79.98/28 0.1} Kh3 71. Qh6#
{+79.99/28 0.1}
{Xboard adjudication: Checkmate} 1-0
5R2/4h3/1h1g2kh/1k2h2h/1R2P3/1P3P2/P3K3/8 w - - 2 41
[d]5R2/4p3/1p1q2kp/1k2p2p/1R2P3/1P3P2/P3K3/8 w - - 2 41

After 41. Rxb5 it can simply recapture Hxb5, leaving a comfortable lead of G vs R in the end-game. But in stead it plays 41. Kg7?, attacking two Rooks, but the first can get away to safety while mounting a counter-attack on the unprotected G, 42. Rd5, causing a score swing in Pair-o-Max from -2.68 to +0.81, and converting to a Pawn ending that turns out to be lost.
User avatar
Evert
Posts: 2929
Joined: Sat Jan 22, 2011 12:42 am
Location: NL

Re: Chess variant tournament: Spartan Chess

Post by Evert »

hgm wrote:Game 112 suggest a search bug in Sjaak:
[...]
5R2/4h3/1h1g2kh/1k2h2h/1R2P3/1P3P2/P3K3/8 w - - 2 41
[d]5R2/4p3/1p1q2kp/1k2p2p/1R2P3/1P3P2/P3K3/8 w - - 2 41

After 41. Rxb5 it can simply recapture Hxb5, leaving a comfortable lead of G vs R in the end-game. But in stead it plays 41. Kg7?, attacking two Rooks, but the first can get away to safety while mounting a counter-attack on the unprotected G, 42. Rd5, causing a score swing in Pair-o-Max from -2.68 to +0.81, and converting to a Pawn ending that turns out to be lost.
Looks like a problem with the transposition table. If I give the position to Sjaak directly and tell it to search it doesn't even consider anything other than bxb5...
User avatar
Evert
Posts: 2929
Joined: Sat Jan 22, 2011 12:42 am
Location: NL

Re: Chess variant tournament: Spartan Chess

Post by Evert »

Ok, so it turns out that Sho Shogi is both easier and harder than I thought. I can define the pieces easily enough, even the Lance (although it's a bit of a hack), but two things make it not work correctly: Sjaak only generates promotions for "pawn-like" pieces, and it doesn't handle different promotion zones based on side, only based on piece-type (normally black and white pawns are considered different piece-types so this isn't an issue, but that won't work here). Both of these can be fixed, of course, but it takes a bit of work.
User avatar
hgm
Posts: 28452
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Chess variant tournament: Spartan Chess

Post by hgm »

Well, don't bother, then. Sho Shogi isn't that interesting a variant. I also decided that the large, drop-less Shogi variants are so different from anything else that it would be better to write a completely new engine for them (which became HaChu, and currently only plays Sho, Chu and Dai on a sub-TSCP level).