The Grid class in grid.py provides a simple 2-d storage utility. The values stored can be any Python value.
Grid(width, height)
- constructs new grid. Initially all locations are
None
grid.width, grid.height
- width/height properties
grid.get(x, y)
- returns contents at x,y (error if x,y out of bounds)
grid.set(x, y, val)
- sets value into the grid at x,y (error if x,y
out of bounds)
grid.in_bounds(x, y)
- returns True if the x,y is in bounds of the
grid. False otherwise.
build(lst)
- constructs a new grid based on a nested-list format like
this
# e.g. this makes a 3 by 2 grid:
grid = Grid.build([[1, 2, 3], [4, 5 6]])
# [1, 2, 3] is row y = 0
# [4, 5, 6] is row y = 1
Grid Demo
def grid_demo():
"""
Demonstrate use of the Grid class.
"""
# Create width 4 by height 2 grid, filled with None initially.
grid = Grid(4, 2)
# loop over contents in usual way,
# setting every location to 6
for y in range(grid.height):
for x in range(grid.width):
grid.set(x, y, 6)
# access 0,0
val = grid.get(0, 0)
# verify that 3,1 is in bounds
if grid.in_bounds(3, 1):
# set 3,1
grid.set(3, 1, 11)
print(grid)
# print uses nested-list format
# showing row-0, then row-1
# [[6, 6, 6, 6], [6, 6, 6, 11]]
# Grid.build() also uses nested-list format, allowing
# you to construct a grid on the fly.
grid2 = Grid.build([[6, 6, 6, 6], [6, 6, 6, 11]])