[Puzzler-checkins] SF.net SVN: puzzler:[641] trunk/puzzler/puzzler/puzzles/__init__.py
Brought to you by:
goodger
From: <go...@us...> - 2016-12-05 23:05:53
|
Revision: 641 http://sourceforge.net/p/puzzler/code/641 Author: goodger Date: 2016-12-05 23:05:52 +0000 (Mon, 05 Dec 2016) Log Message: ----------- factored out elements of build_matrix_header to allow for easy secondary column specification Modified Paths: -------------- trunk/puzzler/puzzler/puzzles/__init__.py Modified: trunk/puzzler/puzzler/puzzles/__init__.py =================================================================== --- trunk/puzzler/puzzler/puzzles/__init__.py 2016-12-05 04:39:18 UTC (rev 640) +++ trunk/puzzler/puzzler/puzzles/__init__.py 2016-12-05 23:05:52 UTC (rev 641) @@ -512,12 +512,24 @@ aspects.add(aspect) return aspects + def matrix_header_pieces(self): + """Return an ordered list of piece names for build_matrix_header.""" + return sorted(self.pieces.keys()) + + def matrix_header_coords(self): + """ + Return an ordered list of coordinates for build_matrix_header. + + Override e.g. to ensure that secondary columns are at the end. + """ + return sorted(self.solution_coords) + def build_matrix_header(self): headers = [] - for i, key in enumerate(sorted(self.pieces.keys())): + for i, key in enumerate(self.matrix_header_pieces()): self.matrix_columns[key] = i headers.append(key) - for (x, y) in sorted(self.solution_coords): + for (x, y) in self.matrix_header_coords(): header = '%0*i,%0*i' % (self.x_width, x, self.y_width, y) self.matrix_columns[header] = len(headers) headers.append(header) @@ -839,10 +851,10 @@ def build_matrix_header(self): headers = [] - for i, key in enumerate(sorted(self.pieces.keys())): + for i, key in enumerate(self.matrix_header_pieces()): self.matrix_columns[key] = i headers.append(key) - for (x, y, z) in sorted(self.solution_coords): + for (x, y, z) in self.matrix_header_coords(): header = '%0*i,%0*i,%0*i' % ( self.x_width, x, self.y_width, y, self.z_width, z) self.matrix_columns[header] = len(headers) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |