fluxroot / jcpi

A Java Chess Protocol Interface
https://github.com/fluxroot/jcpi
Apache License 2.0
23 stars 8 forks source link

Chess960 #103

Open juergenebert opened 8 years ago

juergenebert commented 8 years ago

Hi Phokham,

first of all, thank you for publishing this fine library. I was looking for Java code that would generate all legal moves in a given position and MoveGenerator from JCPI is doing a great job for standard chess.

However, I noticed that although JCPI is somewhat prepared to handle non-standard positions, the move generation function does not seem to work correctly for chess960, especially for castling. Castling moves are not included in the move list. As far as I can see, there is a general problem with representing castling moves in JCPI. Castling is represented simply as a king move (e.g. White short castle ist standard setup as e1g1) but that does not suffice for chess960 positions. If eg. the W king is on f1 and the rook on h1, f1g1 could both be a simple kings move or castling.

Any plans on enhancing JCPI in this direction or am I missing something?

Thanks and all the best, Jürgen

fluxroot commented 8 years ago

Hey Jürgen! Thanks for your kind words. I really appreciate that!

As you correctly noticed, the move generator currently only supports standard chess. There are plans to completely rewrite JCPI and to support Chess960. I will probably switch development from Pulse to JCPI soon. Unfortunately however, I cannot give you an ETA on that rewrite.

Nevertheless, I will probably look over the old code base and see what I can do. I'll leave this issue opened so we can track this feature request.

Thanks, Poke

juergenebert commented 8 years ago

Hi Phokham, I really appreciate your support. Just to make sure: currently neither of your three fluxchess projects supports move generation for chess960, right? I would prefer to use JCPI in 'library mode', but if necessary I could also extract some source code from your engine projects. But as far as I can see there is the same issue, too.

Thanks again, Jürgen

fluxroot commented 8 years ago

Hey Jürgen! Yes, unfortunately none of my engines currently support Chess960. I will probably start implementing Chess960 in JCPI first.

Thanks, Poke.