# GridPos

An object of type `GridPos`

represents a pair of integer coordinates. Such a pair can
be used to reference a point on a Grid.

The coordinate axes are named `x`

and `y`

. In this coordinate system, `x`

increases
“eastwards” and y` increases “southwards”.

`GridPos`

objects are immutable.

This class has an alias in the top-level package o1, so it’s accessible to students
simply via `import o1.*`

.

- Value parameters:
- x
an x coordinate

- y
a y coordinate

## Value members

### Concrete methods

Determines whether this grid position equals the given one. This is the case if the two have identical x and y coordinates.

Determines whether this grid position equals the given one. This is the case if the two have identical x and y coordinates.

Returns the “grid distance” between this `GridPos`

and the given one.
The grid distance between `a`

and `b`

equals `a.xDiff(b).abs + a.yDiff(b).abs`

.

Returns the “grid distance” between this `GridPos`

and the given one.
The grid distance between `a`

and `b`

equals `a.xDiff(b).abs + a.yDiff(b).abs`

.

Returns a grid position that “neighbors” this one in the given direction.
For instance, if this position has an `x`

of 10 and a `y`

of 20, and the `direction`

parameter is given the value `CompassDir.South`

, then the result has an `x`

of 10
and a `y`

of 21. Calling this method is essentially the same as calling `relative`

with a `distance`

of one.

Returns a grid position that “neighbors” this one in the given direction.
For instance, if this position has an `x`

of 10 and a `y`

of 20, and the `direction`

parameter is given the value `CompassDir.South`

, then the result has an `x`

of 10
and a `y`

of 21. Calling this method is essentially the same as calling `relative`

with a `distance`

of one.

Returns an infinite lazy-list of locations at increasing distances from this `GridPos`

in the given direction. For example, if this `GridPos`

is (10,1), and the direction
is `South`

, returns a list of (10,2), (10,3), (10,4), etc.

Returns an infinite lazy-list of locations at increasing distances from this `GridPos`

in the given direction. For example, if this `GridPos`

is (10,1), and the direction
is `South`

, returns a list of (10,2), (10,3), (10,4), etc.

Returns another grid position that is in the given direction from this one and at a given distance.

Returns another grid position that is in the given direction from this one and at a given distance.

For instance, say this position has an `x`

of 10 and a `y`

of 20. If `direction`

is
`CompassDir.North`

and `distance`

is 3, then the result has an `x`

of 10 and a `y`

of 17.

- See also:

Returns a textual description of this position. The description is of the form `"(x,y)"`

.

Returns a textual description of this position. The description is of the form `"(x,y)"`

.

- Definition Classes

Returns the difference between the `x`

coordinate of this `GridPos`

and that of the given
`GridPos`

. The result is negative if the `x`

coordinate of this `GridPos`

is greater.

Returns the difference between the `x`

coordinate of this `GridPos`

and that of the given
`GridPos`

. The result is negative if the `x`

coordinate of this `GridPos`

is greater.

Determines if the given `GridPos`

is west or east of this one. Returns `East`

if this
`GridPos`

’s `x`

coordinate is less than `another`

’s and `West`

if the opposite is true.
Wraps that return value in an `Option`

; `None`

means that the `x`

coordinates are equal.

Determines if the given `GridPos`

is west or east of this one. Returns `East`

if this
`GridPos`

’s `x`

coordinate is less than `another`

’s and `West`

if the opposite is true.
Wraps that return value in an `Option`

; `None`

means that the `x`

coordinates are equal.

Returns the difference between the `y`

coordinate of this `GridPos`

and that of the given
`GridPos`

. The result is negative if the `y`

coordinate of this `GridPos`

is greater.

Returns the difference between the `y`

coordinate of this `GridPos`

and that of the given
`GridPos`

. The result is negative if the `y`

coordinate of this `GridPos`

is greater.

Determines if the given `GridPos`

is north or south of this one. Returns `South`

if this
`GridPos`

’s `y`

coordinate is less than `another`

’s and `North`

if the opposite is true.
Wraps that direction in an `Option`

; `None`

means that the `y`

coordinates are equal.

Determines if the given `GridPos`

is north or south of this one. Returns `South`

if this
`GridPos`

’s `y`

coordinate is less than `another`

’s and `North`

if the opposite is true.
Wraps that direction in an `Option`

; `None`

means that the `y`

coordinates are equal.