http://yaksok.org/


약속"빈칸 찾기" 빈칸들:[] 결과: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 숫자 마다 아무것도안함: 만약 (판 왼쪽으로) 이면 "왼" 보여주기 판 랜덤 생성 판 출력 아무것도안함:거짓 만약 (판 아래로) 이면 "아" 보여주기 판 랜덤 생성 판 출력 아무것도안함:거짓 만약 아무것도안함 이면 만약 (판 오른쪽으로) 이면 "오" 보여주기 판 랜덤 생성 판 출력 아무것도안함:거짓 만약 아무것도안함 이면 만약 (판 위로) 이면 "위" 보여주기 판 랜덤 생성 판 출력 아무것도안함:거짓

폰트:[

"*** * *** *** * * *** * *** *** ***", "* * * * * * * * * * * * * *", "* * * *** *** *** *** *** * *** ***", "* * * * * * * * * * * * *", "*** * *** *** * *** *** * *** *", ] 약속 가로 세로"에" 글자색 숫자 "그리기" 반복 1~3 가로위치 마다 반복 1~5 세로위치 마다 만약 폰트[세로위치][숫자*4+가로위치] = "*" 이면 가로+가로위치-2 세로+세로위치-3 에 글자색 점 찍기 # 좌우 여백 2 + 테두리 2 + 글자 크기 4 * 4개 + 홀수로 만들기 위한 1 + 타일간 간격 1 타일간격:2+2+4*4+1+1 하얀색:[255,255,255] 약속 가로 세로"부터" 길이"의 가로선 그리기" 반복 1~길이 위치 마다 가로+위치-1 세로 에 하얀색 점 찍기 약속 가로 세로"부터" 길이"의 세로선 그리기" 반복 1~길이 위치 마다 가로 세로+위치-1 에 하얀색 점 찍기 약속 가로 세로"에" 숫자 "타일 그리기" 커짐 나타남 가로:이전 가로*타일간격+1 세로:이전 세로*타일간격+1 추가간격:0 만약 커짐 이면 추가간격:1 만약 나타남 이면 추가간격:-3 # 사각형 부분 그리기 선길이:타일간격+추가간격*2-1 가로-추가간격 세로-추가간격 부터 선길이 의 가로선 그리기 가로-추가간격 세로-추가간격 부터 선길이 의 세로선 그리기 가로-추가간격 세로+추가간격+타일간격-2 부터 선길이 의 가로선 그리기 가로+추가간격+타일간격-2 세로-추가간격 부터 선길이 의 세로선 그리기 H:210+120-((로그 숫자)-1)*22 만약 H < 0 이면 H:0 배경색:HSV ([H, 1, 1]) 에서 RGB로 만약 숫자 = 2048 이면 배경색:[255, 255, 0] 배경크기:타일간격+추가간격*2-3 가로-추가간격+1 세로-추가간격+1 에 배경크기 배경색 면 칠하기 만약 나타남 이면 약속 그만 # 숫자 부분 그리기 가로중앙:가로 + (타일간격-2)/2 세로중앙:세로 + (타일간격-2)/2 너비: (숫자 문자열로 길이)*4 글자위치:0 반복 (숫자 문자열로) 글자 마다 (가로중앙-너비/2+글자위치*4+2) 세로중앙 에 하얀색 (글자 숫자로) 그리기 글자위치:이전 글자위치+1

위 소스코드들은 다음 2048게임의 코드임. 웹에서 바로 플레이 가능. 

헤이 츄라이츄라이

http://yaksok.github.io/2048/


아희 만들었던 퍼즐릿청과 별 2000개 넘게 받은 오픈 소스 프로젝트 crow 만든 하재승씨가 같이 만든 한글 프로그래밍 언어

한글 어순처럼 보이고, 자연스럽게 읽히도록 열심히 노오오력했다고 함

생각하던게 이미 있더라... 기여하고 싶어지는 그러한 오픈소오스이다.

https://github.com/yaksok/yaksok