/* * Deletes a piece from a given position. In case of "pawn promotion", do not put into deleted pieces set. */ public Piece killPiece(Position pos, bool promotion) { bool found = false; Piece piece = null; Iterator it = whitePieces.getIterator(); while (it.MoveNext()) { Piece p = (it.Current as Piece); if (p.getPosition().Equals(pos)) { piece = p; if (!promotion) { mainForm.getWhiteImages().Images.Add(p.getImage()); } whitePieces.remove(p); found = true; break; } } if (!found) { it = blackPieces.getIterator(); while (it.MoveNext()) { Piece p = (it.Current as Piece); if (p.getPosition().Equals(pos)) { piece = p; if (!promotion) { mainForm.getBlackImages().Images.Add(p.getImage()); } blackPieces.remove(p); break; } } } return(piece); }