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
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]])