On 01/01/2015 11:48 PM, WolfRage wrote:
Final Code Using 2d List instead of Doubly Linked List.
Please don't top-post. Instead, post your comments inline with the
parts of the previous message to which you're responding.
Is there a reason you doublespaced the whole thing? And why did you
retype it instead of just copy/pasting it? And why lose the
indentation, so nobody can actually try it without guessing at your
indentation?
class GameTile():
def __init__(self, id, **kwargs):
# id is (X,Y)
self.id = id
class GameGrid():
def __init__(self, **kwargs):
self.cols = 7
self.rows = 8
These two would more generally have been parameters, and you'd create
the grid by specifying the sizes to be used.
# grid is 2d array as y, x ie [y][x].
self.grid = [[None] * self.rows for i in range(self.cols)]
If you always call make_grid immediately after constructing the grid,
then why not combine __init__ with make_grid? It'd be much shorter.
def make_grid(self):
for row in range(0, self.rows):
for col in range(0, self.cols):
self.grid[col][row] = GameTile(id=str(row) + ',' + str(col))
def print_by_row(self):
for col in range(0, self.cols):
for row in range(0, self.rows):
print(self.grid[col][row].id)
This could be better written as:
for col in self.grid:
for row in col
print row.id
def print_by_col(self):
for row in range(0, self.rows):
for col in range(0, self.cols):
print(self.grid[col][row].id)
likewise, but it's a bit trickier.
def check_bounds(self, x, y):
if (0 <= x < self.rows) and (0 <= y < self.cols):
return True
return False
This could be simplified to just:
return (0 <= x < self.rows) and (0 <= y < self.cols)
def lookup_node(self, x, y):
if not self.check_bounds(x, y):
return False
return self.grid[y][x]
def draw_grid(self):
for col in range(0, self.cols):
print(end='| ')
for row in range(0, self.rows):
print(self.grid[col][row].id, end=' | ')
print()
temp = GameGrid()
temp = GameGrid(8, 7)
temp.make_grid()
temp.draw_grid()
--
DaveA
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor