프로그램관련 기타

[게임]스도쿠 문제 생성 알고리즘

차돌이라네 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 의 글을 참고 해서 정리했습니다.


* 단, 본 알고리즘은 빈칸을 어떻게 생성하느냐에 따라 중복된 답이 발생할 수 있다. 다음 기회에 중복된 답이 나오지 않는 

다른 방식의 알고리즘을 포스팅 해야겠다.