Sjaak 342 - new variants

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Rebel, chrisw

User avatar
Evert
Posts: 2929
Joined: Sat Jan 22, 2011 12:42 am
Location: NL

Sjaak 342 - new variants

Post by Evert »

I've upload yet a new version of my program Sjaak, see http://www.eglebbk.dds.nl/program/chess-download.html

Sjaak is a general chess-like engine which plays a number of variants in addition to normal chess. The list of variants supported by this release includes:
  • Normal chess
  • Spartan chess, where black and white play with different armies and black has two kings.
  • The Maharaja and the Sepoys*, where white has only one piece (the Maharaja).
  • Amazon chess*, where the queen moves as an amazon.
  • Knightmate, where the king moves as a knight and the knights move as a king.
  • Shatranj, a historic precursor of modern chess.
  • Capablanca Chess, a variant played on a 10x8 board with two extra pieces.
  • Gothic Chess, the same as Capablanca Chess but with a different starting position.
  • Makruk, the Thai version of Chess.
  • Courier chess, a medieval variant played on a 12x8 board.
  • Chinese chess (Xiangqi), Black and white face eachother across the river that runs along the board, with their kings confined to their palaces.
*) these need to be played as variant "fairy" under XBoard: select the variant you want in the engine options dialog, then start a new fairy game.
Xiangqi support is new and hasn't been extensively tested, but seems to work correctly from looking at a number of trial games. The evaluation is probably completely off, so the program will probably play quite badly.

There's one other new feature in this version, which is support for running a match at fixed node-count. To make this work in XBoard, specify the desired NPS and set a fixed search depth of 1. The more general method of specifying pseudo-seconds for the time control does not work and any attempt to select a particular NPS at some other time control will likely not work as intended (it will pop up a warning).

The code has been cleaned up and optimised in many places and some new evaluation terms have been added. In terms of strength, this version should do much better than the previous release in nearly all variants. I'm seeing a small regression in Spartan Chess in my local tests, which I'm hoping to address in the near future, but there's enough new stuff that a new release seems justified. I'm hoping to improve it a bit more for the upcoming 10x8 tournament.

One final note: the pre-compiled downloads contain 32 and 64 bit binaries for Windows and Linux and a universal 32/64 bit binary for OS X. The Windows and Linux downloads further have an SSE4 and an SSE3 version for older hardware. Please let me know if there are issues with these.
User avatar
Evert
Posts: 2929
Joined: Sat Jan 22, 2011 12:42 am
Location: NL

Re: Sjaak 342 - new variants

Post by Evert »

I have now updated Sjaak to revisoon 352, as always http://www.eglebbk.dds.nl/program/chess-download.html .
This release mainly addresses issues with some of the 32 bit compiles in the previous release, but it also adds a new variant: Berolina chess (where pawns move diagonally but capture straight) was added.

Other than that, if the previous version was working fine there's no real reason to upgrade (352 should be a bit stronger than 342, but not a lot). As always, please let me know if there are problems.
User avatar
Evert
Posts: 2929
Joined: Sat Jan 22, 2011 12:42 am
Location: NL

Re: Sjaak 342 - new variants

Post by Evert »

Another update, r359, http://www.eglebbk.dds.nl/program/chess-download.html .
This fixes issues with large variants on some platforms. There are no other functional differences. If you do not experience problems with the previous release, there is no reason to update.
User avatar
Evert
Posts: 2929
Joined: Sat Jan 22, 2011 12:42 am
Location: NL

Re: Sjaak 342 - new variants

Post by Evert »

I seem to be stuck on a daily release cycle.
Anyway, my previous upload of revision 359 accidentally included debug builds for some platforms, this has now been corrected. Simply download the file again to get proper compiles.

However, I've also added my current development snapshot (r. 367). The only real difference is that it allows you to specify an input file in which you can specify your own variant. Simply call the engine with

Code: Select all

xsjaak variants.txt
rather than

Code: Select all

xsjaak
should do the trick. The variants.txt that comes with Sjaak is commented and should be enough to get started. Bear in mind that this is still very much work-in-progress.
You can get it from the usual location, http://www.eglebbk.dds.nl/program/chess-download.html
User avatar
Evert
Posts: 2929
Joined: Sat Jan 22, 2011 12:42 am
Location: NL

Sjaak 399 - new variants

Post by Evert »

I've now uploaded Sjaak 399 at http://www.eglebbk.dds.nl/program/chess-download.html .

