op12no2 / lozza

A UCI Javascript chess engine.
GNU General Public License v3.0
46 stars 8 forks source link

no response when losing? #2

Closed akinell closed 5 years ago

akinell commented 5 years ago

Error Description:

When setting up a position which is very bad for lozza (i.e. a rook and a queen down) then lozza won't send a bestmove response. Instead, only the following output is sent: info nodes 0 time 0 nps 0 info hashfull 0

I am not entirely sure the issue is related only to strongly losing positions.

Test Case:

lozza.js build 1.18 in a WebWorker on Chrome.

messages: uci ucinewgame position fen rnb1k3/pppppppp/8/8/8/4P3/PPPP1PPP/RNBQKBNR b KQkq - 0 1 go movetime 500

op12no2 commented 5 years ago

Hi,

It's an illegal FEN - black has no castling rights. If you remove the kq it works.

However I agree it should do something more useful - thanks for the report

Cheers, Colin

On Tue, Oct 15, 2019 at 11:15 AM akinell notifications@github.com wrote:

Error Description:

When setting up a position which is very bad for lozza (i.e. a rook and a queen down) then lozza won't send a bestmove response. Instead, only the following output is sent: info nodes 0 time 0 nps 0 info hashfull 0

I am not entirely sure the issue is related only to strongly losing positions. Test Case:

lozza.js build 1.18 in a WebWorker on Chrome.

messages: uci ucinewgame position fen rnb1k3/pppppppp/8/8/8/4P3/PPPP1PPP/RNBQKBNR b KQkq - 0 1 go movetime 500

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/op12no2/lozza/issues/2?email_source=notifications&email_token=ACFQ5NL676ECOUNB6WDOCN3QOWJ2VA5CNFSM4JA2KUD2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HR2ON2A, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACFQ5NM3UKLJLN7WVU4CSJ3QOWJ2VANCNFSM4JA2KUDQ .

akinell commented 5 years ago

You are right of course! I was confused because the fen was generated by chess.js and its validate_fen() method returns "valid: true". Also stockfish.js handles the situation gracefully.

The bug belongs to chess.js, since it doesn't update the castling rights after removing rooks and there is no way to set castling rights programmatically. It is actually listed as a bug in their readme.

thank you for your quick response!

op12no2 commented 5 years ago

Hi,

Ah I see. Yes, in hindsight I think it's better for the UI to validate the position so that the engine can concentrate on a solution (especially at the end of a game and time is short), so I will not tweak anything in this instance.

Cheers, Colin

On Tue, Oct 15, 2019 at 11:47 AM akinell notifications@github.com wrote:

You are right of course! I was confused because the fen was generated by chess.js and its validate_fen() method returns "valid: true". Also stockfish.js handles the situation gracefully.

The bug belongs to chess.js, since it doesn't update the castling rights after removing rooks and as there is no way to set castling rights programmatically. It is actually listed in their readme.

thank you for your quick response!

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/op12no2/lozza/issues/2?email_source=notifications&email_token=ACFQ5NISUGE3ZITWQYUO66DQOWNS7A5CNFSM4JA2KUD2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEBIJUMY#issuecomment-542153267, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACFQ5NPVE5SS4RS43VTRQD3QOWNS7ANCNFSM4JA2KUDQ .