프로그램관련 기타
[게임]스도쿠 문제 생성 알고리즘
차돌이라네
2013. 10. 28. 22:12
#스도쿠 문제 생성 알고리즘(9 X 9 퍼즐)
9 X 9 퍼즐의 경우 3 X 3 퍼즐이 다시 가로3, 세로 3칸으로 만들어 진다.
(1) 퍼즐 만드는 순서
S0 의 3X3 에 1~9의 숫자를 랜덤하게 배치한다.
예로 아래와 같이 배치를 해 보자.
(2) S1 ~ S8 에 들어 갈 퍼즐을 아래의 공식에 따라 행렬 곱셈을 하여 대입 시킨다.
- 각 퍼즐에 들어가는 계산식에는 행렬 X1, X2 가 필요하다.
- S1 = X2 * S0
- S2 = X1 * S0
- S3 = S0 * X1
- S4 = X2 * S0 * X1
- S5 = X1 * S0 * X1
- S6 = S0 * X2
- S7 = X2 * S0 * X2
- S8 = X1 * S0 * X2
(3) 위의 그림과 같이 나온 결과 값을 배치 해 보자. 스도쿠 문제 생성 알고리즘은 완료
* 본 내용은 http://www.cyworld.com/vbman/3359600 의 글을 참고 해서 정리했습니다.
* 단, 본 알고리즘은 빈칸을 어떻게 생성하느냐에 따라 중복된 답이 발생할 수 있다. 다음 기회에 중복된 답이 나오지 않는
다른 방식의 알고리즘을 포스팅 해야겠다.