Check out Grant Acedrex, our featured variant for April, 2024.


[ Help | Earliest Comments | Latest Comments ]
[ List All Subjects of Discussion | Create New Subject of Discussion ]
[ List Earliest Comments Only For Pages | Games | Rated Pages | Rated Games | Subjects of Discussion ]

Comments/Ratings for a Single Item

EarliestEarlier Reverse Order LaterLatest
ChessVA computer program
. Program for playing numerous Chess variants against your PC.[All Comments] [Add Comment or Rating]
Robert Mate wrote on Sun, Jan 24, 2021 07:59 AM UTC in reply to Aurelian Florea from Tue Jan 5 03:04 PM:

I would like to script some small chess variants. I started by looking at the Los Alamos chess, but can't figure out how to enable castling or allow an initial double pawn move.


📝Greg Strong wrote on Sun, Jan 24, 2021 12:24 PM UTC in reply to Robert Mate from 07:59 AM:

If you're deriving from one of the board-size specific games then there are shortcuts to enable these easily. But the options vary depending on the board size, so for unusual sizes it is a little more work.

You can look at the include file for Duke of Rutlands Chess for an example but here are the relevant bits. For castling, conventional chess would be:

            AddCastlingRule();
            CastlingMove( 0, "e1", "g1", "h1", "f1", `K` );
            CastlingMove( 0, "e1", "c1", "a1", "d1", `Q` );
            CastlingMove( 1, "e8", "g8", "h8", "f8", `k` );
            CastlingMove( 1, "e8", "c8", "a8", "d8", `q` );

The arguments to CastlingMove are: player (0 or 1); the square the king starts on; the square the king ends on; the square the other piece starts on; the square the other piece ends on; and a single character specifying what letter should be placed in the FEN to represent the availability of this move.

For the two-space pawn move, in chess it would be:

    Pawn.AddMoveCapability( MoveCapability( <1, 0>, 2, 2, false, false ) ).Condition = { location: location.Rank == 1 };

The last bit, { location: location.Rank == 1 } is a lambda function taking a location and returning true or false specifying where on the board this new move should be available.  Ranks are counted starting at zero, so Rank == 1 means whenever on the second rank.  The arguments sent to the constructor of MoveCapability are: the direction of the move, <1, 0> means rank offset of 1 and file offset of zero; minimum number of steps; maximum number of steps; is capture allowed; and is capture required.  We did not set the minimum number of steps to 1 because the pawn already has a single-space move and we don't want to generate it twice.

Finally, if you want en passant, just set EnPassant = true in your SetGameVariables function.


📝Greg Strong wrote on Thu, Apr 8, 2021 08:28 PM UTC:

ChessV 2.3 Release Candidate 1

It's been over a year, so time for a new release! This is a pre-release of upcoming version 2.3. It should be fully functional but I am posting a Release Candidate first to give the community a chance to give it a test drive. Since it is not an official release, there is no installation program. Just unzip to a new directory and run ChessV.exe. The official release will contain an install program.

This release has lots of improvements:

  • Anti-aliased graphics for both alfaerie and abstract sets where available – some less common pieces will still result in the game reverting back to bitmaps.
  • Support for bent riders. Grant Acedrex, for example, is now supported.
  • Support for imitators. The Apothecary Chesses are now supported.
  • Continued improvement to the capabilities of the scripting language. New pieces can now be defined with XBetza in most cases. An XBetza expression tester is provided under the Tools menu.
  • Many more games have been added. We are up to 138 variants supported, with 44 of those defined via the scripting language.
  • Many bug fixes and improvements to playing strength

Download here:
/programs.dir/ChessV2.3 RC1.zip

Please let me know if you run into any issues. Enjoy!


Aurelian Florea wrote on Fri, Apr 9, 2021 09:09 AM UTC in reply to Greg Strong from Thu Apr 8 08:28 PM:

I see only apothecary chess Modern. Probably it is a superficial problem.

Later Edit: Sorry for that My bad!


Aurelian Florea wrote on Fri, Apr 9, 2021 10:41 AM UTC in reply to Greg Strong from Thu Apr 8 08:28 PM:

In apothecary chess classic the knight does not get it's extra moves (it is a NmZ).


📝Greg Strong wrote on Fri, Apr 9, 2021 04:44 PM UTC in reply to Aurelian Florea from 10:41 AM:

In apothecary chess classic the knight does not get it's extra moves (it is a NmZ)

Thanks for pointing this out.  It will be corrected in the official release.  In the meantime, you can play with an include file like the following:

Game 'Apothecary Chess Classic (fixed)' : 'Apothecary Chess Classic'
{
    AddPieceTypes
    {
        Knight.XBetza = "NmZ";
        Knight.MidgameValue = 425;
        Knight.EndgameValue = 425;
    }
}


Aurelian Florea wrote on Fri, Apr 9, 2021 05:45 PM UTC in reply to Greg Strong from 04:44 PM:

Ok, Thanks!


📝Greg Strong wrote on Sat, Apr 10, 2021 01:53 AM UTC:

Game Reference Documentation

ChessV is designed to allow easy creation of new games through the customization of existing games. Unfortunately, documentation has been sorely lacking. I have now posted reference pages for the predefined games:

ChessV Game Reference

These games are organized into a useful hierarchy with many extension points. Hopefully, browsing through these pages will provide some insight into the inner workings of ChessV. Please feel free to post any questions you might have!


Christine Bagley-Jones wrote on Sat, Apr 10, 2021 03:20 AM UTC in reply to Greg Strong from Thu Apr 8 08:28 PM:

I can't get that download link to work.

I mean the link to download ChessV 2.3 verison

Also, when i go to your ChessV.org site, on mainpage, I just see the 2.2 version.


📝Greg Strong wrote on Sat, Apr 10, 2021 02:41 PM UTC in reply to Christine Bagley-Jones from 03:20 AM:

Hi Christine,

Thanks for checking it out. I think the must be an error your end. It downloads ok for me, as does the Grand Shatranj Zillions link which you are also having trouble with. When you click on this link, what happens?

And, yes, 2.3 is not lised on the ChessV page because this is a pre-release. I'm just hoping to get a few members of the community to give it a test drive before I build the install package (which is a pain in the butt.)


Carlos Cetina wrote on Sun, Apr 11, 2021 06:01 PM UTC:

Hi Greg,

I can't download ChessV2.3 RC1.zip. The link does not work. Chrome seems to block it. I wonder if it has nothing to do with the fact that this browser wants URLs to be safe and I see that the protocol you use is http and not htpps.


📝Greg Strong wrote on Mon, Apr 12, 2021 12:36 AM UTC in reply to Carlos Cetina from Sun Apr 11 06:01 PM:

Thanks, Carlos. That is helpful.

It seems you are correct. Chrome will not download a file that is not secure if the link is on a page that is secure. So it was possible to download a link from chessv.org, since that site is not https, but linking it from here does not work because this page is https. Funny, even Chromium would download it, while Chrome would not.

Anyway, I have posted it here for the time being:

/programs.dir/ChessV2.3RC1.zip

Carlos Cetina wrote on Wed, Apr 14, 2021 02:31 PM UTC:

Okay, Greg, you are welcome. The new link does work. I see that you have added 12 variants including 2 invented by Vitya Makov: Chess 9x9 and Cardinal Chess. Those interested in seeing how ChessV handles these 2 variants take a look at the following YouTube links:

Chess 9x9

Cardinal Chess

Congratulations and thank you for such a commendable work you do!


Aurelian Florea wrote on Thu, Apr 15, 2021 12:05 PM UTC:

Greg, What is chess with jokers supposed to be? To me it looks like regular chess!


Aurelian Florea wrote on Thu, Apr 15, 2021 12:12 PM UTC:

Duplex chess is a clerver game!


📝Greg Strong wrote on Thu, Apr 15, 2021 01:24 PM UTC:

In Chess with Jokers, the queen piece is a joker. I used this for developing and testing the joker piece. It seems I never updated the graphic used. I'll fix that now.

Thanks, Duplex Chess is a very good game that I need to get posted. It is my attempt to make a double-move variant that isn't too overwhelming. No piece moves farther than two spaces. A few notes: the same piece cannot be moved on both moves - except for the king. He can make two moves, including two captures, making him the most dangerous piece. But, if you lose him, the game is over. Also, there are three ways to win: capture your opponent's king, capture all your opponent's pawns, or move your king to the last rank.


Aurelian Florea wrote on Thu, Apr 15, 2021 01:59 PM UTC in reply to Greg Strong from 01:24 PM:

Impressive work, Greg!

I really appreciate implementing my 2 games: Apothecary chess classic and Apothecary chess modern as they were quite a challenge. I can hardly wait for the source code once you post everything from the official release.


Aurelian Florea wrote on Thu, Apr 22, 2021 05:05 PM UTC in reply to Greg Strong from Thu Apr 15 01:24 PM:

I just wanted to ask, because it would be very difficult, if this version implements all the endgame conditions for apothecary. I doubt it because the AI is hard to reprogram for this. Have you given them any thoughts though?


Aurelian Florea wrote on Fri, Apr 23, 2021 08:32 AM UTC in reply to Aurelian Florea from Thu Apr 22 05:05 PM:

I really like the piece description that appears when right clicking a piece.


📝Greg Strong wrote on Fri, Apr 23, 2021 04:01 PM UTC in reply to Aurelian Florea from 08:32 AM:

I just wanted to ask, because it would be very difficult, if this version implements all the endgame conditions for apothecary. I doubt it because the AI is hard to reprogram for this. Have you given them any thoughts though?

If you mean the way a game can have additional outcomes, such as 3/4 - 1/4, that is not something that I know how to do.  And, even if there is a way, I would not alter the core AI to do it.

I really like the piece description that appears when right clicking a piece.

Thank you.  I'm rather proud of this.  ChessV definitely makes the most sophisticated movement diagrams that I have seen, offering good support for showing multi-path moves and bent rider moves.


Christine Bagley-Jones wrote on Mon, Apr 26, 2021 04:02 AM UTC in reply to Greg Strong from Sat Apr 10 02:41 PM:

Yes, I clicked on that link and it downloaded ChessV2.3RC1.zip.

Sorry, been away for a bit.


B.E. Dolata wrote on Fri, Apr 30, 2021 01:14 PM UTC:

Hi Greg, Thanks for the updated version. I received an exception while playing Tripunch chess

ChessV.Exceptions.ChessVException: An item with the same key has already been added. ---> System.ArgumentException: An item with the same key has already been added.
   at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
   at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
   at ChessV.Game.SearchRoot(Int32 alpha, Int32 beta, Int32 depth, List`1 movesToExclude)
   at ChessV.Game.Think(TimeControl timeControl, Int32 multiPV)
   --- End of inner exception stack trace ---
   at ChessV.Game.Think(TimeControl timeControl, Int32 multiPV)
   at ChessV.InternalEngine.startThinking()
   at ChessV.Match.OnMoveMade(Player sender, List`1 moves)
   at ChessV.MoveMadeEventHandler.Invoke(Player sender, List`1 moves)
   at ChessV.Player.emitMove(List`1 moves)
   at ChessV.GUI.BoardControl.tryMoveToLocation(Location location)
   at ChessV.GUI.BoardControl.BoardControl_MouseUp(Object sender, MouseEventArgs e)
   at System.Windows.Forms.Control.OnMouseUp(MouseEventArgs e)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.UserControl.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

The final board state was

r1h1kh1r/ppp1pppp/3p4/8/4n1c1/3PPN2/PPP1K1PP/RNH5 b ha - 2 10

I had just moved my Nightrider from g1 to f3.


📝Greg Strong wrote on Fri, Apr 30, 2021 04:58 PM UTC in reply to B.E. Dolata from 01:14 PM:

Thank you for the detailed bug report. This should be what I need to reproduce. I'm travelling at the moment, but will take a look this weekend. Thanks!


Aurelian Florea wrote on Thu, May 6, 2021 09:10 AM UTC in reply to Greg Strong from Fri Apr 30 04:58 PM:

Hello Greg, Any hope for the latest ChessV version this weekend? I hope to share it with my friends.


📝Greg Strong wrote on Thu, May 6, 2021 11:23 PM UTC in reply to B.E. Dolata from Fri Apr 30 01:14 PM:

Hi Greg, Thanks for the updated version. I received an exception while playing Tripunch chess

Thanks again for finding this.  I've found the issue.  The next version will resolve this problem in Tripunch and be more resistant to this issue in general.  But, in the meantime, you can fix this by going into the ChessV include directory and editing the Tripunch Chess.cvc file in a text editor. Inside the SetGameVariables function, add the following line:

DeduplicateMoves = true;

Then restart ChessV and you should be good.


25 comments displayed

EarliestEarlier Reverse Order LaterLatest

Permalink to the exact comments currently displayed.