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

Reply via email to