약속 판 "빈칸 찾기"
빈칸들:[]
결과:0
반복 1~16 의 위치 마다
만약 판[위치]=0 이면
빈칸들 뒤에 위치 추가
만약 (빈칸들 길이) > 0 이면
결과:빈칸들 랜덤 선택
약속 판 "랜덤 생성"
새_숫자:2
만약 (1~10 랜덤 선택) = 10 이면
새_숫자:4
위치:판 빈칸 찾기
만약 위치 = 0 이면
결과:거짓
약속 그만
결과:참
판[위치]:[새_숫자, [-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 의 숫자 마다
아무것도안함:참
만약 (판 왼쪽으로) 이면
"왼" 보여주기
판 랜덤 생성
판 출력
아무것도안함:거짓
만약 (판 아래로) 이면
"아" 보여주기
판 랜덤 생성
판 출력
아무것도안함:거짓
만약 아무것도안함 이면
만약 (판 오른쪽으로) 이면
"오" 보여주기
판 랜덤 생성
판 출력
아무것도안함:거짓
만약 아무것도안함 이면
만약 (판 위로) 이면
"위" 보여주기
판 랜덤 생성
판 출력
아무것도안함:거짓