Skip to content

Instantly share code, notes, and snippets.

@zokier
Forked from justecorruptio/2048.py
Last active August 29, 2015 14:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save zokier/083185f9db7e22235a23 to your computer and use it in GitHub Desktop.
Save zokier/083185f9db7e22235a23 to your computer and use it in GitHub Desktop.
import os
import tty
tty.setcbreak(0)
M = [''] * 16
def G(v):
p = [''] * 4
u = list(filter(str, v))
i = 3
while u:
z = u.pop()
p[i] = u and z == u[-1] and 2 * u.pop() or z
i -= 1
return p
def Y(M, k):
i = 1
M = zip(*[iter(M)] * 4)
exec 'M=map([list,G][i*k==k*k],zip(*M))[::-1];i+=1;' * 4
return sum(M, [])
while 1:
r = id(M) % 71 + 17
while M[r % 16] * r:
r -= 1
if r:
M[r % 16] = r % 7 % 2 * 2 + 2
J = "WIN" * (2048 in M) or "LOSE" * all(Y(M, 0))
print '\x1b[2J\x1b[H' + ('%4s|' * 4 + '\n') * 4 % tuple(M) + J
if J:
break
M = Y(M, ">BDAC".find(os.read(0, 3)[2]))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment