Comments/Ratings for a Single Item
![Editor](/index/editor.gif)
Hi Aurelian,
Yes, you are correct. I never added Grande Acedrix because the Griffon move isn't directly supported. This would be tricky to implement in a general way. It's not just being able to generate the moves - that's not too bad. It gets more complicated with the IsSquareAttacked function used for detecting Check. IsSquareAttacked starts at the square and "backs up" in every direction the game uses until it hits a piece or leaves the board. If it hits a piece, it determines if that piece can move that far in that direction. To support moves with multiple parts, the logic in IsSquareAttacked would get pretty complicated. To see if a square is attacked by a Griffin, as it is backing up in Rook steps, for each step, it would then need to back up one diagonal step each way and check for a piece that can move like a Griffon. Then there is the problem of Static Exchange Evaluation (SEE). This gets even more complicated, but ChessV allows you to just turn off SEE for specific games. Some of the games already supported have to turn off SEE. It's not really necessary, it just makes then engine faster.
All that said, it is possible to implement the Griffon in ChessV if you are really dedicated, but it is probably more trouble than it is worth. You can override the GenerateSpecialMoves function of the Game class to add support for moves that the internal move generator can't handle. Most of the pieces from Ultima work this way. (Look at the implementation of Chess with Ultima Pieces for an example.) Then you also have to override the IsSquareAttacked virtual function as well.
You could also look at Postduif by Evert Glebbeek. It was designed to play Grande Acedrix. In its move generator, every move has a step/leap component followed by a slide component (either one of which can be zero to skip it.) It may have problems with some of the other pieces or rules for Apothecary though. I haven't looked at it in detail.
Cheers,
Greg
![Editor](/index/editor.gif)
In Fairy-Max I use the ultimate robust way for testing whether in check: just run the move generator for the opponent, and see if it captures King. But that is slow. A more general fast way for detecting attacks would be to not start from the board but from the piece list, and check for every piece whether is is alligned with the King for checking based on a lookup table indexed by the relative position to the King.
Thanks, Greg
I'll attempt to implement apothecary in chessV, hope to succeed.
Greg Strong wrote:
"...You can open one of the Chess presets, click Edit to modify it, and just erase all the code in the seven boxes at the bottom to stop it from enforcing any rules. Then, in the first box, change the name from Chess to Asymmetric Chess, enter your user id and password, and click Save. It will give you a link that you can then use to send out invitations to play..."
As an experiment I tried doing this procedure for making a preset with a simple chess variant of mine called "Throne Chess" instead (same rules as chess, except playing K to K8 is an extra victory condition, "Thronemate"). I had some success, but I saw nowhere that a little PBM green box icon symbol for a Throne Chess preset had been created, with myself credited as the author. There was created a default file for Throne Chess, stored under my user ID, in Game Courier's programmer's file log system. Throne Chess was not showing as having, say, 0 games played for it so far under "All Games" in the Game Courier Menu though. I edited the 'settings name' from default to be called Throne Chess, later, along with redirecting the default file version to it, too, but still no little PBM green box preset icon showing anywhere upon searching the website. I'm wondering if I have to do something rather complicated, or beyond me, instead of my doing what was recommended to Dmitry, to get a little PBM green box preset icon to come into existence (without having to play anyone a game online first).
![Editor](/index/editor.gif)
Hi Kevin,
Yes, there's another step to get the preset entered into the site index. First, make sure you are logged in. Then, from the pull-down menu with your name, select 'Post Your Own Game'. Don't fill out the form on the first page, instead click the Create Game Courier Preset link. Then fill out the forms. For the form on the second page, you'll need the hyperlink to the preset to put in the description. If you've lost the hyperlink, go to the play.chessvariants.com domain, and select 'Your Game Courier Settings Files' from the menu with your name.
Please be aware that the new submission won't show up in the index until approved by an editor.
Cheers,
Greg
![Editor](/index/editor.gif)
Good luck, Aurelian, that is ambitious. Let me know if you have any questions.
For detecting Griffon/Aanaca attacks in IsSquareAttacked, I would not back up from the target square. Instead, I would find all Griffons/Aanacas of the color, go through them one-by-one and step out from them to see if they reach the target square. If they don't attack the target square, you can hand off to the base class implementation of IsSquareAttacked to handle everything else.
Greg,
Well, there are two main reasons I'm doing this.
1. Implementing the correct promotion rule that fairy-max isn't able to do (i.e. promoting to a minor on 8th rank, also a rook at 9th rank and also a major piece (queen,griffin,aanca, archbishop,chancellor),at 10th rank)..
2. Adding the fool (imitator) that mimics the last move of the opponent.
Not sure how to do those now but I got hints for the second from the mimotaur implementation.
Technical question:
Where is the main and the .prj file? Both would help! I need the main to be able to test my creations.
Hello Greg,
I don't understand the board representation.
What does nsquare +1 mean? Does it advance ranks or files? How do I advance the other one? I am assuming nsquare+nfiles for the next rank or something like this.
Thanks for your help!
![Editor](/index/editor.gif)
The root folder of the source download should have the .sln Visual Studio solution file and associated project files (ChessV.vcproj). You will need Visual Studio 2015 - the Community Edition is free.
The squares are identified by number, and they iterate first by file then by rank. So adding 1 will go to the next file unless you are at the right edge of the board. To advance one rank, add the number of files.
![Editor](/index/editor.gif)
ChessV 2.0 Release Candidate 2
After many years, ChessV is back with a new version, completely rewritten from scratch!
![](http://www.chessv.org/chessv-game-thumbnails.png)
Version 2 has many improvements over previous versions, including:
- A vastly improved user interface with better graphics and more features
- In addition to providing an AI you can play against, ChessV 2 can also be used as a GUI to control other engines that support the XBoard protocol
- The program is now a .NET Framework application, allowing better cross-platform support. It can run on non-Windows operating systems, such as Linux, using Mono
- ChessV 2 is far more universal, allowing support for many more types of games. Here are some of the features with examples of games that are now supported:
- Games with multiple boards (example: Alice Chess)
- Games with multiple moves (examples: Marseillais Chess, Doublemove Chess)
- Games with multi-path pieces (examples: Falcon Chess, Grand Shatranj)
- Games with larger boards (examples: Gross Chess, Omega Chess)
- Games with unusual symmetry (example: Viking Chess)
- A scripting language, providing limited support for defining custom variants without needing to recompile ChessV itself. This feature is in early development and subject to change. For examples, look in the Include directory. The following games included with ChessV are implemented through the scripting language: Almost Chess, Butterfly Chess, Enep,Janus Kamil Chess, and Latrunculi duo milia et septum
The trade-off for all these improvements is that the internal engine is not as fast as original ChessV and the playing strength is somewhat weaker. For really deep analysis, use of the old version, for games that it supports, may still be preferable.
Please visit the ChessV website for the latest downloads
Is the Mastodon/Pasha implemented? It is a very suitable piece for big boards. /Mats
![Editor](/index/editor.gif)
Mastodon jumps one or two spaces orthogonally or diagonally? If so, that's easy, but I don't think I currently have anything using it. It could be easily added with the scripting language.
Hello Greg,
Are the griffin and aanca easier to implement in chessV2?
![Editor](/index/editor.gif)
@Mats:
Actually, it does have this piece. It's used in Grand Shatranj called the Jumping General.
@Aurelian,
Yes. I will be adding support into the internal move generator. It already supports chains of single steps/leaps, such as the Falcon. I want to add a compound move that is a single step/leap followed by a slide. That should handle Griffin, etc.
Thanks for including Butterfly Chess as an option, Greg.
Hello again Greg,
I have 2 questions:
1. How do I use the scripting language you mention?
2.I tried to install the program over what I have previously unzipped from what you gave me . It exited. What happened?
![Editor](/index/editor.gif)
1. If you create a new text file with a .cvc (ChessV Code) extension and throw it in the "Include" sub-directory, the game will be available. There's no documentation in this but you can look at the samples, and the ChessV Source Code Documentation will be somewhat helpful as the interpreter is just a thin layer that dynamically finds c# members and functions in the underlying objects and routes calls to them. It probably won't do what you're looking for, though. You can make new games by deriving from an existing game that is close. You can then change game variables and add/remove piece types, but you cannot implement new rules. You can make new piece types, but only so long as the moves are supported by the internal move generator (so no Griffin.)
2. Not sure. You're not giving me much to go on. The installation program doesn't do anything except extract the files and create an icon on the start menu. Try this: first, delete the Fairy-Max subdirectory of Engines/XBoard and try to run it. If that doesn't work, delete the entire ChessV2 folder and re-run the installation. Let me know how that goes.
Thanks,
Greg
ok, thanks greg, when you say no griffin it is actually no griffin , yet!
Well done Greg! It's interesting to play through different scenarios and even watch computer vs. computer for each variant. I imagine people with their own large board variants are thrilled to see their variants here, since unusual board sizes aren't easy to find in physical form.
ChessV was around a long time ago, but I am new to it. I haven't found many similar/reliable programs out there. I've seen a couple variant mobile apps, but they all crash very easily, and the interface on them is difficult to use. ChessV 2.0 has an easy and straightforward interface. If I had to make one suggestion, it would be the ability to move forward and backward through the moves within the program itself (unless I'm missing the method of using other GUIs to do this). Nevertheless, it is a lot of fun. Apologies to the CV administrators for rating this here, if I wasn't supposed to rate programs...
I noticed that ChessV plays two multi-move variants (Marseillais Chess and Doublemove Chess).
Does anyone have a good record of played games for either of these (either human play or computer play)? It seems the games are usually very short. I was wondering what the average length of play would be for games of these variants.
I've been thinking of trying a game of "Chess on an Infinite Plane" where double-moves are allowed, or maybe only double-moves of pawns, or pawn plus one other piece. A link to the game is here):
Chess on an Infinite PlaneIf anyone has info on analysis (computer or otherwise) for multi-move games I would love to learn about it!
![Editor](/index/editor.gif)
Unfortunately, I don't know of any such analysis, but it may exist. I think Marseillais has been widely played. Probably letting ChessV crank at it for an extended period is a reasonable place to start.
I have considered making a version of Cataclysm that has double-moves based on the restrictions of Extra Move Chess.
As an aside, ChessV doesn't do Extra Move Chess yet because of a couple of complications, the most notable being that the second move is optional and I have no user-interface for 'Pass' yet...
OK, thanks for answering. In a few weeks I might try ChessV.
I noticed the package includes Fairy-Max. Does ChessV and Fairy-Max share any code, or are they distinct programs?
Regards, :)
25 comments displayed
Permalink to the exact comments currently displayed.
Hello again Greg,
I contemplating writing code for my upcomming (still in testing phase) apothecary games, but I see the way movement is implemented, that there is no easy way of implementing the aanca and griffin.
The move info contains rank modification, file modification and maximum and minimum number of steps from what I understood. Nothing about a second legged move.
Am I correct? Do I miss something?