public void MovePieceTo(Piece piece, Position to) { var toMove = piecesinplay.Where(p => p.Piece.Equals(piece)) .FirstOrDefault(); if (toMove == null) { throw new InvalidOperationException("No such piece in play " + piece); } var move = new Move(toMove.Position, to, piece, isfirst); if (move.Valid()) { move.Apply(piecesinplay); Announce(piece, to); } else { AnnounceIllegalMove(); } isfirst = false; }
public void MovePieceTo(Piece piece,Position to) { var toMove = piecesinplay.Where(p => p.Piece.Equals(piece)) .FirstOrDefault(); if (toMove == null) throw new InvalidOperationException("No such piece in play " + piece); var move = new Move(toMove.Position,to,piece,isfirst); if(move.Valid()) { move.Apply(piecesinplay); Announce(piece, to); } else AnnounceIllegalMove(); isfirst = false; }