Comments (3)
The code
castling[turn] =
castling[turn] ^= ROOKS[turn][i].flag;
is not the bug itself, but it is capable to do magic of "restoring" castle status. There was bishop at a8 moving to g2 that was erroneously detected as rook. The rook is also can restore castle status if rook moves twice from a8. The first move from a8 will reset castle flag, then if rook returns back to a8 and leave it again - we should check it, I am not sure but it can be also very surprising
I also wonder why castling[turn] is assigned twice, = and ^= are both assignments
from chess.js.
Good find. Looking back on some of this old castling code is a little embarrassing. I've got a fix that I'll post shortly along with a regression test or two. Thanks for the report.
from chess.js.
Great, this bug was very tough to find
from chess.js.
Related Issues (20)
- Unable to make a move using the permissive parser
- Double check dectection?
- FEN issue: It's not giving an error when a pawn is placed on the first and last ranks. HOT 1
- How to make illigal moves using chess.js? HOT 2
- Chuck
- [Question] After I load a pgn, how can I get the fen after the Nth ply? HOT 1
- isAttacked is not working HOT 4
- Minimalist Chess
- Chess960 - Wrong Move - Possible Castling HOT 1
- Less Strict FEN Validation HOT 8
- detect "chess pieces" had destroyed HOT 1
- unable to set side to move
- [Question]: How to access the various fields in .moves({ verbose: true}) HOT 1
- Using chess.js in Quasar/Vue app has issues with _positionCounts when used in pinia store HOT 2
- I can't get possible moves for black pieces HOT 4
- Short pawn moves like 'ab', 'de' etc.
- unique id for each piece HOT 1
- Typescript not compiling HOT 1
- Feature Request: halfMove number in getComments()
- `.moves()` can provide moves that throw an "invalid move" error
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from chess.js.