public void UpdateSourceIfPromotion(ChessDotNet.MoveType moveType, string newPosition, ChessDotNet.Player side) { if (moveType == (ChessDotNet.MoveType.Capture | ChessDotNet.MoveType.Promotion | ChessDotNet.MoveType.Move)) { string sourceForPromotion = side == ChessDotNet.Player.White ? "/Resources/Pieces/wQ.png" : "/Resources/Pieces/bQ.png"; Cells.Single(item => item.Position == newPosition).Source = sourceForPromotion; } else { Cells.Single(item => item.Position == newPosition).Source = SelectedCell.Source; } }
public void UpdateSourceIfEnPassant(ChessDotNet.MoveType moveType, string newPosition, ChessDotNet.Player side) { if (moveType == (ChessDotNet.MoveType.Move | ChessDotNet.MoveType.EnPassant | ChessDotNet.MoveType.Capture)) { char c = newPosition.ElementAt(0); int verticalIndex = (int)Char.GetNumericValue(newPosition.ElementAt(1)); if (side == ChessDotNet.Player.White) { verticalIndex--; } else { verticalIndex++; } newPosition = c.ToString() + verticalIndex.ToString(); Cells.Single(item => item.Position == newPosition).Source = null; } }
public void UpdateSourceIfCastling(ChessDotNet.MoveType moveType, string newPosition) { if (moveType == (ChessDotNet.MoveType.Castling | ChessDotNet.MoveType.Move)) { char c = newPosition.ElementAt(0); string rockPosition; string newRockPosition; if (c == 'G') { rockPosition = "H" + newPosition.ElementAt(1).ToString(); newRockPosition = "F" + newPosition.ElementAt(1).ToString(); } else { rockPosition = "A" + newPosition.ElementAt(1).ToString(); newRockPosition = "D" + newPosition.ElementAt(1).ToString(); } var cellWithRock = Cells.Single(item => item.Position == rockPosition); Cells.Single(item => item.Position == newRockPosition).Source = cellWithRock.Source; cellWithRock.Source = null; } }