public function set($index, $value)
    {
        try {
            if (is_string($index)) {
                if ($this->getWalkFlag() & self::WALK_X) {
                    $this->setX($index, $value);
                } elseif ($this->getWalkFlag() & self::WALK_Y) {
                    $this->setY($index, $value);
                } else {
                    $this->setXY($index, $value);
                }
            } else {
                $this->setInt($index, $value);
            }
        } catch (InvalidArgumentException $e) {
            throw $e;
        } catch (OutOfRangeException $e) {
            throw $e;
        }
        return $this;
    }