Python 2048 小游戏 ,但是人生不能儿戏,与君共勉
来源:互联网 发布:俞莲舟 精华 知乎 编辑:程序博客网 时间:2024/06/06 04:00
Python 一直被炒得热火朝天,就像这炙热的天气,也像老谭酸菜 或是那茅台愈久弥香 也像洋槐花清新淡雅
一下代码参考 文章 http://www.tuicool.com/articles/YNzqu2j 实现 ,代码还需要优化 ,不是效率 ,是功能不完善
一点心得 就是 Python 功能强悍
# -*- encoding:utf-8 -*-import randomimport copydef 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 functiondef 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 scoredef 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]=ndef 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 Falsedeclare = "←: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)):
- Python 2048 小游戏 ,但是人生不能儿戏,与君共勉
- 与君共勉
- 与君共勉
- 与君共勉
- 与君共勉
- 2016 与君共勉
- 佛家妙语 与君共勉
- 即可出发 与君共勉
- 鸡汤一碗 与君共勉
- 关于自卑,与君共勉
- Python实现小游戏--2048
- python版2048小游戏
- Python 2048小游戏
- 天助自助者----与君共勉
- 与君共勉,一个程序员的心得
- 原创哲学诗,与君共勉
- 【与君共勉】省选加油!
- 曾国藩格言与众君共勉
- HashMap与垃圾回收
- 03_servlet生命周期
- freemarker 数字格式化深入理解
- Java中的Filter过滤器
- 04_HttpServletResponse_响应对象的产生_响应数据
- Python 2048 小游戏 ,但是人生不能儿戏,与君共勉
- 磁盘的信息解析
- 05_HttpServletResponse_响应Html文档_显示书籍列表
- 梯度下降
- Java中的设计模式
- 06_HttpServletRequest_添加书籍
- C++二叉树的重要操作
- express-3-常用中间件
- 07_HttpServletRequest_请求重定向_请求转发