diff --git a/k-noeudsCasseTete/noeuds.py b/k-noeudsCasseTete/noeuds.py index 24d5a8877873eedb1dce1acbadd2a04b62a303a4..873be7dfada3593c9bdcb25376044a9afb543b74 100644 --- a/k-noeudsCasseTete/noeuds.py +++ b/k-noeudsCasseTete/noeuds.py @@ -1,6 +1,6 @@ import sys, os -PATTERNREMOVE=['aA','Aa','bB','Bb','cC','Cc'] +PATTERNREMOVE=['aA','Aa','bB','Bb','cC','Cc','dD','Dd'] def debug(message): print("DEBUG: %s"%message) @@ -24,27 +24,34 @@ def reduceOne(line): line=remove(line,pattern) return line +def replace(number, chrmod, pos): + number[pos]=chrmod + + def test(candidate): + """ main function test one string """ ma=candidate.replace('a','').replace('A','') mb=candidate.replace('b','').replace('B','') mc=candidate.replace('c','').replace('C','') + md=candidate.replace('d','').replace('D','') + #print("In:%s"%line) - ra, rb, rc = reduce(ma), reduce(mb), reduce(mc) + ra, rb, rc, rd = reduce(ma), reduce(mb), reduce(mc), reduce(md) outa="[a] %s -> (%s)"%(ma,ra) outb=" [b] %s -> (%s)"%(mb,rb) outc=" [c] %s -> (%s)"%(mc,rc) + outd=" [d] %s -> (%s)"%(md,rd) res="" reducedC=reduce(candidate) - wellformed= 'a' in reducedC and 'b' in reducedC and 'c' in reducedC - if ra=='' and rb=='' and rc=='' and wellformed: + wellformed= 'a' in reducedC and 'b' in reducedC and 'c' in reducedC and 'd' in reducedC + if ra=='' and rb=='' and rc=='' and rd=='' and wellformed: res="**GOUDE**" - print("%8s %20s %20s %20s %s"%(candidate, outa, outb, outc, res)) + print("< ---- >") + print("%8s %20s %20s %20s %20s %s"%(candidate, outa, outb, outc, outd, res)) -def replace(number, chrmod, pos): - number[pos]=chrmod - -TABLETTERS=['a','b','c','A','B','C'] # letters +NUMLETTERS=8 +TABLETTERS=['a','b','c','d','A','B','C','D'] # letters def addOne(number, posadd): if (posadd>=len(number)): @@ -53,7 +60,7 @@ def addOne(number, posadd): currentLetter= number[posadd] index=TABLETTERS.index(currentLetter) - newindex=(index+1)%6 + newindex=(index+1)%NUMLETTERS replace(number, TABLETTERS[newindex], posadd) if currentLetter=='C': #recursive call addOne(number, posadd+1) @@ -73,5 +80,13 @@ def enumerate(): #print ("%d %s"%(i,''.join(num))) test(candidate) -enumerate() -print("PWD:",os. getcwd()) \ No newline at end of file +def configsFromFile(filename): + f = open(filename, "r") + for line in f: + config=line.rstrip() + test(config) + +#enumerate() +print("cétipar") +#print("PWD:",os. getcwd()) +configsFromFile("x-data.txt") \ No newline at end of file diff --git a/k-noeudsCasseTete/x-data.txt b/k-noeudsCasseTete/x-data.txt index 287ee97bb70006a790fe5aae3d76364d2cd474ee..d38223470427500cdaac3b5bb612f1a72002a7d1 100644 --- a/k-noeudsCasseTete/x-data.txt +++ b/k-noeudsCasseTete/x-data.txt @@ -1,4 +1,2 @@ -abcCBA -HHBabcCABCabc -AbcBCacbCB -abcBCAcbCB +caCbcAdaDCBA +caCbcAdaBDbCBA \ No newline at end of file