Hi Patrik, > What is the internal move generator used for?
1. Validation of the move on the board. The current validation does not allow to play Chess960 castlings (except if king is on e, and the rooks are on a,h). 2. Computation of move suggestions, this feature facilitates move input on the GUI board. > Is it just the castling rules that are missing from the internal move > generator? Yes, but this requires more changes, for example how a castling move will be stored inside the move structure, the current handling is not appropriate for Chess960. Furthermore the code of the board stuff has to be prepared for these castling rules. > What is the opening tree used for when i play against an engine? It depends on your decision if you want to use the opening tree or not. But implementing the Chess960 castling rules without preparing also the position search (for the opening tree) for Chess960 would be half-baked. > Concerning the castling rules, wouldn't the engine you play against tell > you if you try to make an invalid move? I cannot see why Scid vs. PC would > have to implement the castling rules at all, if Scid vs. PC could handle > that response. Some engines are responding with an error message in case of an invalid move, some are silently ignoring such a move, and some are crashing. The behavior depends on the diligence of the developer. Scid cannot handle the response if the move is a real Chess960 castling, this move cannot be played on the board without support. Any response of the engine will be validated - without validation it would be possible to store corrupted games in the database if the engine is responding with an invalid move (the binary decoding of the moves in the database depends on the standard chess rules, an invalid move is corrupting the database) - and without support the validation of Chess960 castling fails. > Perhaps it would be a good start to just support Chess960 against an engine > to begin with. This is not possible, the engine support requires that the move generator (and this implies also the internal board) is already prepared for Chess960. The effort for Chess960 support is high, and requires deep knowledge of the code base. The only easement is that the binary encoding of the moves in the database must not be changed, the current encoding for castling moves even works for Chess960. But a new database version number - this means .si5 - is unavoidable (if you store Chess960 games in .si4, then an older Scid version will have problems with such a database). Probably sometimes someone will do the implementation for Chess960!? Cheers, Gregor ------------------------------------------------------------------------------ _______________________________________________ Scidvspc-users mailing list Scidvspc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/scidvspc-users