Comments/Ratings for a Single Item
![Editor](/index/editor.gif)
Are we looking at the same thing? The Wizard has midgame, endgame values of (460, 460) and the Griffin has values of (800, 900) so not very close.
I had only seen some weird exchanges in a game. I definitely could be wrong. I'll try to reproduce it. By the way I don't think that I can check the piece values to either apothecary chess game without the source code.
![Editor](/index/editor.gif)
I don't think that I can check the piece values to either apothecary chess game without the source code.
Sure you can. Right-click on a piece and select "properties". You recently commented that you liked the information it showed you there...
Oh, I had forgotten. I am sorry!
I could not reproduce the situation. It was probably a tactical move I have not seen deep enough.
I'm trying to describe Expanded Chess for ChessV but I'm having trouble with the Osprey. I used this:
AddPieceType( "Osprey", "O", 500, 500, "Bird");
Osprey.XBetza = "DmpafyafsW;
but apparently everything before the y in the xbetza description is ignored, so it's interpreted as equivalent to DyafsW. Is that intended, and is there another way to describe that piece for ChessV?
![Editor](/index/editor.gif)
If you use the 'y' operator, it can only handle one step before (you can't have an 'a' before the 'y'.) It only interprets that which the internal move generator can handle. In this case, the internal move generator could handle it because the 'mp' really just joins the two steps into a single leap, but it's not smart enough to figure that out.
But, yes, this piece can be done, just not with XBetza. Actually, I've already written the include file for Expanded Chess, which will be included in the next release. I will email it to you now. But for reference, here's how you do the Osprey:
AddPieceType( "Osprey", "O", 750, 750, "Bird" );
Osprey.Step( <2, 0> ).SlideAfterStep( <1, 1> );
Osprey.Step( <2, 0> ).SlideAfterStep( <1, -1> ).MinSteps = 2;
Osprey.Step( <-2, 0> ).SlideAfterStep( <-1, 1> );
Osprey.Step( <-2, 0> ).SlideAfterStep( <-1, -1> ).MinSteps = 2;
Osprey.Step( <0, 2> ).SlideAfterStep( <1, 1> );
Osprey.Step( <0, 2> ).SlideAfterStep( <-1, 1> ).MinSteps = 2;
Osprey.Step( <0, -2> ).SlideAfterStep( <1, -1> );
Osprey.Step( <0, -2> ).SlideAfterStep( <-1, -1> ).MinSteps = 2;
In case you're wondering about the MinSteps = 2 on every other move path, that is to prevent the moves for the (0, 2) leaps from being generated twice.
Silverman and Microchess cvc files. Microchess is playable between humans, but crashes the ChessV engine. Not sure why.
https://www.dropbox.com/sh/8t14o11x6lq5294/AACVwG8aPAtAswr-LUd0EqZDa?dl=0
EDIT: I'm slowly adding small chess variants here.
I just noticed a bug. If all I do is start a game, make one move, and then take back the move while the computer is thinking.. it crashes. This happens in 2.2 and the new update.
![Editor](/index/editor.gif)
Microchess is playable between humans, but crashes the ChessV engine. Not sure why.
This is interesting. It is happening because the number of pieces is so small. Quick fix - the problem is with the default (sudden death) time control. Use a different time control and you should be fine.
More detailed explaination ... At the start of each move, the computer decides how much time it would like to commit to the current move. You could use some fixed percentage of the remaining time always, and you will use less and less for each concurrent move without running out. But that isn't very good. It would be better if we had some idea of how many moves the game likely to go on before being "decided" (doesn't need to be actually over if you are so far ahead you can continue to win without requiring much thought.) This is already an interesting problem in Chess. It's an even more difficult problem for a variant engine such as ChessV... I make the basic assumption that games with more pieces are likely to last longer...
So, here's my current formula. Using four variables: Number of player 1's pieces at the start of the game (P1s), number of player 2's pieces at the start of the game (P2s), number of player 1's peices still remaining (P1r), and number of player 2's pieces still remaining (P2r). With sudden death time control, the targettime allocated for a move is:
timeRemaining / min( P1s + P2s - 10, P1r + P2r + 6 )
This crashes Microchess since it starts with 10 pieces so it tries to allocate 0% and divides by zero. Obviously this formula was designed for larger games. And, in general, ChessV was designed to play the common variants which are typically 8x8 or larger. I'm sure lots of things are not optimized for tiny variants. The obvious fix here is to always allocate at least a minimum amount (maybe 1%). Probably, you would never want to allocate less than 1% of remaining time... But how many moves does an average game of Microchess last? Maybe for some games the assumption that length of game is related to number of pieces is not valid. Perhaps the lower bound should be a configurable game variable with a default of 1%.
I just noticed a bug. If all I do is start a game, make one move, and then take back the move while the computer is thinking.. it crashes. This happens in 2.2 and the new update.
Yup. Thank you for the easily reproducable bug report. I will fix this.
Is there a typo in the Duke of Rutlands Chess include file in RC2?
Should
be
The CPU seemed willing to trade the Concubine for a Bishop when I played.
![Editor](/index/editor.gif)
Correct. Thank you. Good catch!
The Rhino in Grand Betza Chess appears to display the incorrect moves when one right clicks to get to properties. It shows the moves of a Wazir for me.
![Editor](/index/editor.gif)
The Rhino in Grand Betza Chess appears to display the incorrect moves when one right clicks to get to properties. It shows the moves of a Wazir for me.
That's right. The Rhino's move is not supported by the internal move generator. It is implemented with custom code so the diagram display can't show it. I need to add an override that suppresses the diagram and instead displays a description of the move.
Pocket Knight Crash: For the first move, pick up the pocket knight and then put in back in the same place.
![Editor](/index/editor.gif)
Pocket Knight Crash: For the first move, pick up the pocket knight and then put in back in the same place.
Good catch! I fixed it. Thanks!
For the future, have you considered implementing NNUE? https://en.wikipedia.org/wiki/Efficiently_updatable_neural_network
It would be a solution for piece drop games, and you'd be the only one doing this with large variants in mind.
Not sure if it's a bug, but for example, fairy-max should be able to play Los Alamos but can't. I've seen keywords "losalamos" and "los-alamos". Perhaps better access to the keywords?
Hello Greg, I have written you a few mails a while ago. I'm not sure if you got them or if you had answered. Please say something about this.
I'm trying to test a game with ChessV, and I get an error saying "Not enough Zobrist keys" when I try to start it. What does it mean?
![Editor](/index/editor.gif)
I'm trying to test a game with ChessV, and I get an error saying "Not enough Zobrist keys" when I try to start it. What does it mean?
You must be using a very large number of piece types on a large board. There is an upper limit on #Players * #Piece Types * #Squares, although it can be increased if I add more random numbers to the list of keys. How large is what you are trying to do?
I am, unfortunately. I have 144 squares and 21 piece types. What is the limit?
![Editor](/index/editor.gif)
It looks like this should not be over the limit. Can you send me the include file so I can give it a try?
25 comments displayed
Permalink to the exact comments currently displayed.
That is probably nitpicking but the wizard and griffin in apothecary chess modern seem to be evaluated in close value. The are most definitely not. I have some evaluations made earlier in the development of the 2 games. Would them be useful. I can send a full list of piece values.