private void PutPieces(Player player)
        {
            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 4; j++)
                {
                    // create pice with team color
                    Piece piece = new Piece(player);

                    // locate piece
                    int row = player.InitialRow + i;
                    int column = j * 2 + ((i + player.PlayerNumber) % 2);
                    LocatePiece(piece, row, column);

                    // set as drop source
                    _ddManager.RegisterDragSource(piece.Control, DragDropEffect.Move, ModifierKeys.None);
                }
            }
        }
 private void RemovePiece(Piece piece)
 {
     LocatePiece(piece, -1, -1);
 }
        private void LocatePiece(Piece piece, int row, int column)
        {
            if (piece.Control.Parent != null)
            {
                var border = (Border)piece.Control.Parent;

                // get old row and column
                int oldRow = Grid.GetRow(border);
                int oldColumn = Grid.GetColumn(border);

                // remove from to table
                if ((oldRow >= 0 && oldRow < 8) && (oldColumn >= 0 && oldColumn < 8))
                {
                    _tablePieces[oldRow, oldColumn] = null;
                }
                border.Child = null;
            }

            // add to table
            if ((row >= 0 && row < 8) && (column >= 0 && column < 8))
            {
                _tablePieces[row, column] = piece;
                _tableBorders[row, column].Child = piece.Control;
            }
        }