Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWalter Bender <walter@walter-laptop.(none)>2009-10-07 21:01:03 (GMT)
committer Walter Bender <walter@walter-laptop.(none)>2009-10-07 21:01:03 (GMT)
commitd692af30c7dfa822bd9b049a01d27ac706254f0a (patch)
tree17e75e2a72ce5db35e44c6dd4f501c9963313844
parenta10a5ffb402543560a6bf040b9f1149751a48e78 (diff)
added solver to cmdline version
-rwxr-xr-xcardsort.py36
1 files changed, 36 insertions, 0 deletions
diff --git a/cardsort.py b/cardsort.py
index 4218143..553e2f8 100755
--- a/cardsort.py
+++ b/cardsort.py
@@ -54,6 +54,9 @@ class CardSortMain:
menu_items = gtk.MenuItem(_("Apply rotation sets"))
menu.append(menu_items)
menu_items.connect("activate", self._apply_rotation_sets_cb)
+ menu_items = gtk.MenuItem(_("Solve it"))
+ menu.append(menu_items)
+ menu_items.connect("activate", self._solve_cb)
menu_items.show()
root_menu = gtk.MenuItem("Tools")
root_menu.show()
@@ -100,6 +103,39 @@ class CardSortMain:
if self.r == 64:
self.r = 0
+ def _solve_cb(self, widget):
+ rotation_sets = get_rotation_sets()
+
+ for i in range(9):
+ for j in range(9):
+ if j in [i]: continue
+ for k in range(9):
+ if k in [i,j]: continue
+ for x in range(9):
+ if x in [i,j,k]: continue
+ for y in range(9):
+ if y in [x,i,j,k]: continue
+ for z in range(9):
+ if z in [x,y,i,j,k]: continue
+ for a in range(9):
+ if a in [x,y,z,i,j,k]: continue
+ for b in range(9):
+ if b in [a,x,y,z,i,j,k]: continue
+ for c in range(9):
+ if c in [a,b,x,y,z,i,j,k]:
+ continue
+ self.tw.grid.grid = [i,j,k,x,y,z,a,b,c]
+ for o in range(64):
+ for j in range(9):
+ self.tw.grid.card_table[self.tw.grid.grid.index(j)].set_orientation(rotation_sets[o][j])
+ if self.tw.grid.test() is True:
+ sprites.redrawsprites(self.tw)
+ print self.tw.grid
+ print o
+ return True
+ print "no solution found :("
+ return True
+
def main():
gtk.main()
return 0