private void Promote() { Dame newDame = new Dame(this.joueur); this.position.Link(newDame); joueur.pieces.Remove(this); joueur.pieces.Add(newDame); }
public override bool Deplacer(Case destination) { var sauvePremierDeplacement = premierDeplacement; if (!DeplacementValide(destination) || CaseBloquee(destination) || !position.CheminLibre(destination)) { premierDeplacement = sauvePremierDeplacement; return(false); } premierDeplacement = false; if (DeplacementEnPassant(destination, true)) { destination.Link(this); } else if (!DeplacementDiagonal(destination)) { if (destination.piece != null) { return(false); } else { destination.Link(this); } } else if (DeplacementDiagonal(destination) && destination.piece != null) { destination.Link(this); } else { return(false); } // Promotion if (DetecterPromotion(destination)) { Dame d = new Dame(joueur); d.position = destination; destination.piece = d; position.echiquier.partie.vue .ActualiserCase(destination.x, destination.y, d.info); } return(true); }