From b8eda7709358a0ec88c2a8bf3fe3a670c6262433 Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Wed, 11 Oct 2017 15:53:17 -0700 Subject: [PATCH] Bold clues when printing the board --- sudoku.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/sudoku.py b/sudoku.py index c8d6093..cd8d7cf 100644 --- a/sudoku.py +++ b/sudoku.py @@ -7,6 +7,9 @@ A Sudoku puzzle solver. import itertools import math +BOLD_SEQUENCE = '\x1B[1m' +UNBOLD_SEQUENCE = '\x1B[0m' + class Sudoku: def __init__(self, size=3, board=None): self._size = size @@ -139,7 +142,12 @@ class Sudoku: fields = [] for j in range(sz): idx = line * self.size + i * sz + j - fields.append('{{board[{i}]:^{width}}}'.format(i=idx, width=field_width)) + if idx in self._clues: + bold = BOLD_SEQUENCE + unbold = UNBOLD_SEQUENCE + else: + bold = unbold = '' + fields.append('{bold}{{board[{i}]:^{{width}}}}{unbold}'.format(i=idx, bold=bold, unbold=unbold)) chunks.append(''.join(fields)) if (line % sz) == 0: lines.append(spacer) @@ -147,5 +155,5 @@ class Sudoku: lines.append(spacer) fmt = '\n'.join(lines) str_board = [str(n) if n != 0 else ' ' for n in self._board] - out = fmt.format(board=str_board) + out = fmt.format(board=str_board, width=field_width) return out