Use length of str(self.size) to compute size of each square in the printed grid

This commit is contained in:
Eryn Wells 2013-08-29 11:49:34 -07:00
parent 6a753a8dac
commit 8540f60381

View file

@ -184,15 +184,16 @@ class Board(dict):
def __str__(self):
lines = []
box_lines = []
square_size = len(str(self.size))
for x in range(self.size):
row_squares = []
box_squares = []
for y in range(self.size):
square = self.get(self._xy_key(x, y))
if len(square) == 1:
box_squares.append(str(square[0]))
box_squares.append(str(square[0]).center(square_size))
else:
box_squares.append('.')
box_squares.append('.'.center(square_size))
if len(box_squares) == self.box_size:
row_squares.append(' '.join(box_squares))
box_squares = []
@ -202,7 +203,7 @@ class Board(dict):
lines.append('\n'.join(box_lines))
box_lines = []
if x < self.size - 1:
box_dividers = ['-' * (2 * self.box_size - 1) for box in range(self.box_size)]
box_dividers = ['-' * (square_size * (2 * self.box_size - 1)) for box in range(self.box_size)]
lines.append('\n{}\n'.format('-+-'.join(box_dividers)))
return ''.join(lines)