public void Update(char input)
        {
            if (input == ' ')
            {
                TryChangeColor();
                return;
            }

            var direction = GetDirectionFromInput(input);

            if (direction == MoveDirection.Undefined)
            {
                return;
            }

            var destinationTile = GetDestinationTileFromDirection(_player.TileItsOn, direction);

            if (destinationTile == null)
            {
                return;
            }

            var boxOnDestinationTile = _boxManager.GetBoxForTile(destinationTile);

            if (IsValidDestination(direction, destinationTile, boxOnDestinationTile))
            {
                MoveTo(destinationTile);
            }
        }