zoukankan      html  css  js  c++  java
  • Python 2048 小游戏 ,但是人生不能儿戏,与君共勉

    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:Python27python.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)):


  • 相关阅读:
    android.os.FileUriExposedException: exposed beyond app through ClipData.Item.getUri()踩坑记录
    【Android】 recycleview显示空白踩坑
    eclipse导入新项目,文件没有报错,但项目名一直报红
    【原因分析】The superclass "javax.servlet.http.HttpServlet" was not found on the Java Bu
    SSM框架的搭建-xml文件报错-.xsd文件缺失
    命令行安装matplotlib中遇到问题及解决(简单记录)
    eclipse里tomcat子容器缺失解决
    导入javaFX
    ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
    eclipse左边目录(Project Explorer)不小心删除后怎么找回来
  • 原文地址:https://www.cnblogs.com/TendToBigData/p/10501235.html
Copyright © 2011-2022 走看看