ACC-Emulect-Base / Mini_engine.py
TejAndrewsACC's picture
Create Mini_engine.py
a244385 verified
raw
history blame
580 Bytes
phi = (1 + 5 ** 0.5) / 2
S,H,W,A,M={},[],[[((i+j)%3+1)/phi for j in range(int(phi*3))]for i in range(int(phi*3))],[phi%1]*int(phi*3),{}
def e(t):return[(ord(c)%95+32)/128 for c in t.ljust(int(phi*3))][:int(phi*3)]
def f(x):return''.join(chr(int((sum(W[i][j]*x[j]for j in range(len(x)))+A[i])*95)%95+32)for i in range(len(W)))
def u(t):H.append(t);k=' '.join(H[-int(phi):]);S[k]=S.get(k,[])+[t];M[t]=M.get(t,[])+[H[-2]]if len(H)>1 else[]
def g(k):v=S.get(k,[])+M.get(k,[]);return max(set(v),key=v.count)if v else"?"
while 1:q=input('>');u(q);print(f(e(g(' '.join(H[-int(phi):])))))