summaryrefslogtreecommitdiff
path: root/gothpick.py
diff options
context:
space:
mode:
Diffstat (limited to 'gothpick.py')
-rw-r--r--gothpick.py5
1 files changed, 5 insertions, 0 deletions
diff --git a/gothpick.py b/gothpick.py
index 764dbb9..8aa8e73 100644
--- a/gothpick.py
+++ b/gothpick.py
@@ -14,6 +14,7 @@ def lockpick(blocks, pinnumber, pinpos,connections):
initialpins = [0]*blocks
for p in pinpos:
initialpins[p]=pinpos[p]
+ VisitedNodes=set()
# queue items:
# distance from solution
# pinpositions
@@ -24,6 +25,10 @@ def lockpick(blocks, pinnumber, pinpos,connections):
# all are in the middle?
if dist == 0:
return path
+
+ if path:
+ if (tuple(pins),path[-1]) in VisitedNodes: continue
+ VisitedNodes.add((tuple(pins),path[-1]))
subqueue = []
#for each block
for block in range(blocks):