From f25520e60fae2e642cc9a53a112c079cfae6d8a0 Mon Sep 17 00:00:00 2001 From: bthink Date: Thu, 25 Jun 2026 00:27:07 +0200 Subject: added queue trimming --- gothpick.py | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'gothpick.py') 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): -- cgit v1.2.3