abbarnes icon

Grid Class [codeskulptor]

abbarnes | PRO | 12/12/17 04:29:14 PM UTC | 0 ⭐ | 253 👁️ | Never ⏰ | []
Python |

1.8 KB

|

None

|

0 👍

/

0 👎

#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

Comments