Most common chess variant?

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

User avatar
gbtami
Posts: 389
Joined: Wed Sep 26, 2012 1:29 pm
Location: Hungary

Re: Most common chess variant?

Post by gbtami »

stegemma wrote:
hgm wrote:The gratifying thing about Makruk is that a good engine probably would have lots of users, many more than any engine for FIDE Chess (if it isn't at least as strong as Stockfish).[...]
Implementing the Makruk rules for piece moving has required less than half an hour! You can leave castling unchanged (it would be disabled in FEN), put some if statement to avoid 2 pushes of the pawns and under-promotions, accept S/M instead of B/Q in FEN and sligthly change move generation of Queens and Bishops... et voilà! :)

Now i'm testing perft, then i can add alfabeta and see what happens.
If you ready with Makruk and plan to add another variants Sittuyin (Burmese Chess) is a good candidate. It's rather interesting to play and implementing (opening) drop moves will whet your appetite to implement shogi variants in the future :wink:
User avatar
stegemma
Posts: 859
Joined: Mon Aug 10, 2009 10:05 pm
Location: Italy
Full name: Stefano Gemma

Re: Most common chess variant?

Post by stegemma »

Of course make things works has required some more time, but this is my first Makruk perft. I suppose that this could be wrong but i'm googling to find some counts to compare with mines:

Code: Select all

rnsmksnr
........
pppppppp
........
........
PPPPPPPP
........
RNSMKSNR
 FEN: rnsmksnr/8/pppppppp/8/8/PPPPPPPP/8/RNSMKSNR w -
perft 1 Nodes: 23, Time: 0 ms, Nodes/s: 23000
perft 2 Nodes: 529, Time: 0 ms, Nodes/s: 529000
perft 3 Nodes: 11920, Time: 1 ms, Nodes/s: 5960000
perft 4 Nodes: 268866, Time: 10 ms, Nodes/s: 24442363
perft 5 Nodes: 6036052, Time: 218 ms, Nodes/s: 27561881
perft 6 Nodes: 135817681, Time: 5254 ms, Nodes/s: 25845419
perft 7 Nodes: 3089959959, Time: 111667 ms, Nodes/s: 27670952
kbhearn
Posts: 411
Joined: Thu Dec 30, 2010 4:48 am

Re: Most common chess variant?

Post by kbhearn »

Evert wrote:
hgm wrote: The original question is hard to answer. ICS usually only offer variants that can be played with standard pieces. The most popular of those are then Suicide and Crazyhouse. But from the viewpoint of an engine both are quite drastic departures from normal Chess: Suicide has mandatory capture and needs a completely different search to do it well. (And it is arguable whether it still counts as Chess, because there is no royal piece.) Crazyhouse has piece drops.
Do you really need a different search for suicide chess? I never really looked at it because I don't find it particularly interesting, but I figured that making the piece values negative would do it?
i think you'd find most piece values to be slightly positive still in suicide though perhaps not so much as losers which i'm more familiar with. Idea being if you have the move, and you don't have to capture, then more pieces (generally) means more control. the poor bastard that gets stuck with a few pawns while the opponent has pieces still is very often toast since pawns can be easily led around the board.

As for search, extensions to cover long capture-chains would be crucial (A captures, B moves a piece into take, A has to capture again, etc) since you can't really evaluate whether or not leading the opponent through said chain is a good thing until you get to the end of it all and find out if you gave away all your pieces, or just gave away control of the board.
User avatar
stegemma
Posts: 859
Joined: Mon Aug 10, 2009 10:05 pm
Location: Italy
Full name: Stefano Gemma

Re: Most common chess variant?

Post by stegemma »

gbtami wrote:[...]If you ready with Makruk and plan to add another variants Sittuyin (Burmese Chess) is a good candidate. It's rather interesting to play and implementing (opening) drop moves will whet your appetite to implement shogi variants in the future :wink:
The pieces moving is the same as in Makruk but the other rules are more complex. Let me make chess/makruk variant play well in satana and i can step to this other interesting variant.

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

