약속"빈칸 찾기"
    빈칸들:[]
    결과:0
    반복 1~16  위치 마다
        만약 판[위치]=0 이면
            빈칸들 뒤에 위치 추가
    만약 (빈칸들 길이) > 0 이면
        결과:빈칸들 랜덤 선택

약속"랜덤 생성"
    새_숫자:2
    만약 (1~10 랜덤 선택) = 10 이면
        새_숫자:4
    위치:판 빈칸 찾기
    만약 위치 = 0 이면
        결과:거짓
        약속 그만
    결과:
    판[위치]:[새_숫자, [-1]]

약속 "새 게임 준비"
    #결과: [[32768,[-1]],[16384,[-1]],[8192,[-1]],[4096,[-1]], [256,[-1]],[512,[-1]],[1024, [-1]],[2048, [-1]], [128,[-1]],[64,[-1]],[32,[-1]],[16,[-1]], [2,[-1]],[2,[-1]],[4,[-1]],[8,[-1]]]
    결과:[0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0]
    반복 1~2  숫자 마다
        결과 랜덤 생성

약속 판 세로방향 가로방향 "이동"
    결과:거짓
    합쳐짐:[0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0]
    순서:1~16
    만약 가로방향 > 0 또는 세로방향 > 0 이면
        순서:순서 뒤집기
    반복 순서  위치 마다
        만약 판[위치] = 0 이면
            반복 다시
        판[위치][2]: [위치]

        # 움직일 블록이 있다
        다음위치:위치
        합쳐야함:거짓

        가로위치:(위치-1)%4+1
        세로위치:(위치-가로위치)/4+1

        # 이동할 위치를 찾고, 겹쳐져야 하는지 판단
        반복
            이동할위치:다음위치
            다음위치:다음위치 + 가로방향 + 세로방향*4
            세로위치:세로위치 + 세로방향
            가로위치:가로위치 + 가로방향
            만약 가로위치 < 1 또는 가로위치 > 4 이면
                반복 그만
            만약 세로위치 < 1 또는 세로위치 > 4 이면
                반복 그만
            만약 판[다음위치] != 0 이면
                만약 합쳐짐[다음위치] = 0 이고 판[다음위치][1] = 판[위치][1] 이면
                    합쳐야함:
                    합쳐짐[다음위치]:1
                반복 그만

        만약 합쳐야함 이면
            판[위치]:0
            판[다음위치][1]:판[다음위치][1]*2
            판[다음위치][2] 뒤에 위치 추가
            결과:
        아니면서 만약 위치 != 이동할위치 이면
            판[이동할위치]:판[위치]
            판[이동할위치][2]:[위치]
            판[위치]:0
            결과:


약속"왼쪽으로"
    결과:0 (-1) 이동
약속"오른쪽으로"
    결과:0 1 이동
약속"위로"
    결과:판 (-1) 0 이동
약속"아래로"
    결과:1 0 이동

약속"출력"
    반복 1~4 마다
        판[(줄-1)*4+1~*4] 보여주기
    "" 보여주기

약속 "테스트":새 게임 준비

    판 출력

    반복 1~100  숫자 마다
        아무것도안함:
        만약 (판 왼쪽으로) 이면
            "왼" 보여주기
            판 랜덤 생성
            판 출력
            아무것도안함:거짓

        만약 (판 아래로) 이면
            "아" 보여주기
            판 랜덤 생성
            판 출력
            아무것도안함:거짓

        만약 아무것도안함 이면
            만약 (판 오른쪽으로) 이면
                "오" 보여주기
                판 랜덤 생성
                판 출력
                아무것도안함:거짓

        만약 아무것도안함 이면
            만약 (판 위로) 이면
                "위" 보여주기
                판 랜덤 생성
                판 출력
                아무것도안함:거짓