Comments by catugo
Oh,
also in the KJvK endgame the AI does not know how to mate. It manages the heard the king to the corner, but then it does not give the final blow.
I was trying to setup KWWvsK endgame (W stands for wizard), but the ai makes knight moves for some reason.
Hello Greg, More questions from me I'm afraid. How do I tell the AI that a piece is minor or major? I noticed the ai knows that KBvK is a draw, probably also KNvK too. I do not know about KNNvsK. I am interested in KMvK,vwhere M stands for mamluk(CW).
The rest I'm leaving them as they are no enpassant. Thanks for your help!
No, for historical purpose I think they should remain the same.
Don't worry about that. I just wanted to know how it works, because of the reasons I have stated earlier. I'll allow the double move from the proper rank.
Hi Greg,
In the five games I have published the joker imitating a pawn gains only it's regular move power, no double step, no en passant, no promotions. In the games that I am testing now with ChessV the double step is allowed to the joker if on the proper rank. The double step move is implemented as a move of a pawn on the second rank and, not as a first mover property. I'm prepared to change the rule here so that double step is allowed. It is not very important, and anyway it works this way and I have sample games like that. What are your thoughts on the matter so far?
Next, do you foresee any related problems? What scares me is to publish the game with a set of rules and then someone finds an exception or to implement my own program a slightly different game because of that.
I thought it would help if you can provide the code of the joker. But it is not only that it is also how the joker connects with other classes in your design. This is why I ask the broader question.
Guys, I think that both sides of the argument have merit. But it is important to have one standard. Anyway I know how to implement the NmAY in chessV so that is the most important thing. I also don't think that very long leaps will often be used, but the antelope and the giraffe should appear often enough on 12x12-16x16 boards.
I think the X and Y in XBetza are not implemented. For NmAY I actuially get an NmA.
Just for the record. I have watched twenty engine vs engine games, and there were no crashes, there were no bugs and the games were fun to watch. You deserve all the praise!
Thanks! This is so useful!
And by the way Greg, I have decided to remove the rule that there shouldn't be more than one joker for a player on the board. It happened once, and in the endgame, when this happens it was not as game breaking as I thought!
Does the joker evaluation include all pieces or all piece types? How are pawn taken into account?
Thank you very much!
I still don't understand why adding antelope or giraffe powers work but zebra or camel do not. Is that because of the Vulture?
Hello Greg!
I have encountered a very weird bug. It happens when I try to add a piece that has camel or zebra moves to a new fairy piece. Curiously is that when deleting the AddPiece from the Siege elephant or Mamluk the problem goes away and everything is going according to plan. Also adding Giraffe or antelope works fine all the time. The error message is index out of bounds. Any Idea?
Hello Greg,
I had 2 questions earlier this month:
1.How does the colourbound pieces bonus/penalty work when more pairs of colourbound pieces are involved?
2.Does the endgame value of a piece influence opening exchanges, or is it just the middlegame value?
You probably missed them.
I have seen that you have programmed beautiful sun chess. Why not Xiangqi also?
Hello Greg,
I have 2 questions:
- How does the colourbound pieces bonus/penalty work when more pairs of colourbound pieces are involved?
- Does the endgame value of a piece influence opening exchanges, or is it just the middlegame value?
Thanks, Greg!
Hello Greg,
How can I add evaluations for the maasai pawn pushes?
Ok, Thanks
@Greg,
I'd like to make chessV play custom variants against another chessV copy where the small parameter would yield different results. May you write a small guide on how to do that?
Ok! Thanks for everything!
@Greg, Please notice my previous comment!
Hello Greg! Have you had time to include the features I asked about a few weeks ago?
In the rules it says that the dromedary moves are induced only in no pawn pieces. Also why did you added a H power to the dromedary?
Thanks, HG!
So it seems stockfish cannot do bent riders!
Thanks, Daphne! Have you any idea about what fairy pieces it recognizes?
I have seen below a discussion involving stockfish and chess variants. I did not knew that there is a connection. Can someone explain me please what variants, stockfish can play!
Ok, thanks!
Thanks!
@Greg,
And another thing I discovered about the value of the joker. It matters also how many pieces the opponent has. Imagine on a 10x10 board (where I had measured that the chancellor and gryphon are equal, and also it is known that the RN and the BWN are also equal) and endgame with king, joker, gryphon, chancellor and the BNW against king, joker and 3 chancellors. The side with the more diverse pieces has an advantage. There is a lot of consideration to be put into this I'm afraid. Good luck!
@HG,
So, GX and HY is the same thing, or one takes precedence?
Thanks, Greg!
@ Greg,
- Is there a possibility to have a time handicap against the computer?
- Is there a possibility of defining a color scheme with the script editor?
I have downloaded the latest build and, in the game anonymous, there is an inaccuracy in the definition of the butterfly.
The correct definition should be that:
AddPieceType( "Butterfly", "H", 800, 800, "Butterfly" );
Butterfly.Step( <2, 2> ).SlideAfterStep( <1, 0> );
Butterfly.Step( <2, 2> ).SlideAfterStep( <0, 1> ).MinSteps = 2;
Butterfly.Step( <-2, 2> ).SlideAfterStep( <-1, 0> );
Butterfly.Step( <-2, 2> ).SlideAfterStep( <0, 1> ).MinSteps = 2;
Butterfly.Step( <2, -2> ).SlideAfterStep( <1, 0> );
Butterfly.Step( <2, -2> ).SlideAfterStep( <0, -1> ).MinSteps = 2;
Butterfly.Step( <-2, -2> ).SlideAfterStep( <-1, 0> );
Butterfly.Step( <-2, -2> ).SlideAfterStep( <0, -1> ).MinSteps = 2;
How do I delete a color scheme?
I think I figured out why the pawns move so quickly in the opening. It is the promotion rule. Now one can promote even at rank 7 (out of 10). So pawn pushes are more tempting. I do not know if it is the correct strategy. I'll play the opening myself, to see what is going on!
It seems to me HG, that you are make diagrams alphabetically!
With the:
King.PSTMidgameForwardness = 0;
instruction applied I have watched 4 games at 2 mins + 7 seconds. Only once in 8 cases the ai has not castled choosing a back rank diagonal move (so there is something about it.). Once there was the opposite sides castle going on. I am not sure exactly how to do it but the above-mentioned instruction definitely makes things more castlely.
Thanks for taking the joker evaluation into account in your own time!
Yes, at the end of the tournament list may you place something like: playerfoo:51 playerbar:49
And a final thing which is rather hard. But if you can please add the customizable value for the joker. HG has proposed the ratio of the sum of squares of the piece value with the piece values. I think some coefficients are good to be in place. Something like (a1p1^2+a2p2^2+...+anpn^2)/(b1p1+b2p2+...+bnpn). where n is the number of piece types and a1,...,an and b1,...,bn are float coefficients. One utility of the coefficients is when imitating a colourbound piece as the joker is not actually colourbound. I know this takes time, so if you can... Good luck Greg!
I'm not sure if I have the current build. But I'd like the following features for batch mode. 1.Add an adjudication coefficient with a default of say 10 pawns. 2.In the save file add the end add the total score.
@Greg&@HG, Now there is the trouble that the ai moves the pawns ahead of the possible location of the castling king, or ahead of the castled king, again quite arbitrary. There is only one heavy piece besides the queen in the games I mention (between the value of the rook and of the queen) so deadly back rank incursion from the enemy don't seem the desirable. But there are 26 pieces /side, and some pawns need to move to bring some air into the position. So maybe some penalty from leaving pawns on one side OR the other side is welcome. This as it is needed to move some flank pawns in order to develope quickly. I agree with HG, KingSlayer approach. Maybe you can customize all of that, Greg.
There is one more issue. With a 10 files board one needs to get out three pieces before castling. In the games I had mentioned there are the bishops by the queen and king and 2 leapers. Then there are the rooks. On the other side there is also the queen. The fact that you have to take out 3 pieces hinders castling a bit. I was thinking about a "Bishop jumping rule during castling". This means the castling king may jump the bishop when castling but not to other pieces. Would this be a good idea. What do you guys think?
So, the games I'm creating are 10x10 and the castling type is 2R-standard (it is correctly assigned this is not the problem). The ai is quick to move to the back rank most of the time for no reason before castling, and sometimes (rarely) after castling seemingly for no reason. In the latter case I can be totally wrong though. Anyway, how do I disable this tendency of the general 10x10 ai? Would you recommend I inherit from a more general class or general 10x10 is fine?
I meant if a Massai soldier move resets the counter?
Thanks, Greg!
@Jean-Louis,
What are your thoughts on the interaction of the 50 moves rule with the maasai pawns in this game?
@Greg,
Hello,
Can chessV2 update the counter in the 50 moves rule also when the maasai pawns are moved. What about only when maasai pawns are moved forward? The later rule seems more sensitive to me, for my game.
I'm trying to accept a metamachy challenge but I am getting the following error:
"Your userid is catugo. This log is private. It may be viewed only by the players. If you are one of the players, please sign in first. You may use the menu for this."
It means that the diagram designer should receive a lot of customization to achieve an avatar chess diagram. On the other hand, HG is very good he could conjure a badzone function that does it. Anyway, the classic of this genre is still smess, if anyone asks me!
@Greg, I do not think he can, in a timely manner. Avatar chess is totally different than the usual bunch!
But also from some point ahead, I prefer the correct rules. Anyway, for the purpose of measuring the piece values , I do not use the joker as it introduces many instabilities. By the way, in the few games I,be noticed so far there are no joker related bugs. But I do not know if I can suppress the special pawn powers when imitating a pawn. Also chessV does not use the move by move recalculation of the joker value. And these things are difficult to do. Partly this is why I'm trying my hand, at my own program !
Indeed.
Please let me know when you solve this, as I'm using ChessV for designing my games (not the intended purpose I guess, but ChessV is very general).
There is probably a bug with that instruction. I have sent you an email as the error message is very long!
I feel that this rule interacts badly with the joker. I have not seen other joker bugs, as of now!
Later edit. I have tried limiting the rooks to 2. There is the same error.
Ok, Thanks!
I have stumbled on another hurdle, Greg. I need to not have more than a Joker on the board. So that means no promotion to joker unless my joker has been captured. I figured out I have to use PromoteByReplacementRule but I can't get my head around the second argument. Can you help, please?
You are welcome!
Thanks, I made it work!
Hello Greg!
I have a few questions:
- How do I specify 2 promotable types in with the script language?
- How do I enter the pawn double move for the maasai pawn?
- Why are the rank and files reversed when you define a move with steponly (I have : AddMoves{ AddMovesOf(Pawn) StepMoveOnly(< 0,-1>) StepMoveOnly(< 0, 1>) }) and with the AddMoveCapability (example: PawnDoubleMove.Direction = new Direction( 0,1 );). The first is lateral and the second is up!
Ok, thanks very much!
So then, how should I write the part where the maasai and regular pawns are listed as givers and receivers of the en passant rule?
We have had an email discussion about berolinas and regular pawns. This is what I remember. I'm glad it worked out.
@Greg,
I remember having a discussion a while ago about how en passamnt would work with multiple types of pawns. This game needs something like that is chessV2 would be able to play it. I want to work something similar at a future game. Any thoughts about it?
To be honest I was fearing the horizon effect. Ok!... Don't worry too much about it! I think the AI does offer a simple demonstration of the game.
If you make any progress with the nightrider sacrifices, please let me know!
There is definitely something wrong with how the vulture and the knightrider is evaluated. Check this game where the diagram's AI does silly exchanges:
{469049721} 1. f7 e9 2. e7 Yf9 3. d6 h9 4. h6 Ij9 5. Je4 e8 6. f8 Yxd3 7. Mxd3 Yxi3 8. Jxi3 Fxf8 9. exf8 Fe12
The game is Grand Apothecary chess alert!
Great!
Nice work, HG
I think the most general solution is to point out both moves and then add a simple "c" for example.
Well, I'd like to point out the grand apothecary chess games where you may castle in four ways with 2 different pieces!
I did not meant the typo!
I'm not sure I understand what you say, HG!
I do not understand "tgat". You probably meant that.
The NN outputs a probability distribution over all the possible moves (illegal moves are set to 0 and the probabilities sum to 1). The MTCS call for this distribution, combine it with an exploration coefficient and Dirichlet noise, to form a score, and choses a move to expand until a certain number (in chess is 6000) of nodes have been visited. Nodes are expanded until leaf nodes are explored. This link explains it better than I:
Thanks Greg, My conundrum comes from the definition of leaf nodes. In the traditional way you apply the evaluation function, but in the MCTS of Alpha zero are only when the endgame conditions apply.
Ok, HG, I could have misconstrued something. But from what I understand I'd have to cut some moves while doing the alpha beta search. For example, after a certain number of plies. And then do the classification learning. Have you said something else? Anyway, I was saying that I can use handcrafted features at input to the neural network.
I meant the pruning!
Actually, when programming a new game it is not easy to do alpha beta search. I was thinking to add some positional features (like moving the central pawns) to the input of the neural network. This should speed thinks up a bit.
@HG, Thanks for not discouraging me. That matters a lot, thrust me. I'll then slowly train weak bots but stronger every time. Maybe in time hardware will become available. And also, who knows, better software ideas. Good luck!
@HG,
Yes, in my previous comment I was referring to the difference between neural net and the NNUE approach. Alpha Zero's neural net has 2 parts. A CNN feature extraction part and a fully connected classification part. In the NNUE, from what I understand, you keep only the second part. I have said that I did not fully understand how the CNN part works. I'm not sure what filters it uses. But I do not think this is a question for here anyway.
@HG,
The alpha-beta search would have replaced the feature extraction part of the NN. That is from what I understand. That is the part I did not understood (especially what filters does the CNN use). Anyway even if it takes a huge amount of time the algorithm will still improve. So I could present a user with monthly updates. But I'm afraid it will take time until an challenging AI is outputed by the program.
Once again thanks a lot for your help!
Well hundreds of times slower it is not that but. 1000 times slower will be 4000 hours which is 167 days. That is doable. I have one computer for one game (2 in total, remakes of apothecary chess). But my games are 10x10 and have bent riders and an imitator which could itself make things much worse. There could be artifices in the beginning by inserting fake endgame conditions which will train things like "Do not exchange your queen for a knight!".
Anyway I'm doing this because it is the only thing that motivates me so far. With the new treatment (actually 3 years now), I am able to pay attention to stuff. I really enjoy doing this. And the programming is not that hard actually, although there are also NN things I do not understand.
@HG and @Greg Thanks for your advices!
I'm aware of this fact, but I'm not sure about six years. Isn't it closer to a few months?
Yes, Greg I'm sure you are correct. Moreover in this context it matters less. This is a training program. It can take more time to learn the game, but as HG has said, it is of little consequence.
Thanks a lot, HG!
@HG or @Greg
I'm writing my own chess variant program (I'm finally making progress) alpha zero style. When generating moves I can't help wondering about loss time due to regenerating the same moves after a move was made.
For example in orthodox chess after 1.e4 there appear a few more queen moves, but you shouldn't try again to check for rook moves. As of now my algorithm works this way an it is probably slow.
I think Smess, which has a similar theme is a better designed game!
Ok, I'll try it
Hello, HG
Have you made any progress with the saving and loading in the interactive diagrams?
With the G move it could mean that I have personally made an illegal move! Sorry for that
And probably the same goes for the other two games!
I have copied a non finished game from my each grand apothecary diagrams. I have put it in a notepad text file. I am trying to copy it back but it does not work with edge. Firefox does give me that error though. Look try it for yourself:
The alert game:
{123456789} 1. f7 i8 2. h6 h8 3. f6 g9 4. e7 Gi10 5. Nf5 Ni9 6. Gi6 Mi12 7. Ic6 Vk7 8. Ixi12 Gxi12 9. Jh4 Oj9 10. Gg6 Vk8 11. i6 Vk9 12. Oc6 d10 13. i7 Wk10 14. ixh8 Wxh8 15. Gj6 Oh9 16. Gj8 Vj9 17. Wk5 Oxc6 18. Xxc6 We6 19. Jxe6 Vxj8 20. Nh4 Ij9 21. Je4 Gi10 22. Bg6 Ik8 23. Wxi8 Gxi8 24. k7 Vl9 25. Jxi8 Fk9 26. Vj6 Fxg6 27. Uxg6 Ii10 28. Vj8 Vxj8 29. Jxi9 Nh11 30. Jxh11 Qxh11 31. kxj8 Ixf7 32. Uxf7 Yxf7 33. Ne5 Ye9 34. Jxa12 Jxa12 35. Fj7 Bxj5 36. Rlk3 g10 37. Rk8 Ff9 38. Fb6
The classic game:
{123456789} 1. f7 i8 2. h6 h8 3. f6 g9 4. e7 Ek10 5. Nf5 Ne10 6. i7 Yh9 7. ixh8 gxh8 8. Uxh8 Bg9 9. Ui9 Hh11 10. Ng7 Yi11 11. Hh4 Yg10 12. Uj8 Eh10 13. Ul9 Ei9 14. Uh5 Yc8 15. Ee4 Ya7 16. Fd5 f8 17. exf8 Bxf8 18. Fb7 Bd6 19. Le5 Bxe5 20. dxe5 Nd8 21. Fd5 Le10 22. Hj6 Lf10 23. Nh9 Eh10 24. Nxf10 exf10 25. Uxk11 Ii12 26. Xd7 Fi10 27. Uxi12 Jxi12 28. Xxd8 Fxj6 29. Xxj6 d9 30. Ni5 Uk10 31. Eeh4 Je11 32. Je4 Ng9 33. f8 Ni6 34. Exi6 Bxi6 35. j5 Bk8 36. l7 Ff9 37. Rab3 Yb9 38. Txk8
The modern game:
{123456789} 1. f7 i8 2. h6 h8 3. f6 g9 4. e7 Ci10 5. Nef5 Nh9 6. Je4 Sh11 7. Jf4 d9 8. i5 Nee9 9. Sh4 We10 10. g6 Si11 11. Wh5 Wd7 12. Jd5 Wc8 13. Je4 Wd7 14. Sg5 Wxe4 15. Dxe4 Nk9 16. Dxd9 Cd10 17. Da8 b9 18. Db6 Nc8 19. Dc7 Shf9 20. Dd5 Yb11 21. Si4 Sk8 22. Xi7 Sj7 23. Xxi8 Sxg5 24. Nxg5 Nxi8 25. h7 Nk9 26. b7 Nb10 27. We6 Sg10 28. Xc6 Yh9 29. Ya6 Yj8 30. Nh4 e10 31. Nhi6 Yh9 32. Fc7 Sh11 33. Ck5 b8 34. Fg8 Te11 35. Lh4 Ni7 36. Yh3 f9 37. Fi8 Xi9 38. Cxi7
It works a bit with Firefox, but the joker gives an ambiguous move error!
Well HG, for me it does not work. I use edge. Can this be the problem?
100 comments displayed
Permalink to the exact comments currently displayed.
Aren't the Capablanca clearly stronger?