Re: Most common chess variant?

Post by hgm »

Evert wrote:Do you really need a different search for suicide chess? I never really looked at it because I don't find it particularly interesting, but I figured that making the piece values negative would do it?
I have no experience with it myself, but I noticed that Sjeng uses proof-number search in Suicide (requiring an extra table, bigger than the transition table). And Nilatac does seem to exist in an alpha-beta and a proof-number version.

Also Gian-Carlo told me that piece values are NOT negative. Being a Queen ahead in the initial position of Suicide is an advantage!
The Lion is a very complicated piece, but interesting. Do you have rules for Werewolf Chess up somewhere?
http://www.chessvariants.org/index/msdi ... ewolfchess

I made the Werewolf contageous to prevent its disappearance from the game. And it moves like a limited-range Queen (max 3 squares), but in addition has a direct jump to the second square, with which it can optionally capture the piece it jumps over (in addition to what it might capture on the final square). No igui or null move.
User avatar
Evert
Posts: 2929
Joined: Sat Jan 22, 2011 12:42 am
Location: NL

Re: Most common chess variant?

Post by Evert »

hgm wrote:
Evert wrote:Do you really need a different search for suicide chess? I never really looked at it because I don't find it particularly interesting, but I figured that making the piece values negative would do it?
I have no experience with it myself, but I noticed that Sjeng uses proof-number search in Suicide (requiring an extra table, bigger than the transition table). And Nilatac does seem to exist in an alpha-beta and a proof-number version.

Also Gian-Carlo told me that piece values are NOT negative. Being a Queen ahead in the initial position of Suicide is an advantage!
I need to take another look at proof-number search. I tried to read up on it once but the links I found were too technical to read late at night...

Interesting note about piece values in Suicide. My source for thinking they're negative is this: http://www.ke.tu-darmstadt.de/publicati ... 008-07.pdf which is an interesting read regardless.
The Lion is a very complicated piece, but interesting. Do you have rules for Werewolf Chess up somewhere?
http://www.chessvariants.org/index/msdi ... ewolfchess

I made the Werewolf contageous to prevent its disappearance from the game. And it moves like a limited-range Queen (max 3 squares), but in addition has a direct jump to the second square, with which it can optionally capture the piece it jumps over (in addition to what it might capture on the final square). No igui or null move.
Hmm... not being able to return to its original square makes this something I can't easily implement in Sjaak right now. Solvable, but I'd need to explicitly disallow (or allow) that. The rest of it should work as-is though.
User avatar
Evert
Posts: 2929
Joined: Sat Jan 22, 2011 12:42 am
Location: NL

Re: Most common chess variant?

Post by Evert »

stegemma wrote:Of course make things works has required some more time, but this is my first Makruk perft. I suppose that this could be wrong but i'm googling to find some counts to compare with mines:

Code: Select all

rnsmksnr
........
pppppppp
........
........
PPPPPPPP
........
RNSMKSNR
 FEN: rnsmksnr/8/pppppppp/8/8/PPPPPPPP/8/RNSMKSNR w -
perft 1 Nodes: 23, Time: 0 ms, Nodes/s: 23000
perft 2 Nodes: 529, Time: 0 ms, Nodes/s: 529000
perft 3 Nodes: 11920, Time: 1 ms, Nodes/s: 5960000
perft 4 Nodes: 268866, Time: 10 ms, Nodes/s: 24442363
perft 5 Nodes: 6036052, Time: 218 ms, Nodes/s: 27561881
perft 6 Nodes: 135817681, Time: 5254 ms, Nodes/s: 25845419
perft 7 Nodes: 3089959959, Time: 111667 ms, Nodes/s: 27670952
http://www.eglebbk.dds.nl/program/chess-perft.html or https://sites.google.com/site/dshawul/home have Makruk perft numbers. For immediate reference, mine are

Code: Select all

