[Tutor] Making Doubly Linked List with Less Lines of Code.

WolfRage wolfrage8765 at gmail.com
Fri Jan 2 16:53:35 CET 2015


On 01/02/2015 10:37 AM, Alan Gauld wrote:

>
> I use Thunderbird for posting too, and nobody has complained yet about
> my code layout.
> My account settings are:
>
> Composition&Addressing
> Compose in HTML - OFF
> Auto quote original then "START REPLY BELOW QUOTE"
>
> My Tbird prefs are:
> Composition->General tab-> Send Options button
> Text Format set to "Convert to plain text"
> Plain Text domains tab -> includes python.org and gmane.org
>
> And in my Address book I have the python tutor list entry set to
>
> Prefers messages formatted as PLAIN TEXT
>
> HTH
Using Alan's settings above I can already see the difference in the 
composition window.

Reposting my code to see if it comes out correctly now. I am still 
applying Steve's suggestions.

import sys


class GameTile():
     def __init__(self, col, row, **kwargs):
         # id is (X,Y)
         self.id = str(row) + ',' + str(col)
         self.col = col
         self.row = row

     def __str__(self):
         return '%d, %d' % (self.col, self.row)


class GameGrid():
     def __init__(self, **kwargs):
         self.cols = 8
         self.rows = 8
         self.make_grid()

     def make_grid(self):
         # grid is 2d array as x, y ie [x][y].
         self.grid = [[None] * self.cols for i in range(self.rows)]
         for row in range(self.rows):
             for col in range(self.cols):
                 self.grid[row][col] = GameTile(row=row, col=col)

     def print_by_row(self):
         for col in range(self.cols):
             for row in range(self.rows):
                 print(self.grid[row][col])

     def print_by_col(self):
         for row in range(self.rows):
             for col in range(self.cols):
                 print(self.grid[row][col])

     def check_bounds(self, x, y):
         if (0 <= x < self.rows) and (0 <= y < self.cols):
             return True
         return False

     def lookup_node(self, x, y):
         if not self.check_bounds(x, y):
             return False
         return self.grid[x][y]

     def draw_grid(self):
         for col in range(self.cols):
             print(end='| ')
             for row in range(self.rows):
                 print(self.grid[row][col], end=' | ')
             print()


grid = GameGrid()
grid.draw()
print(sys.getsizeof(grid.grid))



More information about the Tutor mailing list