J'essaie de trouver un moyen de déterminer efficacement et proprement si un mouvement valide est effectué avec un évêque aux échecs.Mettre en place des règles pour un évêque aux échecs
La pièce sera déplacé de SRCX, srcY à dstX, dstY
Cela fait partie d'une de mes idées:
if(srcX < dstX && srcY < dstY) {
// Moving towards the top right of the board
// Determine the decrease in X coordinate
int deltaX = dstX-srcX;
// If the move is valid, the Y coordinate will have decreased by the same number as X
int validY = dstY-deltaX;
if(validY == srcY) {
validMove = true;
}
}
mais ça va être un peu longue haleine, en faisant que pour jamais coin .. Quelqu'un peut-il penser à une façon plus agréable?
Ne devriez-vous pas comparer la valeur absolue de 'srcx-dstx' et' srcy-dsty'? – Maxpm
Tout dépend du système de coordonnées, mais oui: P – Andrew
Il ne dépend pas du tout du système de coordonnées ... Vous comparez les grandeurs des composantes x et y d'un vecteur. – aaronfarr