1	 23
2	 529
3	 12012
4	 273026
5	 6223994
6	 142078049
7	 3299342874
User avatar
Evert
Posts: 2929
Joined: Sat Jan 22, 2011 12:42 am
Location: NL

Re: Most common chess variant?

Post by Evert »

kbhearn wrote: i think you'd find most piece values to be slightly positive still in suicide though perhaps not so much as losers which i'm more familiar with. Idea being if you have the move, and you don't have to capture, then more pieces (generally) means more control. the poor bastard that gets stuck with a few pawns while the opponent has pieces still is very often toast since pawns can be easily led around the board.
Sure, but that could just mean that pawns have a much larger negative value than a queen, right?
As for search, extensions to cover long capture-chains would be crucial (A captures, B moves a piece into take, A has to capture again, etc) since you can't really evaluate whether or not leading the opponent through said chain is a good thing until you get to the end of it all and find out if you gave away all your pieces, or just gave away control of the board.
True, I suppose you shouldn't allow stand-pat as an option in q-search (since captures are mandatory). I should probably add that in Sjaak (although I don't think I handle mandatory captures as a rule at the moment, so the point is moot there).
User avatar
hgm
Posts: 27790
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Most common chess variant?

Post by hgm »

I would have thought it made it easier that the second step would always have to be the same as the first one, in a locust.
Ferdy
Posts: 4833
Joined: Sun Aug 10, 2008 3:15 pm
Location: Philippines

Re: Most common chess variant?

Post by Ferdy »

stegemma wrote:Of course make things works has required some more time, but this is my first Makruk perft. I suppose that this could be wrong but i'm googling to find some counts to compare with mines:

Code: Select all

rnsmksnr
........
pppppppp
........
........
PPPPPPPP
........
RNSMKSNR
 FEN: rnsmksnr/8/pppppppp/8/8/PPPPPPPP/8/RNSMKSNR w -
perft 1 Nodes: 23, Time: 0 ms, Nodes/s: 23000
perft 2 Nodes: 529, Time: 0 ms, Nodes/s: 529000
perft 3 Nodes: 11920, Time: 1 ms, Nodes/s: 5960000
perft 4 Nodes: 268866, Time: 10 ms, Nodes/s: 24442363
perft 5 Nodes: 6036052, Time: 218 ms, Nodes/s: 27561881
perft 6 Nodes: 135817681, Time: 5254 ms, Nodes/s: 25845419
perft 7 Nodes: 3089959959, Time: 111667 ms, Nodes/s: 27670952

Code: Select all

# Bilis v0.14
# Compiled: Apr 28 2013
# Can only play makruk chess variant

Code: Select all

perft 3

8  r n s m k s n r
7  . . . . . . . .
6  o o o o o o o o
5  . . . . . . . .
4  . . . . . . . .
3  P P P P P P P P
2  . . . . . . . .
1  R N S K M S N R

   a b c d e f g h


 a3a4 - 575
 b3b4 - 530
 c3c4 - 553
 d3d4 - 530
 e3e4 - 530
 f3f4 - 553
 g3g4 - 530
 h3h4 - 575
 b1d2 - 529
 g1e2 - 552
 c1b2 - 506
 c1d2 - 437
 c1c2 - 460
 f1e2 - 437
 f1g2 - 483
 f1f2 - 437
 a1a2 - 690
 h1h2 - 690
 e1d2 - 460
 e1f2 - 506
 d1c2 - 506
 d1d2 - 460
 d1e2 - 483

 Perft 3 Summary
 Nodes: 12012
 Time: 0.01 sec
 Nodes/sec: 1001000

Code: Select all

perft 4

