-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathGridNode.py
69 lines (54 loc) · 1.52 KB
/
GridNode.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
from Grid import Grid
class GridNode:
# Constructor
def __init__(self, grid, score=0):
self.__grid = grid
self.__score = score
self.__childNodes = []
# Returns grid state
def getGrid(self):
return self.__grid
# Returns grid score
def getScore(self):
return self.__score
# Adds a new child grid node
def addChildGridNode(self, gridNode):
self.__childNodes.append(gridNode)
# Adds a new child grid node
def addChildGrid(self, grid, score=0):
self.__childNodes.append(GridNode(grid, score))
# Returns number of child nodes
def getNumOfChildNodes(self):
return len(self.__childNodes)
# Returns child node at index
def getChildNodeAt(self, idx):
return self.__childNodes[idx]
''' Test Code
def main():
grid1 = Grid()
grid2 = Grid()
grid3 = Grid()
grid1.addTile(2, 0, 0)
grid1.addTile(2, 1, 0)
grid1.addTile(4, 3, 0)
grid2.addTile(2, 0, 0)
grid2.addTile(2, 1, 1)
grid2.addTile(4, 3, 3)
grid3.addTile(8, 0, 0)
GridNode1 = GridNode(grid1, 0)
GridNode2 = GridNode(grid2, 1)
GridNode3 = GridNode(grid3, 2)
GridNode1.addChildGridNode(GridNode2)
GridNode1.addChildGridNode(GridNode3)
GridNode1.addChildGrid(grid2, 1)
GridNode1.addChildGrid(grid3, 2)
print "Parent Grid: "
GridNode1.getGrid().printGrid()
print "Grid Score = " + str(GridNode1.getScore())
for i in range(GridNode1.getNumOfChildNodes()):
print "Grid state at: " + str(i)
GridNode1.getChildNodeAt(i).getGrid().printGrid()
print "Grid Score = " + str(GridNode1.getChildNodeAt(i).getScore())
if __name__ == "__main__":
main()
'''