Python 一直被炒得热火朝天,就像这炙热的天气,也像老谭酸菜 或是那茅台愈久弥香 也像洋槐花清新淡雅
一下代码参考 文章 http://www.tuicool.com/articles/YNzqu2j 实现 ,代码还需要优化 ,不是效率 ,是功能不完善
一点心得 就是 Python 功能强悍
# -*- encoding:utf-8 -*-
import random
import copy
def T(a):
return a if a else ''
def display(mtr):
print "┌" + ("-" * 5 + "┬") * 3 + "-" * 5 + "┐"
print "│%4s │%4s │%4s │%4s │" % (T(mtr[0][0]),T(mtr[0][1]),T(mtr[0][2]),T(mtr[0][3]))
print "├" + ("-" * 5 + "┼") * 3 + "-" * 5 + "┤"
print "│%4s │%4s │%4s │%4s │" % (T(mtr[1][0]),T(mtr[1][1]),T(mtr[1][2]),T(mtr[1][3]))
print "├" + ("-" * 5 + "┼") * 3 + "-" * 5 + "┤"
print "│%4s │%4s │%4s │%4s │" % (T(mtr[2][0]),T(mtr[2][1]),T(mtr[2][2]),T(mtr[2][3]))
print "├" + ("-" * 5 + "┼") * 3 + "-" * 5 + "┤"
print "│%4s │%4s │%4s │%4s │" % (T(mtr[3][0]),T(mtr[3][1]),T(mtr[3][2]),T(mtr[3][3]))
print "└" + ("-" * 5 + "┴") * 3 + "-" * 5 + "┘"
#ran_pos = random.sample(range(16), 2) # 随机获取两个数字
#print ran_pos[0] / 4
#print ran_pos[0] % 4
#print range(16)
# python need return function
def init(): # initial of matrix
mtr=[[0 for i in range(4)] for j in range(4)]
ran_pos = random.sample(range(16), 2) # 随机获取两个数字
print ran_pos[0]/4
print ran_pos[0]%4
mtr[ran_pos[0]/4][ran_pos[0]%4] = mtr[ran_pos[1]/4][ran_pos[1]%4] = 2
return mtr
#print init()
#print 'me'
#print range(1,4) # start to end and step is 1
#x = 3
#x *=2 # double the data
#print x
#mtr = init()
#display(mtr)
#for i in reversed(range(5)):
# print i
#print range(133)
def cellDataMove(mtr,dirct):
score =0
visit =[]
if dirct == 0: #left
for i in range(4): # 定义到行
for j in range(1,4): #定义到列
for k in range(j,0 ,-1): #对当前列以及上列的合并操作
if mtr[i][k-1] ==0:
mtr[i][k-1]=mtr[i][k]
mtr[i][k]=0
elif mtr[i][k-1] == mtr[i][k] and 4*i +k -1 not in visit and 4*i + k not in visit and mtr[i][k] !=0:
mtr[i][k-1] *=2
mtr[i][k] = 0
score +=mtr[i][k-1]
visit.append(4*i + k)
visit.append(4*i + k -1)
elif dirct ==1: #down
for j in range(4):
for i in range(3,0,-1):
for k in reversed(range(0,i)):
if mtr[k+1][j] == 0:
mtr[k+1][j] = mtr[k][j]
mtr[k][j] = 0
elif mtr[k+1][j] == mtr[k][j] and 4*(k + 1 ) + j not in visit and 4*k + j not in visit and mtr[k][j] != 0:
mtr[k + 1][j] *=2
mtr[k ][j] = 0
score += mtr[k+1][j]
visit.append(4*(k + 1 ) + j)
visit.append(4*(k ) + j)
elif dirct == 2: # to up
for j in range (4):
for i in range(1,4):
for k in range(i,0,-1):
if mtr[k-1][j] == 0 :
mtr[k - 1][j] =mtr[k][j]
mtr[k - 1][j] =0
elif mtr[k - 1][j] == mtr[k][j] and 4*(k - 1 ) + j not in visit and 4*k + j not in visit and mtr[k][j] !=0:
mtr[k - 1][j] *=2
mtr[k ][j] = 0
score += mtr[k -1][j]
visit.append(4*k + j)
visit.append(4*(k- 1 ) + j )
elif dirct ==3 : # to right
for i in range(4):
for j in range(3,0,-1):
for k in reversed(range(j)):
if mtr[i][k +1] == 0 :
mtr[i][k + 1] = mtr[i][k]
mtr[i][k] =0
elif mtr[i][k + 1] == mtr[i][k ] and 4* i + k + 1 not in visit and k*4 + k not in visit and mtr[i][k] !=0:
mtr[i][k + 1] *=2
mtr[i][k ] = 0
score +=mtr[i][k + 1]
visit.append( 4* i + k + 1)
visit.append( 4* i + k )
return score
def update(mtr):
ran_pos =[]
ran_num =[2,4]
for i in range(4):
for j in range(4):
if mtr[i][j]==0:
ran_pos.append(4*i+j)
if(len(ran_pos)>0):
k=random.choice(ran_pos)
n=random.choice(ran_num)
mtr[k/4][k%4]=n
def goon(mtr,score):
if 2048 in mtr:
print "great ! you won.."
raw_input("please enter any key world to contine")
exit()
if 0 in mtr:
return True
for i in range(4):
for j in range(4):
if i < 3 and mtr[i][j]==mtr[i+1][j]:
return True
if j < 3 and mtr[i][j] == mtr[i][j+1]:
return True
print "sorry game over"
return False
declare = "←:a/h ↓: s/j ↑: w/k →: d/l ,q(uit),b(ack)"
illegal= "Illegal operation"
noefficient = "This nove has no efficient"
if __name__=='__main__':
score = 0
step = 0
mtr=init()
mtr_stk=[]
scr_stk =[]
tmp = copy.deepcopy(mtr)
mtr_stk.append(mtr)
scr_stk.append(0)
print "this is the init 2048"
display(mtr)
while goon(mtr,score):
dirct = raw_input("step :%d score:%d(%s):" % (step ,score, declare))
dirct=dirct.lower()
if dirct =='q':
break
elif dirct =='a' or dirct =='h':
dirct = 0
elif dirct =='s' or dirct =='j':
dirct =1
elif dirct=='w' or dirct =='k':
dirct =2
elif dirct =='d' or dirct =='l':
dirct =3
elif dirct=='b':
if len(mtr_stk) ==1:
print "can not back"
else:
mtr_stk.pop()
scr_stk.pop()
mtr=copy.deepcopy(mtr_stk[-1])
score =scr_stk[-1]
step =-1
continue
else:
print illegal
continue
tmp = copy.deepcopy(mtr)
op_scr = cellDataMove(mtr,dirct)
#display(mtr)
print op_scr
if tmp !=mtr:
score = score+ op_scr
update(mtr)
display(mtr)
tmp = copy.deepcopy(mtr)
mtr_stk.append(tmp)
scr_stk.append(int (score))
step = step + 1
else:
print noefficient
下面是执行的几个测试, 不足之处还请各位指正:
C:\Python27\python.exe C:/Users/IBM_ADMIN/PycharmProjects/OnePython/src/com/2048/2048.py
2
2
this is the init 2048
┌-----┬-----┬-----┬-----┐
│ │ │ │ │
├-----┼-----┼-----┼-----┤
│ │ │ │ │
├-----┼-----┼-----┼-----┤
│ │ │ 2 │ │
├-----┼-----┼-----┼-----┤
│ 2 │ │ │ │
└-----┴-----┴-----┴-----┘
step :0 score:0(←:a/h ↓: s/j ↑: w/k →: d/l ,q(uit),b(ack)):a
0
┌-----┬-----┬-----┬-----┐
│ │ │ │ │
├-----┼-----┼-----┼-----┤
│ │ │ │ │
├-----┼-----┼-----┼-----┤
│ 2 │ │ │ │
├-----┼-----┼-----┼-----┤
│ 2 │ │ │ 2 │
└-----┴-----┴-----┴-----┘
step :1 score:0(←:a/h ↓: s/j ↑: w/k →: d/l ,q(uit),b(ack)):s
4
┌-----┬-----┬-----┬-----┐
│ │ │ │ │
├-----┼-----┼-----┼-----┤
│ │ │ │ │
├-----┼-----┼-----┼-----┤
│ 4 │ │ │ │
├-----┼-----┼-----┼-----┤
│ 4 │ │ │ 2 │
└-----┴-----┴-----┴-----┘
step :2 score:4(←:a/h ↓: s/j ↑: w/k →: d/l ,q(uit),b(ack)):s
8
┌-----┬-----┬-----┬-----┐
│ │ │ │ │
├-----┼-----┼-----┼-----┤
│ │ │ │ │
├-----┼-----┼-----┼-----┤
│ 2 │ │ │ │
├-----┼-----┼-----┼-----┤
│ 8 │ │ │ 2 │
└-----┴-----┴-----┴-----┘
step :3 score:12(←:a/h ↓: s/j ↑: w/k →: d/l ,q(uit),b(ack)):d
0
┌-----┬-----┬-----┬-----┐
│ │ │ │ │
├-----┼-----┼-----┼-----┤
│ │ 4 │ │ │
├-----┼-----┼-----┼-----┤
│ │ │ 2 │ │
├-----┼-----┼-----┼-----┤
│ │ │ 8 │ 2 │
└-----┴-----┴-----┴-----┘
step :4 score:12(←:a/h ↓: s/j ↑: w/k →: d/l ,q(uit),b(ack)):w
0
This nove has no efficient
step :4 score:12(←:a/h ↓: s/j ↑: w/k →: d/l ,q(uit),b(ack)):s
0
┌-----┬-----┬-----┬-----┐
│ │ 2 │ │ │
├-----┼-----┼-----┼-----┤
│ │ │ │ │
├-----┼-----┼-----┼-----┤
│ │ 4 │ 2 │ │
├-----┼-----┼-----┼-----┤
│ │ │ 8 │ 2 │
└-----┴-----┴-----┴-----┘
step :5 score:12(←:a/h ↓: s/j ↑: w/k →: d/l ,q(uit),b(ack)):s
0
┌-----┬-----┬-----┬-----┐
│ │ │ │ │
├-----┼-----┼-----┼-----┤
│ │ │ │ 2 │
├-----┼-----┼-----┼-----┤
│ │ 2 │ 2 │ │
├-----┼-----┼-----┼-----┤
│ │ 4 │ 8 │ 2 │
└-----┴-----┴-----┴-----┘
step :6 score:12(←:a/h ↓: s/j ↑: w/k →: d/l ,q(uit),b(ack)):d
0
┌-----┬-----┬-----┬-----┐
│ │ │ │ 2 │
├-----┼-----┼-----┼-----┤
│ │ │ │ 2 │
├-----┼-----┼-----┼-----┤
│ │ │ 2 │ 2 │
├-----┼-----┼-----┼-----┤
│ │ 4 │ 8 │ 2 │
└-----┴-----┴-----┴-----┘
step :7 score:12(←:a/h ↓: s/j ↑: w/k →: d/l ,q(uit),b(ack)):d
4
┌-----┬-----┬-----┬-----┐
│ │ │ │ 2 │
├-----┼-----┼-----┼-----┤
│ │ │ │ 2 │
├-----┼-----┼-----┼-----┤
│ │ │ 4 │ 4 │
├-----┼-----┼-----┼-----┤
│ │ 4 │ 8 │ 2 │
└-----┴-----┴-----┴-----┘
step :8 score:16(←:a/h ↓: s/j ↑: w/k →: d/l ,q(uit),b(ack)):s
4
┌-----┬-----┬-----┬-----┐
│ 4 │ │ │ │
├-----┼-----┼-----┼-----┤
│ │ │ │ 4 │
├-----┼-----┼-----┼-----┤
│ │ │ 4 │ 4 │
├-----┼-----┼-----┼-----┤
│ │ 4 │ 8 │ 2 │
└-----┴-----┴-----┴-----┘
step :9 score:20(←:a/h ↓: s/j ↑: w/k →: d/l ,q(uit),b(ack)):d
8
┌-----┬-----┬-----┬-----┐
│ │ │ 4 │ │
├-----┼-----┼-----┼-----┤
│ │ │ │ 4 │
├-----┼-----┼-----┼-----┤
│ │ │ │ 8 │
├-----┼-----┼-----┼-----┤
│ 2 │ 4 │ 8 │ 2 │
└-----┴-----┴-----┴-----┘
step :10 score:28(←:a/h ↓: s/j ↑: w/k →: d/l ,q(uit),b(ack)):s
0
┌-----┬-----┬-----┬-----┐
│ │ │ │ │
├-----┼-----┼-----┼-----┤
│ 2 │ │ │ 4 │
├-----┼-----┼-----┼-----┤
│ │ │ 4 │ 8 │
├-----┼-----┼-----┼-----┤
│ 2 │ 4 │ 8 │ 2 │
└-----┴-----┴-----┴-----┘
step :11 score:28(←:a/h ↓: s/j ↑: w/k →: d/l ,q(uit),b(ack)):s
0
┌-----┬-----┬-----┬-----┐
│ │ │ │ │
├-----┼-----┼-----┼-----┤
│ │ │ │ 4 │
├-----┼-----┼-----┼-----┤
│ 2 │ 4 │ 4 │ 8 │
├-----┼-----┼-----┼-----┤
│ 2 │ 4 │ 8 │ 2 │
└-----┴-----┴-----┴-----┘
step :12 score:28(←:a/h ↓: s/j ↑: w/k →: d/l ,q(uit),b(ack)):s
12
┌-----┬-----┬-----┬-----┐
│ │ │ │ │
├-----┼-----┼-----┼-----┤
│ 4 │ │ │ 4 │
├-----┼-----┼-----┼-----┤
│ │ │ 4 │ 8 │
├-----┼-----┼-----┼-----┤
│ 4 │ 8 │ 8 │ 2 │
└-----┴-----┴-----┴-----┘
step :13 score:40(←:a/h ↓: s/j ↑: w/k →: d/l ,q(uit),b(ack)):d
16
┌-----┬-----┬-----┬-----┐
│ │ │ │ │
├-----┼-----┼-----┼-----┤
│ │ 4 │ 4 │ 4 │
├-----┼-----┼-----┼-----┤
│ │ │ 4 │ 8 │
├-----┼-----┼-----┼-----┤
│ │ 4 │ 16 │ 2 │
└-----┴-----┴-----┴-----┘
step :14 score:56(←:a/h ↓: s/j ↑: w/k →: d/l ,q(uit),b(ack)):s
8
┌-----┬-----┬-----┬-----┐
│ │ │ │ │
├-----┼-----┼-----┼-----┤
│ │ │ │ 4 │
├-----┼-----┼-----┼-----┤
│ 2 │ 4 │ 8 │ 8 │
├-----┼-----┼-----┼-----┤
│ │ 4 │ 16 │ 2 │
└-----┴-----┴-----┴-----┘
step :15 score:64(←:a/h ↓: s/j ↑: w/k →: d/l ,q(uit),b(ack)):s
8
┌-----┬-----┬-----┬-----┐
│ │ │ │ │
├-----┼-----┼-----┼-----┤
│ │ │ 2 │ 4 │
├-----┼-----┼-----┼-----┤
│ │ │ 8 │ 8 │
├-----┼-----┼-----┼-----┤
│ 2 │ 8 │ 16 │ 2 │
└-----┴-----┴-----┴-----┘
step :16 score:72(←:a/h ↓: s/j ↑: w/k →: d/l ,q(uit),b(ack)):d
16
┌-----┬-----┬-----┬-----┐
│ 4 │ │ │ │
├-----┼-----┼-----┼-----┤
│ │ │ 2 │ 4 │
├-----┼-----┼-----┼-----┤
│ │ │ │ 16 │
├-----┼-----┼-----┼-----┤
│ 2 │ 8 │ 16 │ 2 │
└-----┴-----┴-----┴-----┘
step :17 score:88(←:a/h ↓: s/j ↑: w/k →: d/l ,q(uit),b(ack)):s
0
┌-----┬-----┬-----┬-----┐
│ │ │ │ 2 │
├-----┼-----┼-----┼-----┤
│ │ │ │ 4 │
├-----┼-----┼-----┼-----┤
│ 4 │ │ 2 │ 16 │
├-----┼-----┼-----┼-----┤
│ 2 │ 8 │ 16 │ 2 │
└-----┴-----┴-----┴-----┘
step :18 score:88(←:a/h ↓: s/j ↑: w/k →: d/l ,q(uit),b(ack)):d
0
┌-----┬-----┬-----┬-----┐
│ │ │ │ 2 │
├-----┼-----┼-----┼-----┤
│ │ │ 4 │ 4 │
├-----┼-----┼-----┼-----┤
│ │ 4 │ 2 │ 16 │
├-----┼-----┼-----┼-----┤
│ 2 │ 8 │ 16 │ 2 │
└-----┴-----┴-----┴-----┘
step :19 score:88(←:a/h ↓: s/j ↑: w/k →: d/l ,q(uit),b(ack)):d
8
┌-----┬-----┬-----┬-----┐
│ │ │ │ 2 │
├-----┼-----┼-----┼-----┤
│ │ │ 2 │ 8 │
├-----┼-----┼-----┼-----┤
│ │ 4 │ 2 │ 16 │
├-----┼-----┼-----┼-----┤
│ 2 │ 8 │ 16 │ 2 │
└-----┴-----┴-----┴-----┘
step :20 score:96(←:a/h ↓: s/j ↑: w/k →: d/l ,q(uit),b(ack)):s
4
┌-----┬-----┬-----┬-----┐
│ │ │ │ 2 │
├-----┼-----┼-----┼-----┤
│ │ │ │ 8 │
├-----┼-----┼-----┼-----┤
│ 2 │ 4 │ 4 │ 16 │
├-----┼-----┼-----┼-----┤
│ 2 │ 8 │ 16 │ 2 │
└-----┴-----┴-----┴-----┘
step :21 score:100(←:a/h ↓: s/j ↑: w/k →: d/l ,q(uit),b(ack)):d
8
┌-----┬-----┬-----┬-----┐
│ │ │ │ 2 │
├-----┼-----┼-----┼-----┤
│ │ │ 4 │ 8 │
├-----┼-----┼-----┼-----┤
│ │ 2 │ 8 │ 16 │
├-----┼-----┼-----┼-----┤
│ 2 │ 8 │ 16 │ 2 │
└-----┴-----┴-----┴-----┘
step :22 score:108(←:a/h ↓: s/j ↑: w/k →: d/l ,q(uit),b(ack)):a
0
┌-----┬-----┬-----┬-----┐
│ 2 │ │ │ │
├-----┼-----┼-----┼-----┤
│ 4 │ 8 │ │ │
├-----┼-----┼-----┼-----┤
│ 2 │ 8 │ 16 │ 4 │
├-----┼-----┼-----┼-----┤
│ 2 │ 8 │ 16 │ 2 │
└-----┴-----┴-----┴-----┘
step :23 score:108(←:a/h ↓: s/j ↑: w/k →: d/l ,q(uit),b(ack)):s
52
┌-----┬-----┬-----┬-----┐
│ │ │ │ │
├-----┼-----┼-----┼-----┤
│ 2 │ │ │ 4 │
├-----┼-----┼-----┼-----┤
│ 4 │ 8 │ │ 4 │
├-----┼-----┼-----┼-----┤
│ 4 │ 16 │ 32 │ 2 │
└-----┴-----┴-----┴-----┘
step :24 score:160(←:a/h ↓: s/j ↑: w/k →: d/l ,q(uit),b(ack)):s
16
┌-----┬-----┬-----┬-----┐
│ │ │ │ │
├-----┼-----┼-----┼-----┤
│ │ │ │ 2 │
├-----┼-----┼-----┼-----┤
│ 2 │ 8 │ │ 8 │
├-----┼-----┼-----┼-----┤
│ 8 │ 16 │ 32 │ 2 │
└-----┴-----┴-----┴-----┘
step :25 score:176(←:a/h ↓: s/j ↑: w/k →: d/l ,q(uit),b(ack)):d
0
┌-----┬-----┬-----┬-----┐
│ │ │ │ │
├-----┼-----┼-----┼-----┤
│ │ │ │ 2 │
├-----┼-----┼-----┼-----┤
│ 4 │ 2 │ 8 │ 8 │
├-----┼-----┼-----┼-----┤
│ 8 │ 16 │ 32 │ 2 │
└-----┴-----┴-----┴-----┘
step :26 score:176(←:a/h ↓: s/j ↑: w/k →: d/l ,q(uit),b(ack)):d
16
┌-----┬-----┬-----┬-----┐
│ │ │ │ │
├-----┼-----┼-----┼-----┤
│ │ 2 │ │ 2 │
├-----┼-----┼-----┼-----┤
│ │ 4 │ 2 │ 16 │
├-----┼-----┼-----┼-----┤
│ 8 │ 16 │ 32 │ 2 │
└-----┴-----┴-----┴-----┘
step :27 score:192(←:a/h ↓: s/j ↑: w/k →: d/l ,q(uit),b(ack)):d
0
┌-----┬-----┬-----┬-----┐
│ │ │ │ 2 │
├-----┼-----┼-----┼-----┤
│ │ │ 2 │ 2 │
├-----┼-----┼-----┼-----┤
│ │ 4 │ 2 │ 16 │
├-----┼-----┼-----┼-----┤
│ 8 │ 16 │ 32 │ 2 │
└-----┴-----┴-----┴-----┘
step :28 score:192(←:a/h ↓: s/j ↑: w/k →: d/l ,q(uit),b(ack)):d
4
┌-----┬-----┬-----┬-----┐
│ │ │ │ 2 │
├-----┼-----┼-----┼-----┤
│ │ 4 │ │ 4 │
├-----┼-----┼-----┼-----┤
│ │ 4 │ 2 │ 16 │
├-----┼-----┼-----┼-----┤
│ 8 │ 16 │ 32 │ 2 │
└-----┴-----┴-----┴-----┘
step :29 score:196(←:a/h ↓: s/j ↑: w/k →: d/l ,q(uit),b(ack)):d
0
┌-----┬-----┬-----┬-----┐
│ │ │ 4 │ 2 │
├-----┼-----┼-----┼-----┤
│ │ │ 4 │ 4 │
├-----┼-----┼-----┼-----┤
│ │ 4 │ 2 │ 16 │
├-----┼-----┼-----┼-----┤
│ 8 │ 16 │ 32 │ 2 │
└-----┴-----┴-----┴-----┘
step :30 score:196(←:a/h ↓: s/j ↑: w/k →: d/l ,q(uit),b(ack)):s
8
┌-----┬-----┬-----┬-----┐
│ │ 4 │ │ 2 │
├-----┼-----┼-----┼-----┤
│ │ │ 8 │ 4 │
├-----┼-----┼-----┼-----┤
│ │ 4 │ 2 │ 16 │
├-----┼-----┼-----┼-----┤
│ 8 │ 16 │ 32 │ 2 │
└-----┴-----┴-----┴-----┘
step :31 score:204(←:a/h ↓: s/j ↑: w/k →: d/l ,q(uit),b(ack)):s
8
┌-----┬-----┬-----┬-----┐
│ │ │ 2 │ 2 │
├-----┼-----┼-----┼-----┤
│ │ │ 8 │ 4 │
├-----┼-----┼-----┼-----┤
│ │ 8 │ 2 │ 16 │
├-----┼-----┼-----┼-----┤
│ 8 │ 16 │ 32 │ 2 │
└-----┴-----┴-----┴-----┘
step :32 score:212(←:a/h ↓: s/j ↑: w/k →: d/l ,q(uit),b(ack)):d
4
┌-----┬-----┬-----┬-----┐
│ │ 4 │ │ 4 │
├-----┼-----┼-----┼-----┤
│ │ │ 8 │ 4 │
├-----┼-----┼-----┼-----┤
│ │ 8 │ 2 │ 16 │
├-----┼-----┼-----┼-----┤
│ 8 │ 16 │ 32 │ 2 │
└-----┴-----┴-----┴-----┘
step :33 score:216(←:a/h ↓: s/j ↑: w/k →: d/l ,q(uit),b(ack)):d
0
┌-----┬-----┬-----┬-----┐
│ │ │ 4 │ 4 │
├-----┼-----┼-----┼-----┤
│ 4 │ │ 8 │ 4 │
├-----┼-----┼-----┼-----┤
│ │ 8 │ 2 │ 16 │
├-----┼-----┼-----┼-----┤
│ 8 │ 16 │ 32 │ 2 │
└-----┴-----┴-----┴-----┘
step :34 score:216(←:a/h ↓: s/j ↑: w/k →: d/l ,q(uit),b(ack)):d
8
┌-----┬-----┬-----┬-----┐
│ │ │ 4 │ 8 │
├-----┼-----┼-----┼-----┤
│ │ 4 │ 8 │ 4 │
├-----┼-----┼-----┼-----┤
│ │ 8 │ 2 │ 16 │
├-----┼-----┼-----┼-----┤
│ 8 │ 16 │ 32 │ 2 │
└-----┴-----┴-----┴-----┘
step :35 score:224(←:a/h ↓: s/j ↑: w/k →: d/l ,q(uit),b(ack)):a
0
┌-----┬-----┬-----┬-----┐
│ 4 │ 8 │ │ 4 │
├-----┼-----┼-----┼-----┤
│ 4 │ 8 │ 4 │ │
├-----┼-----┼-----┼-----┤
│ 8 │ 2 │ 16 │ │
├-----┼-----┼-----┼-----┤
│ 8 │ 16 │ 32 │ 2 │
└-----┴-----┴-----┴-----┘
step :36 score:224(←:a/h ↓: s/j ↑: w/k →: d/l ,q(uit),b(ack)):s
32
┌-----┬-----┬-----┬-----┐
│ │ 2 │ │ │
├-----┼-----┼-----┼-----┤
│ 4 │ 16 │ 4 │ │
├-----┼-----┼-----┼-----┤
│ 4 │ 2 │ 16 │ 4 │
├-----┼-----┼-----┼-----┤
│ 16 │ 16 │ 32 │ 2 │
└-----┴-----┴-----┴-----┘
step :37 score:256(←:a/h ↓: s/j ↑: w/k →: d/l ,q(uit),b(ack)):s
8
┌-----┬-----┬-----┬-----┐
│ │ 2 │ 4 │ │
├-----┼-----┼-----┼-----┤
│ │ 16 │ 4 │ │
├-----┼-----┼-----┼-----┤
│ 8 │ 2 │ 16 │ 4 │
├-----┼-----┼-----┼-----┤
│ 16 │ 16 │ 32 │ 2 │
└-----┴-----┴-----┴-----┘
step :38 score:264(←:a/h ↓: s/j ↑: w/k →: d/l ,q(uit),b(ack)):s
8
┌-----┬-----┬-----┬-----┐
│ │ 2 │ │ │
├-----┼-----┼-----┼-----┤
│ 4 │ 16 │ 8 │ │
├-----┼-----┼-----┼-----┤
│ 8 │ 2 │ 16 │ 4 │
├-----┼-----┼-----┼-----┤
│ 16 │ 16 │ 32 │ 2 │
└-----┴-----┴-----┴-----┘
step :39 score:272(←:a/h ↓: s/j ↑: w/k →: d/l ,q(uit),b(ack)):d
96
┌-----┬-----┬-----┬-----┐
│ │ │ 2 │ │
├-----┼-----┼-----┼-----┤
│ 2 │ 4 │ 16 │ 8 │
├-----┼-----┼-----┼-----┤
│ 8 │ 2 │ 16 │ 4 │
├-----┼-----┼-----┼-----┤
│ │ │ 64 │ 2 │
└-----┴-----┴-----┴-----┘
step :40 score:368(←:a/h ↓: s/j ↑: w/k →: d/l ,q(uit),b(ack)):a
0
┌-----┬-----┬-----┬-----┐
│ 2 │ │ │ │
├-----┼-----┼-----┼-----┤
│ 2 │ 4 │ 16 │ 8 │
├-----┼-----┼-----┼-----┤
│ 8 │ 2 │ 16 │ 4 │
├-----┼-----┼-----┼-----┤
│ 64 │ 2 │ │ 4 │
└-----┴-----┴-----┴-----┘
step :41 score:368(←:a/h ↓: s/j ↑: w/k →: d/l ,q(uit),b(ack)):s
16
┌-----┬-----┬-----┬-----┐
│ │ 2 │ │ │
├-----┼-----┼-----┼-----┤
│ 4 │ │ │ │
├-----┼-----┼-----┼-----┤
│ 8 │ 4 │ 16 │ 8 │
├-----┼-----┼-----┼-----┤
│ 64 │ 4 │ 16 │ 8 │
└-----┴-----┴-----┴-----┘
step :42 score:384(←:a/h ↓: s/j ↑: w/k →: d/l ,q(uit),b(ack)):s
56
┌-----┬-----┬-----┬-----┐
│ 2 │ │ │ │
├-----┼-----┼-----┼-----┤
│ 4 │ │ │ │
├-----┼-----┼-----┼-----┤
│ 8 │ 2 │ │ │
├-----┼-----┼-----┼-----┤
│ 64 │ 8 │ 32 │ 16 │
└-----┴-----┴-----┴-----┘
step :43 score:440(←:a/h ↓: s/j ↑: w/k →: d/l ,q(uit),b(ack)):d
0
┌-----┬-----┬-----┬-----┐
│ │ │ 2 │ │
├-----┼-----┼-----┼-----┤
│ │ 4 │ 4 │ │
├-----┼-----┼-----┼-----┤
│ │ 8 │ 2 │ │
├-----┼-----┼-----┼-----┤
│ 64 │ 8 │ 32 │ 16 │
└-----┴-----┴-----┴-----┘
step :44 score:440(←:a/h ↓: s/j ↑: w/k →: d/l ,q(uit),b(ack)):a
8
┌-----┬-----┬-----┬-----┐
│ 2 │ 4 │ │ │
├-----┼-----┼-----┼-----┤
│ 8 │ │ │ │
├-----┼-----┼-----┼-----┤
│ 8 │ 2 │ │ │
├-----┼-----┼-----┼-----┤
│ 64 │ 8 │ 32 │ 16 │
└-----┴-----┴-----┴-----┘
step :45 score:448(←:a/h ↓: s/j ↑: w/k →: d/l ,q(uit),b(ack)):as
Illegal operation
step :45 score:448(←:a/h ↓: s/j ↑: w/k →: d/l ,q(uit),b(ack)):s
16
┌-----┬-----┬-----┬-----┐
│ │ 4 │ │ │
├-----┼-----┼-----┼-----┤
│ 2 │ 4 │ │ │
├-----┼-----┼-----┼-----┤
│ 16 │ 2 │ │ │
├-----┼-----┼-----┼-----┤
│ 64 │ 8 │ 32 │ 16 │
└-----┴-----┴-----┴-----┘
step :46 score:464(←:a/h ↓: s/j ↑: w/k →: d/l ,q(uit),b(ack)):s
8
┌-----┬-----┬-----┬-----┐
│ │ 2 │ │ │
├-----┼-----┼-----┼-----┤
│ 2 │ 8 │ │ │
├-----┼-----┼-----┼-----┤
│ 16 │ 2 │ │ │
├-----┼-----┼-----┼-----┤
│ 64 │ 8 │ 32 │ 16 │
└-----┴-----┴-----┴-----┘
step :47 score:472(←:a/h ↓: s/j ↑: w/k →: d/l ,q(uit),b(ack)):s
0
This nove has no efficient
step :47 score:472(←:a/h ↓: s/j ↑: w/k →: d/l ,q(uit),b(ack)):a
0
┌-----┬-----┬-----┬-----┐
│ 2 │ │ │ │
├-----┼-----┼-----┼-----┤
│ 2 │ 8 │ │ 2 │
├-----┼-----┼-----┼-----┤
│ 16 │ 2 │ │ │
├-----┼-----┼-----┼-----┤
│ 64 │ 8 │ 32 │ 16 │
└-----┴-----┴-----┴-----┘
step :48 score:472(←:a/h ↓: s/j ↑: w/k →: d/l ,q(uit),b(ack)):s
4
┌-----┬-----┬-----┬-----┐
│ │ │ │ │
├-----┼-----┼-----┼-----┤
│ 4 │ 8 │ │ │
├-----┼-----┼-----┼-----┤
│ 16 │ 2 │ 4 │ 2 │
├-----┼-----┼-----┼-----┤
│ 64 │ 8 │ 32 │ 16 │
└-----┴-----┴-----┴-----┘
step :49 score:476(←:a/h ↓: s/j ↑: w/k →: d/l ,q(uit),b(ack)):