Engines playing Musketeer Chess, good price

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

User avatar
musketeerchess
Posts: 161
Joined: Sun Apr 21, 2013 2:02 pm
Location: Paris, France

Re: Engines playing Musketeer Chess, good price

Post by musketeerchess »

hgm wrote: Mon Dec 30, 2019 12:36 pm Oh, I had completely forgotten that KingSlayer uses the same flag in the move encoding for indicating castling and double-pushing, and the moves have to be distinguished by testing the type of the moved piece. So the code I added to print a gating suffix when something is left on a1/h1 after castling also added a suffix if something was left on a2/h2 after the double-push e2e4. (Unfortunately WinBoard still needs gating suffixes from the engine, even though the gating in holdingless seirawan is fully implied by the move. It seems good practice to write the gating suffixes in SAN/PGN, though. Perhaps WinBoard should make gating suffixes optional on reading.

Anyway, I fixed KingSlayer-Aramis' move-printing routine to not add spurious gating suffixes on pawn double pushes, and uploaded it in the updated WinBoard-AA package.
Happy new year all of you.
inventor of Musketeer Chess. A modern commercial chess variant.

www.musketeerchess.net

Pieces are available on Houseofstaunton.com or Paypal
User avatar
musketeerchess
Posts: 161
Joined: Sun Apr 21, 2013 2:02 pm
Location: Paris, France

Re: Engines playing Musketeer Chess, good price

Post by musketeerchess »

musketeerchess wrote: Tue Dec 31, 2019 10:39 pm
hgm wrote: Mon Dec 30, 2019 12:36 pm Oh, I had completely forgotten that KingSlayer uses the same flag in the move encoding for indicating castling and double-pushing, and the moves have to be distinguished by testing the type of the moved piece. So the code I added to print a gating suffix when something is left on a1/h1 after castling also added a suffix if something was left on a2/h2 after the double-push e2e4. (Unfortunately WinBoard still needs gating suffixes from the engine, even though the gating in holdingless seirawan is fully implied by the move. It seems good practice to write the gating suffixes in SAN/PGN, though. Perhaps WinBoard should make gating suffixes optional on reading.

Anyway, I fixed KingSlayer-Aramis' move-printing routine to not add spurious gating suffixes on pawn double pushes, and uploaded it in the updated WinBoard-AA package.
Happy new year all of you.
Hi my friends
Follow also this discussion:

https://github.com/ianfab/Musketeer-Stockfish/issues/3
inventor of Musketeer Chess. A modern commercial chess variant.

www.musketeerchess.net

Pieces are available on Houseofstaunton.com or Paypal
User avatar
musketeerchess
Posts: 161
Joined: Sun Apr 21, 2013 2:02 pm
Location: Paris, France

Re: Engines playing Musketeer Chess, good price

Post by musketeerchess »

musketeerchess wrote: Sun Jan 05, 2020 4:54 pm
musketeerchess wrote: Tue Dec 31, 2019 10:39 pm
hgm wrote: Mon Dec 30, 2019 12:36 pm Oh, I had completely forgotten that KingSlayer uses the same flag in the move encoding for indicating castling and double-pushing, and the moves have to be distinguished by testing the type of the moved piece. So the code I added to print a gating suffix when something is left on a1/h1 after castling also added a suffix if something was left on a2/h2 after the double-push e2e4. (Unfortunately WinBoard still needs gating suffixes from the engine, even though the gating in holdingless seirawan is fully implied by the move. It seems good practice to write the gating suffixes in SAN/PGN, though. Perhaps WinBoard should make gating suffixes optional on reading.

Anyway, I fixed KingSlayer-Aramis' move-printing routine to not add spurious gating suffixes on pawn double pushes, and uploaded it in the updated WinBoard-AA package.
Happy new year all of you.
Hi my friends
Follow also this discussion:

https://github.com/ianfab/Musketeer-Stockfish/issues/3
Some very interesting discussions can be checked in the link above. Don't miss them
inventor of Musketeer Chess. A modern commercial chess variant.

www.musketeerchess.net

Pieces are available on Houseofstaunton.com or Paypal
Daniel Shawul
Posts: 4185
Joined: Tue Mar 14, 2006 11:34 am
Location: Ethiopia

Re: Engines playing Musketeer Chess, good price

Post by Daniel Shawul »

Does anyone have a perft test for this game?
Daniel Shawul
Posts: 4185
Joined: Tue Mar 14, 2006 11:34 am
Location: Ethiopia

Re: Engines playing Musketeer Chess, good price

Post by Daniel Shawul »

Also, I am not sure I understand the negotiation rules. What I did is to add the new pieces to standard chess.
I am assuming that the pieces are already selected when the game starts.
I assume the fact that stockfish ( a bitboard engine ) plays it means it is 8x8 board.

My game definition file for Nebiyu.

Code: Select all

variant musketeerchess musketeerchess 2
8 8 0
.*PpKkQqRrBbNnLlCcUuDdMmAaEeHhFfSs
rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1
#PNBRQFEACWMOHIJGDVLSUKpnbrqfeacwmohijgdvlsuk
 PNBRQFEAC.M.H...D.LSUKpnbrqfeac.m.h...d.lsuk
P  100  wpawn
p  100  bpawn
K 1000  king
k 1000  king
Q  900  queen
q  900  queen
R  500  rook
r  500  rook
B  350  bishop
b  350  bishop
N  300  knight
n  300  knight
L  500  leopard
l  500  leopard
C  400  cannon
c  400  cannon
U  600  unicorn
u  600  unicorn
D 1200  dragonm
d 1200  dragonm
M  800  chancellor
m  800  chancellor
A  650  archbishop
a  650  archbishop
E  500  elephant
e  500  elephant
H  650  hawk
h  650  hawk
F  600  fortress
f  600  fortress
S  650  spider
s  650  spider
2 8 8
45 2
User avatar
hgm
Posts: 27790
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Engines playing Musketeer Chess, good price

Post by hgm »

How are the new pieces introduced on the board?

Note that Fairy-Stockfish can do other board sizes (e.g. 10x8 for Capablanca).
Ferdy
Posts: 4833
Joined: Sun Aug 10, 2008 3:15 pm
Location: Philippines

Re: Engines playing Musketeer Chess, good price

Post by Ferdy »

Daniel Shawul wrote: Sun Jan 12, 2020 6:42 am Also, I am not sure I understand the negotiation rules.
It has 2 initial game phases in order.
1. PS (piece selection) phase
2. GP (gating preparation) phase.

Starting position used by Jocly (an internet server, was down still down). See image 1.

image 1
Image

In PS white will select a musketeer piece type, then black will also select another piece type. That's the first move.
Example white selects a cannon, and black selects an elephant. After that both sides have a cannon and an elephant.
PS phase is now complete. See image 2.

image 2
Image


Next is GP, user will decide which file are they going to gate their cannon and elephant.
White can move its cannon to b file. See image 3. When the Knight at B1 moves the cannon will enter at B1 square. It's like a promotion move b1c3c or b1a3c. White can play b1c3 without gating, in this case, the cannon loses its right to gate, and it can never be gated for the rest of the game.

image 3
Image

Black can reply by moving its cannon to d file. See image 4.

image 4
Image

That completes move 2.


Next is moving the elephants to row 0 and row 9, white likes to gate to f file and black to g file, that completes move 3. See image 5.

image 5
Image

That completes the PS and GP phases. Game can continue with white playing e2e4 as in chess.

Ref. game rules: https://musketeerchess.net/games/musket ... -short.php
User avatar
musketeerchess
Posts: 161
Joined: Sun Apr 21, 2013 2:02 pm
Location: Paris, France

Re: Engines playing Musketeer Chess, good price

Post by musketeerchess »

Ferdy wrote: Sun Jan 12, 2020 11:58 am
Daniel Shawul wrote: Sun Jan 12, 2020 6:42 am Also, I am not sure I understand the negotiation rules.
It has 2 initial game phases in order.
1. PS (piece selection) phase
2. GP (gating preparation) phase.

Starting position used by Jocly (an internet server, was down still down). See image 1.

image 1
Image

In PS white will select a musketeer piece type, then black will also select another piece type. That's the first move.
Example white selects a cannon, and black selects an elephant. After that both sides have a cannon and an elephant.
PS phase is now complete. See image 2.

image 2
Image


Next is GP, user will decide which file are they going to gate their cannon and elephant.
White can move its cannon to b file. See image 3. When the Knight at B1 moves the cannon will enter at B1 square. It's like a promotion move b1c3c or b1a3c. White can play b1c3 without gating, in this case, the cannon loses its right to gate, and it can never be gated for the rest of the game.

image 3
Image

Black can reply by moving its cannon to d file. See image 4.

image 4
Image

That completes move 2.


Next is moving the elephants to row 0 and row 9, white likes to gate to f file and black to g file, that completes move 3. See image 5.

image 5
Image

That completes the PS and GP phases. Game can continue with white playing e2e4 as in chess.

Ref. game rules: https://musketeerchess.net/games/musket ... -short.php
Hi Daniel (thanks for joining), Ferdy and HG,

Ferdy already explained the Piece Selection and Gating Phase rules which are the particularity of Musketeer Chess.

Concerning your relative values for the pieces, i think you can reasonably make the Following choices:

Pawn 100
King your choice is 1000!! please explain
Queen 900
Rook 500
Bishop 350
Knight 300

Leopard : 670, (your value 500 too low)

Archbishop : 810, (your value 650 is too low !)

Cannon : 750, (your value 400 too low)

Chancellor : 840 (your value 800 is accurate, but i still think that the Chancellor is Under estimated slightly, for me it's the piece i can handle with the most difficulty)

Dragon or Amazone : 1250 (your value 1200 is accurate)

Unicorn : 560, (your value 600 is probably accurate, the Truth is certainly between both)

Hawk : 550, (your value 650 is probably slightly over estimating this piece. It's probably true in the opening phase as it's moves are only jumps, but once the opening surprise passed (forking capabilities limited) it's slightly less valuable)

Elephant : 630 (your value 500 is too low)

Fortress : 780 (your value 600 is probably too low)

Spider : 860 (your value 650 is probably too low)


THESE ARE SLIGHTLY MODIFIED VALUES OF THE WORK I'VE DONE WITH FERDY TO DETERMINE THE RELATIVE PIECE VALUE.
https://musketeerchess.net/site/muskete ... ece-value/

Ferdy has done a perft test. He can share with you.
inventor of Musketeer Chess. A modern commercial chess variant.

www.musketeerchess.net

Pieces are available on Houseofstaunton.com or Paypal
Daniel Shawul
Posts: 4185
Joined: Tue Mar 14, 2006 11:34 am
Location: Ethiopia

Re: Engines playing Musketeer Chess, good price

Post by Daniel Shawul »

@Ferdy Thanks, I now understand how the piece selection rules work

@HG My implementation was rather limited because I assumed that the fairy pieces are already in play. I did not even
implement how they get into play properly. It is my understanding that ranks 0 and 9 are "water" and can not be moved to
with other pieces. I have a holdings area just like that but is not file-restricted. So are there represented in the FEN as
e.g [C2D1c4d3] where they are preceded by file numbers? The drop rule is not a regular one and I probably need to implement a
special rule for it ( Not moved piece + drop-to-from square -- I like Ferdy representation with promotion letters but since I have a combo move
capability it may be easier for me to do "move b1c3 move C@b1" )
Edit: In a way the drops of pieces is square-restricted because it can only go to first/last rank. So the first time the target square becomes
empty, I drop it or lose it forever. In the latter case, do we just remove the piece from the holdings list forever?

@musketeerchess Thanks for the piece values. King's value is just a placeholder ( is actually infinity ). Anyway, I may decide to train
a neural network for it if it turns out to be simple enough.
Daniel Shawul
Posts: 4185
Joined: Tue Mar 14, 2006 11:34 am
Location: Ethiopia

Re: Engines playing Musketeer Chess, good price

Post by Daniel Shawul »

If a fairy piece had the chance to get into play but declined it, it is as if the piece is out of the game forever, right? So why not
make this move forced? No player is ever going to decline to do that anyway... also it is easier to handle for engines too
i.e. b1c3 and b1c3C are the same now. So I made this move forced now and also instead of a "combo" move, I now handle
this move as I do castling. That is, nothing needs to be encoded with the move, but proper way to do/undo the move will be figured
out later. Also, now I use an 8x10 board for the fen, which I believe is what is agreed upon for the tournament ...

Here is a search from a pre-selected start position:

Code: Select all

feature done=0
Number of cores 4 of 4
treeht 18641351 X 720 = 12800.0 MB
processors [1]
ht 1048576 X 48 = 48.0 MB

	    a b c d e f g h 
	    * * * * * * * * * * * * * * * * * * * * * * * * * * * *     
	    * * * * * * * * * * * * * * * * * * * * * * * * * * * *     
	    * * * * * * * * * * * * * * * * * * * * * * * * * * * *     
	    * * * * * * * * * * * * * * * * * * * * * * * * * * * *     
	 10 * d * * * a * * * * * * * * * * * * * * * * * * * * * * 10  
	  9 r n b q k b n r * * * * * * * * * * * * * * * * * * * * 9   
	  8 p p p p p p p p * * * * * * * * * * * * * * * * * * * * 8   
	  7 . . . . . . . . * * * * * * * * * * * * * * * * * * * * 7   
	  6 . . . . . . . . * * * * * * * * * * * * * * * * * * * * 6   
	  5 . . . . . . . . * * * * * * * * * * * * * * * * * * * * 5   
	  4 . . . . . . . . * * * * * * * * * * * * * * * * * * * * 4   
	  3 P P P P P P P P * * * * * * * * * * * * * * * * * * * * 3   
	  2 R N B Q K B N R * * * * * * * * * * * * * * * * * * * * 2   
	  1 * D * * * * A * * * * * * * * * * * * * * * * * * * * * 1   
	    * * * * * * * * * * * * * * * * * * * * * * * * * * * *     
	    * * * * * * * * * * * * * * * * * * * * * * * * * * * *     
	    * * * * * * * * * * * * * * * * * * * * * * * * * * * *     
	    * * * * * * * * * * * * * * * * * * * * * * * * * * * *     
	    a b c d e f g h 
 
		[Material: 8996 9002 ]
*d***a**/rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR/*D****A* w KQkq - 0 1

movelist 20 h3h4  h3h5  g3g4  g3g5  f3f4  f3f5  e3e4  e3e5  d3d4  d3d5  c3c4  c3c5  b3b4  b3b5  a3a4  a3a5  g2h4  g2f4  b2c4  b2a4  
EgbbProbe not Loaded!
loading_time = 0s
# *d***a**/rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR/*D****A* w KQkq - 0 1
# [st = 8335ms, mt = 29250ms , hply = 0 , moves_left 10]
2 -20 0 44  h3h4  h8h6 
2 -6 0 75  h3h5  h8h6 
3 18 0 253  h3h5  h8h6  a3a5 
4 -6 0 410  h3h5  h8h6  a3a5  f8f6 
5 4 0 1185  h3h5  a8a6  g3g5  d8d6  f3f4 
6 -6 1 2515  h3h5  a8a6  g3g5  h8h6  e3e5  d8d6 
7 8 3 8852  h3h5  a8a6  d3d5  d8d6  f3f4  c9f6  g1f3 
8 14 4 16002  h3h5  a8a6  f3f5  f8f6  g1f3  h8h6  f3d5  d8d6 
9 14 5 26616  h3h5  a8a6  e3e5  d8d6  f3f4  h8h6  g1f3  c9e7  f2d4 
9 18 5 30531  f3f5  h8h6  h3h5  a8a6  d3d5  c8c7  g3g4  b10c8  g1f3 
10 14 7 44778  h3h5  a8a6  d3d5  h8h6  c2e4  d8d6  f3f5  f8f6  b1d3  c9e7 
10 18 8 67648  d3d5  d8d6  c2e4  c8c7  b1d3  c9e7  f3f5  b10d8  g1f3  f8f6 
11 14 14 150884  d3d5  d8d6  a3a5  f8f6  c2f5  c9e7  b1e4  b10d8  b3b5  a8a6  c3c4  a6b5  c4b5 
12 8 28 405926  d3d5  d8d6  h3h5  h8h6  c2f5  c9e7  b1e4  b10d8  b3b5  f8f6  a3a5  a8a6 
13 8 54 923679  d3d5  d8d6  c2f5  c9e7  b1d3  g9f7  h3h5  b10d8  b3b5  f7e5  d3e4  a8a6  b2c4 
14 8 75 1342536  d3d5  d8d6  f3f4  a8a6  g1f3  c9e7  h3h5  b10d8  c2f5  c8c7  a3a5  d9b7  b1c2  f10d9 
15 10 136 2580115  d3d5  d8d6  h3h5  h8h6  c2f5  c9f6  f3f4  b10e7  b1e4  e7e4  f5e4  b8b6  g1f3  a8a6  a3a5 
16 10 247 4880634  d3d5  d8d6  h3h5  h8h6  c2f5  c9f6  b1e4  b10d8  a3a5  g9f7  f3f4  a8a6  g1f3  b9c7  c3c5  a9c9 
17 6 409 8352941  d3d5  d8d6  h3h5  h8h6  c2f5  g9f7  b1e4  c9e7  a3a5  b10d8  g2f4  a8a6  b2c4  f7g5  e4d3  f8f6  f4e6  g5e6  f5e6 
# splits = 0 badsplits = 0 egbb_probes = 0
# nodes = 9241870 <75 qnodes> time = 4573ms nps = 2020964 eps = 0  nneps = 0
move d3d5
Bye Bye