This version should be a bit stronger than previous versions, across all variants if my testing is correct (but of course not equal in all of them). Specific points:
  • Fixed an issue with incorrect handling of repetitions in XiangQi while in check.
  • Fixed several bugs with piece evaluation terms in XiangQi. However, Sjaak still doesn't handle the specific situation of XiangQi particularly well.
  • Adopted "native" names for pieces in Makruk and Janus rather than generic names (so, for instance, Markuk now uses "Met" rather than "Ferz" and Janus uses "Janus" rather than "Archbishop"). This improves compatibility with XBoard/WinBoard, however there is still a disagreement for Shatranj (Sjaak uses Ferz, XBoard uses Queen).
  • Better implementation of king baring rule (for Shatranj)
  • Better passed pawn evaluation in variants with weak promotion choices.
  • Improved evaluation of threatened pieces.
But most importantly, this version adds a number of new variants:
  • Grand chess (10x10)
  • Fischer Random and Capablanca Random
  • Pocket Knight (needs to be played as "seirawan")
  • and several "alien" variants defined in a configuration file
The configuration file is a plain text file and (hopefully) well commented. It can be specified on the command line as in the previous version, but it can now also be selected from the engine option dialog box. After selecting the file, you will probably need to close and re-open the options dialog for the variants to be selectable from the drop-down menu.

As always, I'm interested to hear about any issues encountered with this version, as well as recommendations/suggestions for new variants that can be added.
I also have a request: it would be very useful for me to know how strong Sjaak is compared to other engines, for normal chess at least. Would it be possible to have it tested, despite my normal engine Jazz already being tested (even if it isn't tested very much)?
Adam Hair
Posts: 3226
Joined: Wed May 06, 2009 10:31 pm
Location: Fuquay-Varina, North Carolina

Re: Sjaak 399 - new variants

Post by Adam Hair »

I will test it for the CCRL 40/4 list, Evert. And perhaps I can get it tested for the FRC list also.
User avatar
Evert
Posts: 2929
Joined: Sat Jan 22, 2011 12:42 am
Location: NL

Re: Sjaak 399 - new variants

Post by Evert »

Adam Hair wrote:I will test it for the CCRL 40/4 list, Evert. And perhaps I can get it tested for the FRC list also.
Thanks! :D
It's probably very weak at FRC compared to other engines that just do regular chess+FRC.
Adam Hair
Posts: 3226
Joined: Wed May 06, 2009 10:31 pm
Location: Fuquay-Varina, North Carolina

Re: Sjaak 399 - new variants

Post by Adam Hair »

Evert wrote:
Adam Hair wrote:I will test it for the CCRL 40/4 list, Evert. And perhaps I can get it tested for the FRC list also.
Thanks! :D
It's probably very weak at FRC compared to other engines that just do regular chess+FRC.
You are welcome! :D
User avatar
Denis P. Mendoza
Posts: 415
Joined: Fri Dec 15, 2006 9:46 pm
Location: Philippines

Re: Sjaak 399 - new variants

Post by Denis P. Mendoza »

But most importantly, this version adds a number of new variants:


Grand chess (10x10)
Fischer Random and Capablanca Random
Pocket Knight (needs to be played as "seirawan")
and several "alien" variants defined in a configuration file


The configuration file is a plain text file and (hopefully) well commented. It can be specified on the command line as in the previous version, but it can now also be selected from the engine option dialog box. After selecting the file, you will probably need to close and re-open the options dialog for the variants to be selectable from the drop-down menu.
Could you help us add the configuration scripts (in variants.txt) to use "fischerandom" as you noted or add an option, as there's none in your "fairy" options except the ones in the dropdown-menu - see pic. The configuration display in Arena looks strange but could be coming from the GUI.
Image
I think the default in the dropdown list is related to this:

Code: Select all

static const char *fairy_games[] = {
   "Normal (8x8)",
   "Amazon (8x8)",
   "Grand (10x10)",
   "Indian Grand (10x10)",
   "Maharaja (8x8)",
   "Pocket Knight (8x8+1)",
   NULL
};
FRC by dropdown options is much appreciated. Thanks.
User avatar
Evert
Posts: 2929
Joined: Sat Jan 22, 2011 12:42 am
Location: NL

Re: Sjaak 399 - new variants

Post by Evert »

You can select FRC as a variant from the new variant menu. Alternatively, you can just start a ga,e from a random position, Sjaak internally does nothing special when you start an FRC game.
Or do I misunderstand something?
(NOTE: Sjaak will not generate an FRC position anyway, it relies on the GUI to give it one).

The options menu gets messed up when you reload the startup file, as fas as I can tell that's a GUI bug...