Comments (7)
So this statement makes sure the move has been a capture, right?
if (game.get(targetSquare) !== null)
I'll test it once I get back home, thanks for the reply and the wonderful library.
from react-chessboard.
export const Example = () => {
const [game, setGame] = useState(new Chess());
function onDrop(sourceSquare, targetSquare) {
if (game.get(targetSquare) !== null) {
return false;
}
const gameCopy = { ...game };
const move = gameCopy.move({
from: sourceSquare,
to: targetSquare,
promotion: "q", // always promote to a queen for example simplicity
});
setGame(gameCopy);
// illegal move
if (move === null) return false;
return true;
}
return (
<Chessboard
id="PlayVsRandom"
position={game.fen()}
onPieceDrop={onDrop}
/>
);
};
from react-chessboard.
I'm curious as to how you'd want this work? To overlay the pieces? A chess position cannot exist with multiple pieces on the same square
from react-chessboard.
if you just want to prevent a capture you can return false in onPieceDrop
and the move will be disallowed
from react-chessboard.
I'd like to test whether a user can set up the starting position correctly, I put the pieces randomly on the board and ask the user to set up the pieces; if the user puts a piece on top of another, the piece would be captured which is an unwanted result that breaks the app.
from react-chessboard.
what would you want to happen if a user puts a piece on top of another?
you could instead just return false in onPieceDrop if you don't want the move to happen
ultimately it's up to the react-chessboard user to pass the desired fen position to the board, so the logic can be programmed externally to the package to swap the pieces if desired
from react-chessboard.
what would you want to happen if a user puts a piece on top of another?
I want the piece to snap back to where it was before the move was made, as if the move was illegal.
you could instead just return false in onPieceDrop if you don't want the move to happen
How do I check if the move was a capture?
from react-chessboard.
Related Issues (20)
- Redux Issue . Next JS 13 HOT 6
- Laggy when render multiple boards HOT 1
- Is it possible to disable field labels? HOT 2
- Positioning a shape while dragging HOT 21
- Animation looks weird when position and boardOrientation are changed at the same time HOT 6
- Animation goes wrong way when board is flipped HOT 2
- How can I make one black pawn a star, another black pawn, for example, an ice cream, replace not all pawns at once, but only one ? HOT 1
- areArrowsAllowed={false} doesn't work HOT 3
- onPromotionCheck for squareClick HOT 4
- Animation skips after failed drag move HOT 1
- How i can add pieces from outside the board ? HOT 2
- Feature Request: Add Circle Annotations to Squares HOT 3
- Positioning issue if FEN string changes completely HOT 7
- Premove back to existing premove square causes piece to disappear HOT 5
- Board resets to previous state despite value of `position` HOT 8
- Got error when run in dev environment HOT 2
- showPromotionDialog prop not working as expected HOT 1
- Use mixins in contrast to inline css HOT 1
- Allow for customization of every unique piece not just the different colored pieces. HOT 3
- customArrows props creates infinite loops. HOT 8
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 react-chessboard.