超絶テキトーなSolver....
まぁ
動くか動かないかで言えば動くと思いマスが……ウルトラいいかげんです。6回はやっぱり85%くらいデスね。最大9回で解けてマス。
#!/bin/env python3 from random import seed, choice import sys from string import ascii_lowercase def main(): with open("./dict.txt") as f: wdic = [x.strip() for x in f.readlines()] freq = dict(zip(ascii_lowercase,[0,]*26)) for w in wdic: for c in w: freq[c] += 1 sdic = dict() for w in wdic: l = len(set(w)) sc = sum([freq[x] for x in w]) sdic[w] = l * sc seed() ans =choice(wdic) adic = sorted(sdic.items(), key=lambda i:i[1], reverse=True) print('ANS:', ans) for i in range(99): print(i, len(adic),adic[:10]) a = adic[0][0] if i == 0: a = 'trace' k = '' for b,c in zip(ans, a): m = '_' if b == c: m = 'G' elif c in ans: m = 'Y' k +=m print('\n'.join([k, a])) if k == 'GGGGG': print(i+1, "times. You win!") break for j in range(len(k)): if k[j] == '_': adic = [x for x in adic if a[j] != x[0][j]] elif k[j] == 'G': adic = [x for x in adic if a[j] == x[0][j]] elif k[j] == 'Y': adic = [x for x in adic if a[j] in x[0]] adic = [x for x in adic if a[j] != x[0][j]] if __name__ == "__main__": main()