반응형
슬라이딩 퍼즐 게임 만들기 #4/4 (완성 및 리팩토링) 포스팅 썸네일 이미지

프로그래밍/JavaScript 게임 개발

슬라이딩 퍼즐 게임 만들기 #4/4 (완성 및 리팩토링)

정답 확인 함수 생성 타일 객체는 answerIndex 와 currentIndex 변수를 가지고 있다. answerIndex는 init() 함수에서 타일 생성시 for문의 i값을 넣어주고 있는데 이 값이 자신의 정위치 인덱스 값이다. currentIndex는 현재 타일의 인덱스 값이므로 answerIndex와 currentIndex의 값이 동일하다면 해당 타일은 정위치에 있다고 볼 수 있다. 위 조건으로 모든 타일이 정위치에 있는지 체크 하는 함수를 하나 만들었다. 함수명은 checkAnswer 이다. 로직은 단순하다. bClear 란 이름의 boolean 타입 변수를 선언한다. 디폴트 값은 true 이다. 그 다음 for문에서는 각 타일이 정위치 인지 판단한다. 만약 하나라도 정위치가 아니라면 for문..

2024.01.12 게시됨

슬라이딩 퍼즐 게임 만들기 #3/4 (타일 섞기) 포스팅 썸네일 이미지

프로그래밍/JavaScript 게임 개발

슬라이딩 퍼즐 게임 만들기 #3/4 (타일 섞기)

셔플 조건 타일의 움직임을 구현했으니 이제 섞기(Shuffle)을 구현할 차례이다. 언뜻 생각하면 타일의 순서를 아무렇게나 섞으면 될것 같지만 그렇게 하면 안 된다. 슬라이딩 퍼즐은 다음과 같은 조건이 있다. 출처는 나무위키다. NxN의 형태로 배치하였고, '자신보다 큰 수가 자신의 앞에 있는 개수'의 합계가 I이며, 빈 칸에 해당하는 X가 있을 떄 다음과 같다. N이 홀수, I가 짝수이면 풀 수 있는 배치. N이 짝수, X가 맨 아래 짝수 칸, I가 홀수이면 풀 수 있는 배치. N이 짝수, X가 맨 아래 홀수 칸, I가 짝수이면 풀 수 있는 배치. 그 외에는 전부 불가능. 정말로 불가능한지 테스트 해보자. 아래와 같이 코드를 수정하여 타일 순서를 의도적으로 바꿔 진행해 본다. testArr 배열을 하나..

2024.01.05 게시됨

반응형