Tamerlane Chess
Moderators: hgm, Rebel, chrisw
-
- Posts: 27811
- Joined: Fri Mar 10, 2006 10:06 am
- Location: Amsterdam
- Full name: H G Muller
Re: Tamerlane Chess
OK, I will check it out. I like the done=2 and done=3 idea, so I will imlement that too.
-
- Posts: 27811
- Joined: Fri Mar 10, 2006 10:06 am
- Location: Amsterdam
- Full name: H G Muller
Re: Tamerlane Chess
I made some more SVGs, so that XBoard has 66 piece types now. I dropped the idea of a non-royal King symbols; after all, we already have a symbol for the Commoner (M). A Flag was still missing, though. The Giraffe was sacrificed in favor of a Duck/Goose, as I felt we had already too many mammals and too few birds. I also added a winged horse, replacing what used to be a duplicate of the Knight (for the Chu-Shogi 'White Knight' piece).
The pieceToChar order I will use is this
I don't expect the last 22 to be used much, outside of Chu Shogi. (Except King, of course, which is always maps to last position.) The Tower would be the recommended symbol for Dababba, so all base pieces come reasonably in front.
The pieceToChar order I will use is this
I don't expect the last 22 to be used much, outside of Chu Shogi. (Except King, of course, which is always maps to last position.) The Tower would be the recommended symbol for Dababba, so all base pieces come reasonably in front.
-
- Posts: 27811
- Joined: Fri Mar 10, 2006 10:06 am
- Location: Amsterdam
- Full name: H G Muller
Re: Tamerlane Chess
I am not happy about the Owl glyph, and who wants an Owl anyway, outside Wa Shogi? (Where you would also need a Monkey, a Bear, a Fox, a Rabbit...) So I will replace it by a tal hat. This might be useful for representing Diplomat / Spy pieces.
-
- Posts: 27811
- Joined: Fri Mar 10, 2006 10:06 am
- Location: Amsterdam
- Full name: H G Muller
Re: Tamerlane Chess
I pushed a patch now that should clear the list on done=0, update an already open dialog when done=1, redo an already open dialog when done=2, and force opening a new dialog if done=3.Evert wrote:Ok, I tried re-building the engine options dialog. I found the following:
- The engine does not receive a notification of changed values until the dialog box is closed with "Ok", so it cannot modify values in response to value changes.
- Sending "done=0/variants=.../done=1" updates the variant list for the engine (which I already knew).
- Sending "done=0/feature option/done=1" adds the option to the existing option list, so sending all options again duplicates the dialog.
I did not have anything to test it on.
-
- Posts: 388
- Joined: Sun Dec 21, 2008 6:57 pm
- Location: Washington, DC
Re: Tamerlane Chess
Congratulations on SjaakII, a truly remarkable program - flexible and efficient. Kindergarten bitboard move generation for boards with more than 64 squares is something I've planned to try for a while. It's good to see it in action.
I'm having an issue controlling SjaakII with the new ChessV though. For Capablanca-type variants SjaakII sends and expects O-O style castling description rather than the f1i1 style notation. I've updated the GUI to accept O-O but it still sends f1i1 which Sjaak doesn't accept as a legal move. The other Capablanca engines I've tried use f1i1. According to the XBoard protocol, O-O is used in Fischer Random (which makes sense since the King might move only one square and thus the other notation would be ambiguous) but doesn't mention it being used in other variants.
Also, is it possible for either SjaakII or Postduif to play Wildebeest Chess?
Thanks,
Greg
I'm having an issue controlling SjaakII with the new ChessV though. For Capablanca-type variants SjaakII sends and expects O-O style castling description rather than the f1i1 style notation. I've updated the GUI to accept O-O but it still sends f1i1 which Sjaak doesn't accept as a legal move. The other Capablanca engines I've tried use f1i1. According to the XBoard protocol, O-O is used in Fischer Random (which makes sense since the King might move only one square and thus the other notation would be ambiguous) but doesn't mention it being used in other variants.
Also, is it possible for either SjaakII or Postduif to play Wildebeest Chess?
Thanks,
Greg
-
- Posts: 2929
- Joined: Sat Jan 22, 2011 12:42 am
- Location: NL
Re: Tamerlane Chess
Thanks! It works pretty well, but you need to figure out how to generalise some things that are well-documented for 64 squares and 8x8 boards.Greg Strong wrote:Congratulations on SjaakII, a truly remarkable program - flexible and efficient. Kindergarten bitboard move generation for boards with more than 64 squares is something I've planned to try for a while. It's good to see it in action.
It sends O-O, but it should understand either notation. If it doesn't, that's a bug. There should also be an engine option to control that behaviour, do you expose those? If not, you should be able to set the option from XBoard and it will be remembered.I'm having an issue controlling SjaakII with the new ChessV though. For Capablanca-type variants SjaakII sends and expects O-O style castling description rather than the f1i1 style notation. I've updated the GUI to accept O-O but it still sends f1i1 which Sjaak doesn't accept as a legal move. The other Capablanca engines I've tried use f1i1.
It mentions SAN as a valid input format for moves though, so it should work outside FRC too. The reason I do this is because SjaakII doesn't know whether a variant is a shuffle variant, and this seemed the easiest way to keep it ignorant.According to the XBoard protocol, O-O is used in Fischer Random (which makes sense since the King might move only one square and thus the other notation would be ambiguous) but doesn't mention it being used in other variants.
No. SjaakII doesn't allow double pushes from the third rank in addition to triple or double pushes from the second rank (you can have only one special zone). Postduif doesn't do double pushes or castling.Also, is it possible for either SjaakII or Postduif to play Wildebeest Chess?
-
- Posts: 2929
- Joined: Sat Jan 22, 2011 12:42 am
- Location: NL
Re: Tamerlane Chess
It works for me:Evert wrote:It sends O-O, but it should understand either notation. If it doesn't, that's a bug.I'm having an issue controlling SjaakII with the new ChessV though. For Capablanca-type variants SjaakII sends and expects O-O style castling description rather than the f1i1 style notation. I've updated the GUI to accept O-O but it still sends f1i1 which Sjaak doesn't accept as a legal move. The other Capablanca engines I've tried use f1i1.
Code: Select all
#[Capablanca chess] 0w>setboard rnabqk3r/ppppp1pppp/6cn2/3b1p4/3B1P4/6CN2/PPPPP1PPPP/RNABQK3R w KQk - 6 5
8r n a b q k r
7p p p p p p p p p
6 c n
5 b p
4 B P
3 C N
2P P P P P P P P P
1R N A B Q K R *
a b c d e f g h i j
#[Capablanca chess] 0w (f)>longmoves
54 moves
1/ 54 Nb1-a3 Na3 b1a3 b1a3
2/ 54 Nb1-c3 Nc3 b1c3 b1c3
3/ 54 Nh3-g1 Ng1 h3g1 h3g1
4/ 54 Nh3-i1 Ni1 h3i1 h3i1
5/ 54 Nh3-f2 Nf2 h3f2 h3f2
6/ 54 Nh3-j4 Nj4 h3j4 h3j4
7/ 54 Nh3-g5 Ng5 h3g5 h3g5
8/ 54 Nh3-i5 Ni5 h3i5 h3i5
9/ 54 Bd4-g1 Bg1 d4g1 d4g1
10/ 54 Bd4-f2 Bf2 d4f2 d4f2
11/ 54 Bd4-c3 Bc3 d4c3 d4c3
12/ 54 Bd4-e3 Be3 d4e3 d4e3
13/ 54 Bd4-c5 Bc5 d4c5 d4c5
14/ 54 Bd4-e5 Be5 d4e5 d4e5
15/ 54 Bd4-b6 Bb6 d4b6 d4b6
16/ 54 Bd4-f6 Bf6 d4f6 d4f6
17/ 54 Bd4xg7 Bxg7 d4g7 d4g7
18/ 54 Bd4xa7 Bxa7 d4a7 d4a7
19/ 54 Rj1-g1 Rg1 j1g1 j1g1
20/ 54 Rj1-h1 Rh1 j1h1 j1h1
21/ 54 Rj1-i1 Ri1 j1i1 j1i1
22/ 54 Qe1-f2 Qf2 e1f2 e1f2
23/ 54 Ac1-b3 Ab3 c1b3 c1b3
24/ 54 Ac1-d3 Ad3 c1d3 c1d3
25/ 54 Cg3-h1 Ch1 g3h1 g3h1
26/ 54 Cg3-a3 Ca3 g3a3 g3a3
27/ 54 Cg3-b3 Cb3 g3b3 g3b3
28/ 54 Cg3-c3 Cc3 g3c3 g3c3
29/ 54 Cg3-d3 Cd3 g3d3 g3d3
30/ 54 Cg3-e3 Ce3 g3e3 g3e3
31/ 54 Cg3-f3 Cf3 g3f3 g3f3
32/ 54 Cg3-e4 Ce4 g3e4 g3e4
33/ 54 Cg3-g4 Cg4 g3g4 g3g4
34/ 54 Cg3-i4 Ci4 g3i4 g3i4
35/ 54 Cg3-g5 Cg5 g3g5 g3g5
36/ 54 Cg3-h5 Ch5 g3h5 g3h5
37/ 54 Cg3xf5 Cxf5 g3f5 g3f5
38/ 54 Cg3xg6 Cxg6 g3g6 g3g6
39/ 54 O-O O-O f1i1 f1j1
40/ 54 Kf1-g1 Kg1 f1g1 f1g1
41/ 54 Kf1-f2 Kf2 f1f2 f1f2
42/ 54 a2-a3 a3 a2a3 a2a3
43/ 54 b2-b3 b3 b2b3 b2b3
44/ 54 c2-c3 c3 c2c3 c2c3
45/ 54 d2-d3 d3 d2d3 d2d3
46/ 54 e2-e3 e3 e2e3 e2e3
47/ 54 i2-i3 i3 i2i3 i2i3
48/ 54 j2-j3 j3 j2j3 j2j3
49/ 54 a2-a4 a4 a2a4 a2a4
50/ 54 b2-b4 b4 b2b4 b2b4
51/ 54 c2-c4 c4 c2c4 c2c4
52/ 54 e2-e4 e4 e2e4 e2e4
53/ 54 i2-i4 i4 i2i4 i2i4
54/ 54 j2-j4 j4 j2j4 j2j4
8r n a b q k r
7p p p p p p p p p
6 c n
5 b p
4 B P
3 C N
2P P P P P P P P P
1R N A B Q K R *
a b c d e f g h i j
#[Capablanca chess] 0w (f)>
-
- Posts: 27811
- Joined: Fri Mar 10, 2006 10:06 am
- Location: Amsterdam
- Full name: H G Muller
Re: Tamerlane Chess
Note that Fairy-Max 5.0 plays a variant called 'almost-wildebeest', which is Wildebeest Chess without the castling where the King steps only one square towards the Rook. There is an ambiguity issue in the protocol there similar to what you can have in Chess960. But it is different from Fischer castling, because the King ends up elsewhere. So it is not sufficient to just identify the King and Rook (as you would do in KxR encoding).Greg Strong wrote:Also, is it possible for either SjaakII or Postduif to play Wildebeest Chess?
For the 'guarding' in Omega Chess, where the Queen has to castle with Rook, you have a similar problem always, as wherever the Queen would end during the castling, it would always be a legal move of the Queen. The solution I designed there is to write the guarding as a two-leg capture of your own Rook, like Qxa1-b1 (d1a1,a1b1 in protocol form). This does specify the final location of the Queen explicitly in the move notation, and taken at face value would already almost do what you want. Except that you have to re-grow a Rook at the other side of the Queen. So the convention that direct capture of an own piece implies Fischer castling (i.e. implied destinations) with that piece, while hit-and-run capture would imply castling to the indicated location, with a Rook next to it, seems to solve the problem. I am not sure if XBoard's current Betza move generator allows this for a King.
In Fairy-Max I also had some trouble implementing the 3rd-rank double push: Fairy-Max decides on initial moves based on piece virginity, not on absolute location. Which in general is what you want, and for Pawn initial moves amounts to the same anyway because of irreversibility. So I had to make a special kludge that goes against its normaloperation (where it recognizes a move that logically would indicate an initial 5-square push as special, and fakes virginity of the Pawn, as well as converting the move code to a double push, when on the 3rd rank. And initially I then had prolems that the opponent could capture the pushed Pawn on the from-square... So I also had to revise the code for e.p. capture, to encode the e.p. square in such a way that you could see if you could capture on two squares, or only on one. But eventually it worked.
-
- Posts: 27811
- Joined: Fri Mar 10, 2006 10:06 am
- Location: Amsterdam
- Full name: H G Muller
Re: Tamerlane Chess
The previous patch turned out to be buggy, because the routine to update the dialog controls only worked for dialogs that referred to internal XBoard variables, rather than those obtained from the engine, and was following pointers not set in the engine case. I fixed that now. (I added a button to Fairy-Max that would resend its options with or without a delay to test this.)
I am still a bit in doubt about the logic, though. I have made it such that done=2 specifies the list changed, so an already open dialog should be closed and popped up to remake it. While done=1 should just refresh the existing controls. But during startup done=1 is sent, and the situation in that case is really that the option list changed (as it is entirely new at that point). So perhaps it would be better to let done=2 mean that the GUI should not bother remaking the dialog, because the engine only resent the same list with different default settings. In any case done=3 always requests popping up a new dialog (possibly closing whatever transient dialog was up), making it possible for the engine to spontaneously request a settings change.
I am still a bit in doubt about the logic, though. I have made it such that done=2 specifies the list changed, so an already open dialog should be closed and popped up to remake it. While done=1 should just refresh the existing controls. But during startup done=1 is sent, and the situation in that case is really that the option list changed (as it is entirely new at that point). So perhaps it would be better to let done=2 mean that the GUI should not bother remaking the dialog, because the engine only resent the same list with different default settings. In any case done=3 always requests popping up a new dialog (possibly closing whatever transient dialog was up), making it possible for the engine to spontaneously request a settings change.
-
- Posts: 388
- Joined: Sun Dec 21, 2008 6:57 pm
- Location: Washington, DC
Re: Tamerlane Chess
Strange - it works sometimes and not others. If I do a game where I just focus on clearing out the space and castling quickly, it works. If I run an engine-engine match where castling happens later in the game, SjaakII rejects the move as illegal. I have the engine-debug log of such a game but it's 38 K so probably too large to post here. If you PM me your email address I can send it to you.