Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #Grid class for grids with values in cell at index=2 or (value=False) appended to cell
- #http://www.codeskulptor.org/#user43_gRaH4jSVYPihsJ5_0.py
- #by Adam Barnes
- #global directions for traversing
- DOWN = (1,0)
- UP = (1,0)
- RIGHT = (0,1)
- LEFT = (0,-1)
- class grid:
- """
- Grid class of width, height. May contain values or not.
- """
- def __init__(self, width, height, value = True, init_val = 0):
- self._width = width
- self._height = height
- self._value = value
- if not self._value:
- self._grid = [[[h,w] for w in range(width)] for h in range(height) ]
- else:
- self._grid = [[[h,w,init_val] for w in range(width)] for h in range(height) ]
- def __str__(self):
- for i in range(self._height):
- print self._grid[i]
- return "Grid is " + str(self._width) + " by " + str(self._height)
- def traverse_grid(self, start_row, start_col, direction, num_steps, add_value, debug = False):
- for step in range(num_steps):
- row = start_row + step * direction[0]
- col = start_col + step* direction[1]
- if debug:
- print "Processing Cell ", (row, col)
- if self._value:
- self._grid[row][col][-1] += add_value
- else:
- self._grid[row][col].append(add_value)
- if debug:
- print "with value ", self._grid[row][col]
- my_grid = grid(4,4)
- print my_grid
- my_grid.traverse_grid(0,3,DOWN, 4,2, True)
- print my_grid
- my_grid.traverse_grid(0,0,RIGHT,4,3)
- print my_grid
- print
- print "---------------------"
- print
- my_grid = grid(4,4,False)
- print my_grid
- my_grid.traverse_grid(0,3,DOWN, 4,2, True)
- print my_grid
- my_grid.traverse_grid(0,0,RIGHT,4,3)
- print my_grid
Advertisement
Add Comment
Please, Sign In to add comment