public void Move(Cell source, Cell destination) { if (!source.IsOccupied() || !_gameMover.GetValidMoves(source).Contains(destination)) return; if (destination.GetState() == Cell.State.Empty) destination.SetPiece(source.GetPiece()); else { int winner = Attack((int) source.GetPieceRank(), (int) destination.GetPieceRank()); if (winner == 1) destination.SetPiece(source.GetPiece()); if (winner == 0) destination.RemovePiece(); } source.RemovePiece(); }