8  r n s m k s n r
7  . . . . . . . .
6  o o o o o o o o
5  . . . . . . . .
4  . . . . . . . .
3  P P P P P P P P
2  . . . . . . . .
1  R N S K M S N R

   a b c d e f g h


 a3a4 - 13054
 b3b4 - 12081
 c3c4 - 12600
 d3d4 - 12079
 e3e4 - 12079
 f3f4 - 12600
 g3g4 - 12081
 h3h4 - 13054
 b1d2 - 12014
 g1e2 - 12536
 c1b2 - 11490
 c1d2 - 9924
 c1c2 - 10446
 f1e2 - 9924
 f1g2 - 10968
 f1f2 - 9924
 a1a2 - 15666
 h1h2 - 15666
 e1d2 - 10446
 e1f2 - 11490
 d1c2 - 11490
 d1d2 - 10446
 d1e2 - 10968

 Perft 4 Summary
 Nodes: 273026
 Time: 0.05 sec
 Nodes/sec: 5250500

Code: Select all

perft 5

8  r n s m k s n r
7  . . . . . . . .
6  o o o o o o o o
5  . . . . . . . .
4  . . . . . . . .
3  P P P P P P P P
2  . . . . . . . .
1  R N S K M S N R

   a b c d e f g h


 a3a4 - 323107
 b3b4 - 278085
 c3c4 - 305717
 d3d4 - 278531
 e3e4 - 279058
 f3f4 - 304674
 g3g4 - 278088
 h3h4 - 323107
 b1d2 - 281941
 g1e2 - 302311
 c1b2 - 253180
 c1d2 - 192593
 c1c2 - 212441
 f1e2 - 192593
 f1g2 - 233854
 f1f2 - 191549
 a1a2 - 416660
 h1h2 - 417182
 e1d2 - 211396
 e1f2 - 252136
 d1c2 - 251605
 d1d2 - 215040
 d1e2 - 229146

 Perft 5 Summary
 Nodes: 6223994
 Time: 0.88 sec
 Nodes/sec: 7080767

Code: Select all

perft 6

8  r n s m k s n r
7  . . . . . . . .
6  o o o o o o o o
5  . . . . . . . .
4  . . . . . . . .
3  P P P P P P P P
2  . . . . . . . .
1  R N S K M S N R

   a b c d e f g h


 a3a4 - 7355946
 b3b4 - 6388190
 c3c4 - 7003885
 d3d4 - 6386776
 e3e4 - 6400120
 f3f4 - 6975587
 g3g4 - 6388244
 h3h4 - 7353858
 b1d2 - 6398234
 g1e2 - 6888903
 c1b2 - 5772206
 c1d2 - 4392680
 c1c2 - 4844685
 f1e2 - 4392684
 f1g2 - 5332152
 f1f2 - 4369015
 a1a2 - 9494323
 h1h2 - 9506195
 e1d2 - 4820792
 e1f2 - 5748471
 d1c2 - 5736405
 d1d2 - 4903680
 d1e2 - 5225018

 Perft 6 Summary
 Nodes: 142078049
 Time: 21.90 sec
 Nodes/sec: 6487878

Code: Select all

perft 7

8  r n s m k s n r
7  . . . . . . . .
6  o o o o o o o o
5  . . . . . . . .
4  . . . . . . . .
3  P P P P P P P P
2  . . . . . . . .
1  R N S K M S N R

   a b c d e f g h


 a3a4 - 182526619
 b3b4 - 148886448
 c3c4 - 172987399
 d3d4 - 148988404
 e3e4 - 149821646
 f3f4 - 171189027
 g3g4 - 148914748
 h3h4 - 182357799
 b1d2 - 154292328
 g1e2 - 169043296
 c1b2 - 129906024
 c1d2 - 89207359
 c1c2 - 102172782
 f1e2 - 89373440
 f1g2 - 117516849
 f1f2 - 87815290
 a1a2 - 239940560
 h1h2 - 240593574
 e1d2 - 100840216
 e1f2 - 128517370
 d1c2 - 127892080
 d1d2 - 104863956
 d1e2 - 111695660

 Perft 7 Summary
 Nodes: 3299342874
 Time: 488.90 sec
 Nodes/sec: 6748544
Download as sparring partner:
https://sites.google.com/site/deuterium ... les/makruk