o1.grid
Type members
Classlikes
The type CompassDir represents the cardinal compass directions in a grid-like coordinate
system. There are exactly four instances of this type: North, East, South and West,
which are also defined in this package.
The type CompassDir represents the cardinal compass directions in a grid-like coordinate
system. There are exactly four instances of this type: North, East, South and West,
which are also defined in this package.
All the CompassDir objects are immutable.
This type and its instances have aliases in the top-level package o1, so they are
accessible to students simply via import o1.*.
- Value parameters:
- xStep
the change in x coordinate if one moves one step in this direction. For instance,
Westhas anxStepof -1 andNorthhas anxStepof 0.- yStep
the change in y coordinate if one moves one step in this direction. For instance,
Northhas anyStepof -1 andWesthas anyStepof 0.
- See also:
- Companion:
- object
This companion object of type CompassDir provides a selection of related
constants and utility methods.
This companion object of type CompassDir provides a selection of related
constants and utility methods.
This object has an alias in the top-level package o1, so it’s accessible to students
simply via import o1.*.
- Companion:
- class
The trait Grid represents rectangular grids that contain elements of a particular
kind. Each element in a grid is located at a unique pair of coordinates, represented
as a GridPos.
The trait Grid represents rectangular grids that contain elements of a particular
kind. Each element in a grid is located at a unique pair of coordinates, represented
as a GridPos.
X coordinates run from 0 to width-1, y coordinates from 0 to height-1.
(0,0) corresponds to the upper left corner of the grid.
There are different kinds of grids: the type of element that a grid contains is
defined by the grid’s type parameter. For instance, Grid[Square] is a grid where
each pair of x and y coordinates contains a Square object, and Grid[House] is
a grid containing House objects.
A Grid is mutable: it is possible to replace an element at a particular GridPos
with another. (Depending on the element type, the elements may be individually
mutable, too.) The width and height of a grid never change, however.
Upon creation, a Grid initializes itself by calling initialElements, which
produces an initial state for the grid.
This trait has an alias in the top-level package o1, so it’s accessible to students
simply via import o1.*.
- Value parameters:
- height
the number of elements in each column of the grid
- width
the number of elements in each row of the grid
An object of type GridPos represents a pair of integer coordinates. Such a pair can
be used to reference a point on a Grid.
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
