[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.
|