KR101111451B1 - 스도쿠 문제 생성 방법, 스도쿠 문제 검사 방법 및 스도쿠 문제 생성 장치, 그 기록 매체 - Google Patents

스도쿠 문제 생성 방법, 스도쿠 문제 검사 방법 및 스도쿠 문제 생성 장치, 그 기록 매체 Download PDF

Info

Publication number
KR101111451B1
KR101111451B1 KR1020090096750A KR20090096750A KR101111451B1 KR 101111451 B1 KR101111451 B1 KR 101111451B1 KR 1020090096750 A KR1020090096750 A KR 1020090096750A KR 20090096750 A KR20090096750 A KR 20090096750A KR 101111451 B1 KR101111451 B1 KR 101111451B1
Authority
KR
South Korea
Prior art keywords
matrix
sudoku
extension
generating
solution
Prior art date
Application number
KR1020090096750A
Other languages
English (en)
Other versions
KR20110039765A (ko
Inventor
이용규
Original Assignee
동국대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 동국대학교 산학협력단 filed Critical 동국대학교 산학협력단
Priority to KR1020090096750A priority Critical patent/KR101111451B1/ko
Publication of KR20110039765A publication Critical patent/KR20110039765A/ko
Application granted granted Critical
Publication of KR101111451B1 publication Critical patent/KR101111451B1/ko

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/80Special adaptations for executing a specific game genre or game mode
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F3/00Board games; Raffle games
    • A63F3/04Geographical or like games ; Educational games
    • A63F3/0415Number games
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F3/00Board games; Raffle games
    • A63F3/04Geographical or like games ; Educational games
    • A63F3/0415Number games
    • A63F2003/0418Number games with a grid, e.g. 'Sudoku'-type games

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Tourism & Hospitality (AREA)
  • Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Algebra (AREA)
  • Economics (AREA)
  • General Health & Medical Sciences (AREA)
  • Educational Technology (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Complex Calculations (AREA)

Abstract

스도쿠 문제 생성 방법, 스도쿠 문제 검사 방법 및 스도쿠 문제 생성 장치, 그 기록 매체가 개시된다. 본 발명의 일 실시 예에 따른 스도쿠 문제 생성 방법은 스도쿠 규칙에 따른 기초 소행렬의 각 셀에 확장 변환식에 따른 상수를 더하여 복수의 소행렬들을 생성하는 단계; 상기 복수의 소행렬들을 결합하여 확장 행렬을 생성하는 단계; 및 상기 생성된 확장 행렬이 상기 스도쿠 규칙에 따른 유일한 해답을 가질 때까지, 상기 확장 행렬의 셀 중 적어도 하나에 상기 스도쿠 규칙에 따른 힌트를 추가하거나 삭제하여 스도쿠 행렬을 생성하는 단계를 포함한다.

Description

스도쿠 문제 생성 방법, 스도쿠 문제 검사 방법 및 스도쿠 문제 생성 장치, 그 기록 매체 {Method for generating and inspecting sudoku problem and Apparatus for generating sudoku problem, and Recording medium thereof}
본 발명은 숫자 퍼즐의 설계 알고리즘에 관한 것으로, 특히, 스도쿠 문제 생성 방법, 스도쿠 문제 검사 방법 및 스도쿠 문제 생성 장치, 그 기록 매체에 관한 것이다.
스도쿠는 가로와 세로가 n칸인 정사각형 모양의 숫자 퍼즐이다. 일반적으로는, 가로 세로 9칸인 정사각형 모양의 빈 칸에 1부터 9까지 아홉 개의 숫자를 적당히 넣어 다음 세 조건을 만족하게 하는 것이다. 첫째, 어떤 가로줄에도 같은 숫자가 나타나지 않는다. 바꿔 말하면, 어떤 가로줄에도 1부터 9까지 아홉 개의 숫자가 모두 나타난다. 둘째, 어떤 세로줄에도 같은 숫자가 나타나지 않는다. 즉, 어떤 세로줄에도 아홉 개의 숫자가 모두 나타난다. 셋째, 굵은 테두리를 두른, 가로 세로 3칸인 작은 정사각형에도 같은 숫자가 나타나지 않는다. 즉, 아홉 개의 숫자가 모두 나타난다.
스도쿠는 처음 몇 개의 칸에 숫자를 주고서 나머지 칸을 규칙에 따라 채우는 것이다. 당연한 일이지만, 처음에 아무렇게나 숫자를 주어서는 칸을 채울 수 없는 경우가 있다. 따라서, 스도쿠를 푸는 것이 쉬운 일이 아니지만, 만드는 것도 쉬운 일이 아니다. 또, 어떤 스도쿠는 처음에 공개하는 숫자가 아주 많으면서도 둘 이상의 풀이가 존재하기도 한다.
이런 이유로 스도쿠는 유일한 풀이가 존재하도록 만드는 것이 원칙이다. 그렇다고 처음부터 너무 많은 숫자를 공개하면 푸는 재미가 줄어들어서, 되도록 적은 힌트를 주는 쪽이 더 어려운 문제라고 할 수 있다.
스도쿠에서 각 숫자는 각 행과 각 열에서 한번씩만 사용되는데, 숫자대신 모양을 채우도록 할 수도 있다.
본 발명이 이루고자 하는 첫 번째 기술적 과제는 설계가 용이하지 않은 스도쿠 문제를 간편하게 생성할 수 있고, 문제의 확장이 용이한 스도쿠 문제 생성 방법을 제공하는 데 있다.
본 발명이 이루고자 하는 두 번째 기술적 과제는 주어진 스도쿠 문제들이 동종 문제인지를 쉽게 확인할 수 있는 스도쿠 문제 검사 방법을 제공하는 데 있다.
본 발명이 이루고자 하는 세 번째 기술적 과제는 설계가 용이하지 않은 스도쿠 문제를 간편하게 생성할 수 있고, 문제의 확장이 용이한 스도쿠 문제 생성 장치를 제공하는 데 있다.
본 발명이 이루고자 하는 네 번째 기술적 과제는 상기 스도쿠 문제 생성 방법 또는 상기 스도쿠 문제 검사 방법을 컴퓨터 시스템에서 실행하기 위한 프로그램이 기록된 매체로서, 컴퓨터 시스템이 판독할 수 있는 기록매체를 제공하는 데 있다.
상기의 첫 번째 기술적 과제를 이루기 위하여, 본 발명의 일 실시 예에 따른 스도쿠 문제 생성 방법은 스도쿠 규칙에 따른 기초 소행렬의 각 셀에 확장 변환식에 따른 상수를 더하여 복수의 소행렬들을 생성하는 단계; 상기 복수의 소행렬들을 결합하여 확장 행렬을 생성하는 단계; 및 상기 생성된 확장 행렬이 상기 스도쿠 규칙에 따른 유일한 해답을 가질 때까지, 상기 확장 행렬의 셀 중 적어도 하나에 상 기 스도쿠 규칙에 따른 힌트(문제에 공개되는 숫자나 도형)를 추가하여 스도쿠 행렬을 생성하는 단계를 포함한다.
본 발명의 다른 실시 예에 따른 스도쿠 문제 생성 방법은 스도쿠 규칙에 따른 스도쿠 문제의 해답을 나타내는 기초 해답 소행렬의 각 셀에 확장 변환식을 적용하여 복수의 소행렬들을 생성하는 단계; 상기 복수의 소행렬들을 결합하여 스도쿠 해답 행렬을 생성하는 단계; 상기 생성된 스도쿠 해답 행렬이 스도쿠 규칙에 따른 유일한 해답을 갖지 못할 때까지, 상기 스도쿠 해답 행렬의 셀을 삭제하는 단계; 및 상기 유일한 해답을 갖지 못하는 스도쿠 해답 행렬의 셀 중 적어도 하나에 상기 스도쿠 규칙에 따른 힌트를 추가하여 스도쿠 행렬을 생성하는 단계를 포함한다.
본 발명의 또 다른 실시 예에 따른 스도쿠 문제 생성 방법은 스도쿠 규칙에 따른 복수의 소행렬들을 입력받는 단계; 상기 복수의 소행렬들의 각 셀에 미리 선택된 상수를 더한 후, 상기 복수의 소행렬들을 결합하여 확장 행렬을 생성하는 단계; 및 상기 생성된 확장 행렬이 스도쿠 규칙에 따른 유일한 해답을 가질 때까지, 상기 확장 행렬의 셀 중 적어도 하나에 상기 스도쿠 규칙에 따른 힌트를 추가하거나 삭제하여 스도쿠 행렬을 생성하는 단계를 포함한다.
상기의 두 번째 기술적 과제를 이루기 위하여, 본 발명의 일 실시 예에 따른 스도쿠 문제 검사 방법은 기초 소행렬의 각 셀에 확장 변환식에 따른 상수를 더하여 복수의 소행렬들을 생성하는 단계; 상기 복수의 소행렬들을 결합하여 복수의 확장 행렬을 생성하는 단계; 검증하고자 하는 스도쿠 행렬을 입력받는 단계; 및 상기 입력받은 스도쿠 행렬을 상기 복수의 확장 행렬과 비교하여 서로 동종의 스도쿠 문제인지 여부를 판단하는 단계를 포함한다.
상기의 세 번째 기술적 과제를 이루기 위하여, 본 발명의 일 실시 예에 따른 스도쿠 문제 생성 장치는 복수의 기초 소행렬을 저장하는 문제풀 데이터베이스; 상기 문제풀 데이터베이스에서 복수의 기초 소행렬 중 어느 하나를 선택하고, 선택된 기초 소행렬의 각 셀에 확장 변환식에 따른 상수를 더하여 복수의 소행렬들을 생성하고, 상기 복수의 소행렬들을 결합하여 확장 행렬을 생성하는 확장 행렬 생성부; 및 상기 생성된 확장 행렬이 스도쿠 규칙에 따른 유일한 해답을 가질 때까지, 상기 확장 행렬의 셀 중 적어도 하나에 상기 스도쿠 규칙에 따른 힌트를 추가하거나 삭제하여 스도쿠 행렬을 생성하는 문제 생성부를 포함한다.
본 발명의 실시 예들에 의하면, 설계가 용이하지 않은 스도쿠 문제를 간편하게 생성할 수 있고, 문제의 확장이 용이하며, 주어진 문제들이 동종 문제인지를 쉽게 확인할 수 있다.
이하에서는 도면을 참조하여 본 발명의 바람직한 실시 예를 설명하기로 한다. 그러나, 다음에 예시하는 본 발명의 실시 예는 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 다음에 상술하는 실시 예에 한정되는 것은 아니다.
본 발명의 실시 예들에서는 스도쿠 문제가 n*n 행렬(M)로 표현되는데, 도 1은 9*9 행렬을 구성하는 9개의 박스(M11 ~ M33)를 보여준다.
도 2는 9*9 행렬을 이용한 스도쿠 문제와 해답의 예를 보여준다. 주어진 스도쿠 문제는 다음 방법으로 변형시켜 동종의 새로운 문제를 만들 수 있다. 동종의 문제란 원래의 문제(p)가 변형된 문제(p')로 바뀔 때, 같은 방법으로 원래 문제에 대한 정답(a)을 변형시켜 변형된 문제의 정답(a')을 얻을 수 있는 문제로 정의한다. 다음은 동종 문제를 만들어 낼 수 있는 방법의 예이다.
동종 문제를 만들기 위해 행렬의 숫자를 교환할 수 있다. 예를 들어, 행렬에서 숫자 5와 7을 서로 맞바꾼다. 또는, 행렬의 숫자를 모양으로, 또는 모양을 숫자로 치환할 수 있다. 또는, 행렬의 행을 서로 교환할 수 있다. 예를 들어, 각각의 박스 내에서 행들을 서로 교환할 수 있다. 또는, 행렬의 열을 서로 교환할 수 있다. 예를 들어, 각각의 박스 내에서 열들을 서로 교환할 수 있다.
도 3은 도 2의 문제와 해답으로부터 행 1과 2를 교환하고, 열 4와 5교환한 후의 문제의 예와 행 1과 2를 교환하고, 열 4와 5교환한 후의 해답의 예를 도시한 것이다.
동종 문제를 만들기 위해 행렬을 변환할 수도 있다. 첫째, 행렬의 가로 중심축에 대한 대칭행렬을 만들 수 있다. 예를 들어, M(i, j)가 9*9 행렬에서 i행 j열의 셀(원소)을 나타내는 경우(i와 j는 각각 행렬의 행과 열의 순서를 지칭하는 값으로 정수), 새로운 문제 행렬 M'는 문제 행렬 M으로부터 만들 수 있으며, 행렬의 각 셀 M'(10-i, j)의 값에 M(i,j)의 값을 할당하여 만들 수 있다. 즉, M'(10-i, j) ← M(i,j) 이다. 둘째, 행렬의 세로 중심축에 대한 대칭행렬을 만들 수 있다. 예를 들어, 9*9 행렬에서는 M'(i, 10-j) ← M(i,j) 일 수 있다. 셋째, 행렬의 전치행 렬(transpose matrix)을 만들 수 있다. 예를 들어, M'(j,i) ← M(i,j) 일 수 있다. 넷째, 행렬의 대각선축에 대한 대칭행렬을 만들 수 있다. 예를 들어, 9*9 행렬에서는 M'(10-j, 10-i) ← M(i,j) 일 수 있다. 이 외에도 행렬의 셀들을 교환하는 다양한 변환식을 사용할 수 있디. 그리고 여기서는 9*9 행렬을 예로 들었지만, 이러한 변환은 일반적인 n*n 행렬에 적용될 수 있다. 일례로, 행렬의 크기가 n*n일 때, 가로 중심축에 대한 대칭행렬은 M'(n+1-i, j) ← M(i,j) 로 얻을 수 있으며, 세로 중심축에 대한 대칭행렬은 M'(i, n+1-j) ← M(i,j) 로 얻을 수 있다.
도 4는 도 2의 문제와 해답으로부터 전치 행렬 변환 후의 문제와 전치 행렬 변형 문제 해답의 예를 도시한 것이다.
본 발명의 일 실시 예에서는 위의 방법들을 혼합 적용하여 주어진 문제를 변형하여 동종 문제를 만들고, 똑같은 절차를 적용하여 주어진 정답을 변형한 동종 문제의 정답을 만들 수 있다. 새로운 문제에 대한 정답은 기존 문제의 정답이 주어지지 않아도 알아낼 수 있다. 어떤 스도쿠 문제이든지 유일한 해답을 가지며, 스도쿠 문제의 해답을 구하는 방법이 알려져 있고, 이를 자동으로 구하는 프로그램도 존재하므로 문제가 주어지면 해답을 구할 수 있다. 그러나 이와 같이 정답의 변형을 이용하면 보다 빨리 정답을 구할 수 있다.
또한, 두 개의 문제 p1, p2가 주어졌을 때 이들이 변형에 의한 동종 문제인지를 위의 방법들을 적용시켜 판단할 수 있다. 더 나아가서, 여러 개의 문제들이 서로 동종관계인지 확인할 수 있다.
직소문제는 9*9 행렬 문제의 경우는 3행 3열로 이루어진 사각형 박스를 다각 형으로 바꾼 문제이다. 직소문제를 만들기 위해서는 원래의 문제에서 인접 박스간에 박스표기를 변경할 수 있는 셀들이 충분히 있는지 계산한다. 박스 표기의 변경이 가능한 경우는 인접 박스 간의 행이나 열에서 동일한 숫자가 한 행이나 한 열의 간격을 두고 인접해 있는 경우이다. 이 경우, 해당 셀들을 인접하는 박스로 각각 할당해줌으로써 직소로 변환할 수 있다. 직소가 충분하지 않을 때는 앞의 행렬 교환 방법을 이용하여 박스를 구성하는 행과 열을 교환하는 방식으로 행렬을 변형할 수 있다. 직소문제 변형 방법은 (n의 제곱 * n의 제곱) 행렬 문제에서 (n*n) 크기의 소행렬 박스를 직소로 변환하는 일반적인 문제에도 적용할 수 있다.
도 5는 도 2의 문제와 해답을 4행과 6행 교환, 4열과 6열 교환한 직소 문제와 그 해답을 도시한 것이다.
도 5는, 도 1을 기준으로 하면, 박스 M11과 M12는 숫자 8을 교환하고, 박스 M12와 M13는 숫자 3을 교환한 결과이다. 또한, 박스 M21과와 M22는 숫자 3을 교환하고, 박스 M13과 M23은 숫자 2를 교환한 결과이다. 박스 M21과 M31은 숫자 7을 교환하고, 박스 M22와 M32는 숫자 5를, 박스 M32와 M33은 숫자 1을 교환하고, 박스 M23과 M33은 숫자 9를 교환한 결과이다.
크기가 큰 스도쿠 문제를 만드는데 노력이 많이 들기 때문에, 작은 문제와 해답을 만든 후에 큰 문제로 확장하는 것이 편리하다. 이하에서는 본 발명의 일 실시 예에 따라 문제를 확장하는 방법에 대해 설명한다.
도 6은 3*3 스도쿠 문제(P)의 예와 이에 대한 해답을 도시한 것이다.
도 7은 도 6의 3*3의 작은 문제(P)를 6*6의 큰 문제(M)로 확장하는 예를 보 여준다.
작은 문제에서 i행 j열의 셀이 P(i, j)이고, 큰 문제에서 i행 j열의 셀이 M(i, j)인 경우, 도 7의 M11 박스는 M(i, j) ← P(i, j) 이고, M12 박스는 M(i, n+j) ← P(i, j) + n 이며, M21 박스는 M(n+i, j) ← P(i, j) + n 이고, M22 박스는 M(n+i, n+j) ← P(i, j) 이다. 즉, M11 박스의 셀은 매칭되는 P의 셀의 값으로 채우고, M12 박스의 셀은 매칭되는 P의 셀의 값에 n을 더하여 채우며, M21 박스의 셀은 매칭되는 P의 셀의 값에 n을 더하여 채우고, M22 박스의 셀은 매칭되는 P의 셀의 값으로 채운다. 여기서 n은 3이고, 1 <= i <= 3, 1 <= j <= 3 이다. 마찬가지 방법으로 해답 행렬을 변환할 수 있으며, 이를 간략하게 표기하면, 작은 문제의 해답에 대한 행렬이 A인 경우, 큰 문제의 해답 행렬 B는, B11 ← A , B12 ← A + n , B21 ← A + n , B22 ← A 이다. 즉, B11 박스의 셀은 매칭되는 A의 셀의 값으로 채우고, B12 박스의 셀은 매칭되는 A의 셀의 값에 n을 더하여 채우며, B21 박스의 셀은 매칭되는 A의 셀의 값에 n을 더하여 채우고, B22 박스의 셀은 매칭되는 A의 셀의 값으로 채운다.
도 8은 도 6의 3*3의 작은 문제(P)를 9*9의 큰 문제(M)로 확장하는 예를 보여준다. Dl 경우 9*9 문제에는 3*3 크기의 박스가 9개(M11, M12, M13, M21, M22, M23, M31, M32, M33) 존재하게 된다. 이와 유사한 예들을 통해, n*n 문제를 kn*kn 문제로 확장하는 방법을 일반화할 수 있다.
작은 문제(3*3)에서 i행 j열의 셀이 P(i, j)이고, 큰 문제(9*9)에서 i행 j열의 셀이 M(i, j)인 경우, M11 박스는 M(i, j) ← P(i, j) 이고, M12 박스는 M(i, n+j) ← P(i, j) + n 이며, M13 박스는 M(i, 2n+j) ← P(i, j) + 2n 이다. M21 박스는 M(n+i, j) ← P(i, j) + n 이고, M22 박스는 M(n+i, n+j) ← P(i, j) + 2n이고, , M23 박스는 M(n+i, 2n+j) ← P(i, j)이다. 그리고, M31 박스는 M(2n+i, j) ← P(i, j) + 2n 이고, M32 박스는 M(2n+i, n+j) ← P(i, j)이고, M33 박스는 M(2n+i, 2n+j) ← P(i, j) + n 이다. 마찬가지 방법으로 해답 행렬을 변환활 수 있으며, 이를 간략하게 표기하면, 작은 문제의 해답에 대한 행렬이 A인 경우, 큰 문제의 해답 행렬 B는, B11 ← A , B12 ← A + n , B13 ← A + 2n 이고, B21 ← A + n, B22 ← A + 2n, B23 ← A 이며, B31 ← A + 2n , B32 ← A, B33 ← A + n 이다.
도 8의 문제와 해답은 이와 같은 방법으로 도 6의 작은 문제와 해답을 확장한 것이다. 크기 n*n의 작은 문제를 크기 (n의 제곱) * (n의 제곱)의 큰 문제로 확장한 경우에는, 작은 문제의 크기 n*n을 박스 크기로 하여 박스 내에서 한 숫자가 한번만 나타나는 박스형 문제로 변환할 수 있으며, 이에 대해서는 다음에 설명한다.
작은 문제(P)를 큰 문제(M)로 확장할 때, 작은 문제(P)에 상응하는 행렬을 n*n 행렬, 큰 문제(M)에 상응하는 행렬을 kn*kn 행렬이라고 가정한다. (k는 1보다 큰 정수) 기초 소행렬을 P라고 할때, 확장된 행렬을 구성하는 소행렬들은 도 9에 도시되어 있다. 각각의 소행렬을 구하는 변환 식은 수학식 1과 같으며, 도 10에 확장되는 행렬이 도시되어 있다.
Mij ← P + n * [(i+j-2) mod k]
여기서, mod는 모듈로 연산으로서, 정수 나눗셈에서 양의 정수인 나머지를 결과값으로 돌려준다. 즉 행렬의 박스 Mij의 각 셀을 P의 매칭되는 셀의 값에 n * [(i+j-2) mod k] 값을 더하여 채운다.
이와 같은 방식으로 생성된 큰 문제(M)가 유일한 해답을 갖지 않을 경우에는 임의의 셀에 하나 이상의 힌트를 추가할 수 있으며, 유일한 해답을 갖더라고 난이도를 높이기 위해 하나 이상의 힌트를 삭제할 수 있다. 또한, 확장된 문제를 행렬 변환 방식을 이용하여 다양한 문제로 변형할 수 있다.
기초 소행렬은 둘 이상이 될 수 있다. 이 경우에는 기초 소행렬들을 적절히 결합하여 큰 문제를 만든다. 작은 n*n 문제 2개(P, Q)를 결합하여 큰 문제(2n*2n)로 만드는 경우, 결합 행렬 M은 M11, M12, M21, M22와 같은 박스들을 포함한다. 예를 들어, 박스 M11 ← P 이고, 박스 M12 ← Q + n 이며, 박스 M21 ← Q + n 이고, 박스 M22 ← P 이다.
문제를 결합하는 방식을 보다 일반화할 수 있다. n*n의 작은 문제 k개를 확장하여 kn*kn의 큰 문제를 만든다. 이때 작은 k 개의 문제들은 모두 다르거나, 또는 모두 같거나, 또는 일부는 다르고 일부는 같을 수도 있다. n*n 크기의 문제 행렬 k개를 각각 P1, P2, ..., Pk라고 하면, 도 9에 도시된 각각의 소행렬을 구하는 변환 식은 수학식 2와 같으며, 확장되는 행렬은 도 11과 같다.
Mij ← P[(i+j-1) mod k] + n * [(i+j-2) mod k]
여기서, mod는 모듈로 연산으로서, 정수 나눗셈에서 양의 정수인 나머지를 결과값으로 돌려준다. P[(i+j-1) mod k] 는 P1, P2, ... , Pk 중 어느 하나에 해당한다.
크기 (n*n)의 작은 문제 하나를 확장하여 크기 (kn*kn)의 큰 문제로 만든 경우와 크기 (n*n)의 k 개의 작은 문제들을 결합하여 (kn*kn)의 큰 문제로 확장한 경우에 확장된 문제를 박스형 문제로 변환할 수 있다.
작은 문제가 n*n 크기일 때, 이를 (n의 제곱)*(n의 제곱) 의 크기로 확장하면 원래의 작은 문제의 크기 n*n을 하나의 박스로 간주하여, 박스 내에서도 한 숫자가 한번만 등장하는 문제로 앞에서 기술한 행렬의 행 교환이나 열 교환을 통해 변환할 수 있다. 예를 들어, 3*3 문제를 9*9 문제로 확장하는 경우 3*3 크기의 각 박스 내에서도 숫자가 한번만 나타나는 문제로 바꿀 수 있다.
도 12는 도 6으로부터 확장된 도 8의 문제와 해답에 대하여 행2와 행5 교환, 행3과 행8 교환, 행6과 행9 교환 후의 문제와 해답으로 각 박스 내에서도 한 숫자가 한번만 등장하도록 변환한 한 예이다. 행 교환 대신 열 교환을 통해서도 박스가 존재하는 문제로 변환할 수 있다. 즉, 열 교환을 이용할 경우의 한 예로 도 8의 문제와 해답에 대하여 열2와 열 5 교환, 열 3과 열 8 교환, 열 6과 열 9 교환을 하게 되면 박스형 문제와 해답으로 변환할 수 있다.
문제를 n*n 에서 (n의 제곱)*(n의 제곱) 크기로 확장한 때, 행 교환 또는 열 교환을 통해 박스형 문제로 변환할 수 있고 다양한 방법이 존재하지만, 박스형 문제로 변환하는 한가지 간단한 방법은 다음과 같다. 문제 행렬 M 에서 1행부터 n 개 의 행씩 순서대로 선택하여 이루어진 행들의 집합을 각각 M1, M2, ... , Mn 이라 하면, 새로운 박스형 문제 T의 각 행 집합 Tj(1<=j<=n)의 행들을 M1부터 Mm까지의 각 행 집합으로부터 하나씩의 행을 선택하여 채우면 된다. 한 예로써 T1은 M의 각 행 집합으로부터 첫째 행을 선택하여 채우고, T2는 M의 각 행 집합으로부터 2번째의 행을 선택하여 채우는 방식으로 Tn까지 계속 진행하면 박스형 문제를 얻을 수 있다. 마찬가지로 열 교환에 의해서도 박스형 문제로 변환할 수 있다.
이와 같은 방식으로 생성된 큰 문제(M)가 유일한 해답을 갖지 않을 경우와 유일한 해답을 갖더라도 난이도를 낮추는 경우에는 임의의 셀에 하나 이상의 힌트를 추가할 수 있으며, 유일한 해답을 갖더라도 난이도를 높이기 위해서 하나 이상의 힌트를 삭제할 수 있다. 또한, 확장된 문제를 행렬 변환 방식을 이용하여 다양한 문제로 변형할 수 있다.
한편, 작은 문제를 큰 문제로 확장하면, 원래의 작은 문제에 주어진 힌트가 확장되어 큰 문제의 힌트가 된다. 이때 큰 문제의 힌트가 부족하여 유일한 해답을 구하지 못하는 경우도 있다. 이때는 다음과 같은 방법을 이용한다.
어떤 스도쿠 문제이든지 유일한 해답이 존재하여야 한다. 스도쿠 문제의 해답의 유일성을 판단하고 해답을 구하는 방법은 잘 알려져 있으며, 이 과정을 자동으로 수행하는 프로그램도 존재한다. 일례로, 위키피디아(Wilipedia) 사전의 스도쿠 알고리즘(Algorithmics of Sudoku)이나 인터넷에서 검색되는 스도쿠 풀이기(Sudoku solver)등을 들 수 있다. 이와 같은 유일한 해답을 확인하는 과정을 알고리즘화하면, 확장된 문제에도 적용이 가능하다.
확장된 문제가 유일한 해답을 가지도록 하기 위해서, 확장된 문제의 해답이 존재하는지 상기 알고리즘으로 확인한다. 이때, 유일한 해답이 존재하지 않으면 힌트를 추가로 삽입한다. 힌트를 확장 행렬의 빈 셀에 추가한 후에 다시 상기 알고리즘으로 유일한 해답을 찾는다. 유일한 해답이 존재할 때까지 힌트를 추가하고 해답이 존재할 때 종료한다. 이러한 과정을 통해 추가된 힌트를 확장 문제에 포함시키면, 유일한 해답을 갖는 스도쿠 확장 문제를 생성할 수 있다. 여기서 힌트란 스도쿠 문제의 해답 행렬의 셀들의 값들 중 문제에서 공개되는 셀의 값이다. 이때 문제의 난이도를 고려하여 초급은 힌트를 많이, 중급은 보통, 고급은 아주 적게 설정하여 게임의 난이도를 조절할 수 있다.
확장된 문제가 유일한 해답을 가지도록 하는 다른 방법도 있을 수 있다. 기초 해답 소행렬을 행렬 확장하여 얻은 스도쿠 해답으로부터 역으로 문제를 만들어 나갈 수 있다. 즉 빈 셀이 없는 스도쿠 해답 행렬에서 하나의 셀씩 힌트를 지워나가면서 유일한 해답을 구할 수 있는지 상기 알고리즘으로 검사한다. 셀을 지워나가면서 적당한 수준의 문제(즉 힌트의 수가 적절)이면 중단할 수 있다. 이 방법을 끝까지 계속하면, 유일한 해답을 얻을 수 있는 최소한의 힌트만을 남도록 하여 가장 어려운 문제를 만들 수 있다.
셀을 처음부터 지워나가는 방법은 시간이 많이 소요되므로, 확장된 문제의 힌트에 추가로 약간의 힌트들을 추가한 후에 셀을 지워나가는 것이 효과적일 수 있다. 예를 들어, 확장된 문제의 힌트의 수가 x개이면, y개의 힌트를 빈 셀들에 임의로 추가하여 x + y 개의 힌트로부터 시작할 수도 있다. 여기서 y는 행렬의 크기를 고려한 적당한 수로, 예를 들면, y = w * k * n 일 수 있다. (w는 조정계수, k*n은 확장된 문제의 행의 수) 이때 적절한 힌트의 수는 x부터 x + y 사이의 수로 정할 수 있다. 유일한 해답의 최소 힌트 수는 x이거나 x에 근접한 수로 결정되도록 하는 실시 예도 가능하다. 이 방법은 확장된 문제가 유일한 해답을 갖더라도 힌트의 수를 줄여서 난이도를 높이고자 하는 경우에도 적용할 수 있다.
본 발명은 소프트웨어를 통해 실행될 수 있다. 바람직하게는, 본 발명의 실시 예들에 따른 스도쿠 문제 생성 방법 또는 스도쿠 문제 검사 방법을 컴퓨터에서 실행시키기 위한 프로그램을 컴퓨터로 읽을 수 있는 기록매체에 기록하여 제공할 수 있다. 소프트웨어로 실행될 때, 본 발명의 구성 수단들은 필요한 작업을 실행하는 코드 세그먼트들이다. 프로그램 또는 코드 세그먼트들은 프로세서 판독 가능 매체에 저장되거나 전송 매체 또는 통신망에서 반송파와 결합된 컴퓨터 데이터 신호에 의하여 전송될 수 있다.
컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 장치의 예로는 ROM, RAM, CD-ROM, DVD±ROM, DVD-RAM, 자기 테이프, 플로피 디스크, 하드 디스크(hard disk), 광데이터 저장장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 장치에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
본 발명은 도면에 도시된 일 실시 예를 참고로 하여 설명하였으나 이는 예시적인 것에 불과하며 당해 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변 형 및 실시 예의 변형이 가능하다는 점을 이해할 것이다. 그리고, 이와 같은 변형은 본 발명의 기술적 보호범위 내에 있다고 보아야 한다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해서 정해져야 할 것이다.
본 발명의 실시 예들은 숫자 퍼즐을 자동으로 생성하기 위한 장치, 특히, 스도쿠 문제를 변형시켜 새로운 문제를 만드는 방법, 변형된 문제의 정답을 만들어 내는 방법, 주어진 두 개의 문제들이 변형에 의한 동종의 문제들인지 판별하는 방법 등을 제공할 수 있는 소프트웨어가 설치된 컴퓨터 시스템이나, 게임기, PDA, 핸드폰 등의 게임에 적용될 수 있다.
도 1은 9*9 행렬을 구성하는 9개의 박스를 보여준다.
도 2는 9*9 행렬을 이용한 스도쿠 문제와 해답의 예를 보여준다.
도 3은 스도쿠 문제의 행렬에서 행 교환, 열 교환을 수행한 후의 문제 및 해답의 예를 도시한 것이다.
도 4는 전치 행렬 변환 후의 문제와 전치 행렬 변형 문제 해답의 예를 도시한 것이다.
도 5는 원래의 문제를 행 교환, 열 교환한 직소 문제와 그 해답을 도시한 것이다.
도 6은 작은 스도쿠 문제의 예와 이에 대한 해답을 도시한 것이다.
도 7은 도 6의 작은 문제를 큰 문제로 확장하는 예를 보여준다.
도 8은 도 6의 작은 문제를 큰 문제로 확장한 다른 예를 보여준다.
도 9는 스도쿠 확장 문제의 일반화를 도시한 것이다.
도 10은 도 9의 확장 문제를 구성하는 소행렬들에 대응하는 소행렬들의 일 예를 도시한 것이다.
도 11은 도 9의 확장 문제를 구성하는 소행렬들에 대응하는 소행렬들의 다른 예를 도시한 것이다.
도 12는 도 8의 스도쿠 확장 문제를 박스형 문제로 변형한 예를 도시한 것이다.

Claims (15)

  1. 컴퓨터 상에서 스도쿠 문제에 상응하는 스도쿠 행렬을 생성하는 방법에 있어서,
    스도쿠 규칙에 따른 기초 소행렬로부터 상기 기초 소행렬의 가로 및 세로의 크기를 정수배하여 셀 값을 채우지 않은 확장 행렬을 생성하는 단계;
    상기 확장 행렬의 각 셀의 값을 상기 기초 소행렬의 셀 값에 상기 기초 소행렬의 크기를 정수배한 소정의 상수를 더하여 상기 확장 행렬의 빈 셀들의 값을 채우는 단계;
    상기 생성된 확장 행렬이 상기 스도쿠 규칙에 따른 유일한 해답을 가질 때까지, 상기 스도쿠 규칙에 따라 상기 확장 행렬의 공개되지 않은 셀 중 적어도 어느 하나에 상기 확장 행렬에 대응하는 해답 행렬의 셀 값을 추가하거나, 상기 확장 행렬의 공개된 셀 값 중 적어도 하나를 삭제하여 상기 스도쿠 행렬을 생성하는 단계;
    상기 스도쿠 행렬을 상기 기초 소행렬의 크기의 박스들로 구분하는 단계; 및
    상기 박스들 내에서 하나의 숫자가 하나만 포함되도록 상기 스도쿠 행렬에서 적어도 2개의 행 또는 적어도 2개의 열을 서로 교환하는 단계를 포함하는, 스도쿠 문제 생성 방법.
  2. 제 1 항에 있어서,
    상기 확장 행렬의 빈 셀들의 값을 채우는 단계는
    상기 기초 소행렬에서 적어도 2개의 행 또는 적어도 2개의 열을 서로 교환하는 단계를 포함하는 것을 특징으로 하는, 스도쿠 문제 생성 방법.
  3. 제 1 항에 있어서,
    상기 확장 행렬의 빈 셀들의 값을 채우는 단계는
    상기 기초 소행렬의 가로 및 세로의 크기가 n이며, 상기 스도쿠 행렬의 가로 및 세로의 크기가 k*n인 경우, i행 j열에 상응하는 소행렬 Mij는 상기 기초 소행렬 P에 n * [(i+j-2) mod k] 를 더하는 단계를 포함하는 것을 특징으로 하는, 스도쿠 문제 생성 방법.
  4. 제 1 항에 있어서,
    상기 스도쿠 행렬의 가로 중심축에 대한 대칭 행렬, 상기 스도쿠 행렬의 세로 중심축에 대한 대칭 행렬, 상기 스도쿠 행렬의 대각 성분에 대한 대칭 행렬 또는 상기 스도쿠 행렬의 전치행렬 중 적어도 하나를 생성하는 단계를 더 포함하는 것을 특징으로 하는, 스도쿠 문제 생성 방법.
  5. 제 1 항에 있어서,
    상기 스도쿠 행렬을 구성하는 소행렬들을 박스표기로 구분하여 표시하되, 상기 박스표기로 인접하는 셀들이 동일한 숫자를 갖는 경우, 해당 셀들의 박스표기를 변경하여 직소 문제를 생성하는 단계를 더 포함하는 것을 특징으로 하는, 스도쿠 문제 생성 방법.
  6. 삭제
  7. 컴퓨터 상에서 스도쿠 문제에 상응하는 스도쿠 행렬을 생성하는 방법에 있어서,
    스도쿠 규칙에 따른 스도쿠 문제의 해답을 나타내는 기초 해답 소행렬로부터 상기 기초 해답 소행렬의 가로 및 세로의 크기를 정수배하여 셀 값을 채우지 않은 스도쿠 해답 행렬을 생성하는 단계;
    상기 스도쿠 해답 행렬의 각 셀 값을 상기 기초 해답 소행렬의 셀 값에 상기 기초 해답 소행렬의 크기를 정수배한 소정의 상수를 더하여 상기 스도쿠 해답 행렬의 빈 셀들의 값을 채우는 단계;
    상기 생성된 스도쿠 해답 행렬이 스도쿠 규칙에 따른 유일한 해답을 갖지 못할 때까지, 상기 스도쿠 해답 행렬의 셀 중 어느 하나의 값을 삭제하는 단계; 및
    상기 유일한 해답을 갖지 못하는 스도쿠 해답 행렬의 공개되지 않은 셀 중 적어도 어느 하나에 상기 스도쿠 해답 행렬에 대응하는 해답 행렬의 셀 값을 추가하거나, 상기 스도쿠 해답 행렬의 공개된 셀 값 중 적어도 하나를 삭제하여 상기 스도쿠 행렬을 생성하는 단계;
    상기 스도쿠 행렬을 상기 기초 해답 소행렬의 크기의 박스들로 구분하는 단계; 및
    상기 박스들 내에서 하나의 숫자가 하나만 포함되도록 상기 스도쿠 행렬에서 적어도 2개의 행 또는 적어도 2개의 열을 서로 교환하는 단계를 포함하는, 스도쿠 문제 생성 방법.
  8. 제 7 항에 있어서,
    상기 스도쿠 행렬의 가로 중심축에 대한 대칭 행렬, 상기 스도쿠 행렬의 세로 중심축에 대한 대칭 행렬 또는 상기 스도쿠 행렬의 전치행렬 중 적어도 하나를 생성하는 단계를 더 포함하는 것을 특징으로 하는, 스도쿠 문제 생성 방법.
  9. 컴퓨터 상에서 스도쿠 문제에 상응하는 스도쿠 행렬을 생성하는 방법에 있어서,
    스도쿠 규칙에 따른 복수의 소행렬들을 입력받는 단계;
    상기 입력받은 복수의 소행렬로부터 상기 복수의 소행렬의 가로 및 세로의 크기를 정수배하여 셀 값을 채우지 않은 확장 행렬을 생성하는 단계;
    상기 확장 행렬의 각 셀의 값을 상기 복수의 소행렬의 셀 값에 상기 복수의 소행렬의 크기를 정수배한 소정의 상수를 더하여 상기 확장 행렬의 빈 셀들의 값을 채우는 단계;
    상기 생성된 확장 행렬이 상기 스도쿠 규칙에 따른 유일한 해답을 가질 때까지, 상기 스도쿠 규칙에 따라 상기 확장 행렬의 공개되지 않은 셀 중 적어도 어느 하나에 상기 확장 행렬에 대응하는 해답행렬의 셀 값을 추가하거나, 상기 확장 행렬의 공개된 셀 값 중 적어도 하나를 삭제하여 상기 스도쿠 행렬을 생성하는 단계;
    상기 스도쿠 행렬을 상기 복수의 소행렬 중 어느 하나의 크기의 박스들로 구분하는 단계; 및
    상기 박스들 내에서 하나의 숫자가 하나만 포함되도록 상기 스도쿠 행렬에서 적어도 2개의 행 또는 적어도 2개의 열을 서로 교환하는 단계를 포함하는, 스도쿠 문제 생성 방법.
  10. 제 9 항에 있어서,
    상기 확장 행렬의 빈 셀들의 값을 채우는 단계는
    가로 및 세로의 크기가 n인 복수의 기초 소행렬 P[(i+j-1) mod k] 에 대해, 상기 스도쿠 행렬의 가로 및 세로의 크기가 k*n인 경우, i행 j열에 상응하는 소행렬 Mij는 상기 복수의 기초 소행렬 P[(i+j-1) mod k] 에 n * [(i+j-2) mod k]를 더하는 단계를 포함하는 것을 특징으로 하는, 스도쿠 문제 생성 방법.
  11. 삭제
  12. 컴퓨터 상에서 스도쿠 문제에 상응하는 스도쿠 행렬을 생성하는 방법에 있어서,
    스도쿠 규칙에 따른 기초 소행렬로부터 상기 기초 소행렬의 가로 및 세로의 크기를 정수배하여 셀 값을 채우지 않은 확장 행렬을 생성하는 단계;
    상기 확장 행렬의 각 셀의 값을 상기 기초 소행렬의 셀 값에 상기 기초 소행렬의 크기를 정수배한 소정의 상수를 더하여 상기 확장 행렬의 빈 셀들의 값을 채우는 단계;
    상기 생성된 확장 행렬이 상기 스도쿠 규칙에 따른 유일한 해답을 가질 때까지, 상기 스도쿠 규칙에 따라 상기 확장 행렬의 공개되지 않은 셀 중 적어도 어느 하나에 상기 확장 행렬에 대응하는 해답 행렬의 셀 값을 추가하거나, 상기 확장 행렬의 공개된 셀 값 중 적어도 하나를 삭제하여 상기 스도쿠 행렬을 생성하는 단계;
    상기 스도쿠 행렬을 상기 기초 소행렬의 크기의 박스들로 구분하는 단계; 및
    상기 박스들 내에서 하나의 숫자가 하나만 포함되도록 상기 스도쿠 행렬에서 적어도 2개의 행 또는 적어도 2개의 열을 서로 교환하는 단계;
    검증하고자 하는 스도쿠 행렬을 입력받는 단계; 및
    상기 입력받은 스도쿠 행렬을 상기 복수의 확장 행렬과 비교하여 서로 동종의 스도쿠 문제인지 여부를 판단하는 단계를 포함하는, 스도쿠 문제 검사 방법.
  13. 삭제
  14. 제 1 항 내지 제 5 항, 제 7 항 내지 제 10 항 또는 제 12 항 중 어느 한 항의 방법을 컴퓨터 시스템에서 실행하기 위한 프로그램이 기록된, 컴퓨터 시스템이 판독할 수 있는 기록매체.
  15. 복수의 기초 소행렬을 저장하는 문제풀 데이터베이스;
    상기 문제풀 데이터베이스에서 복수의 기초 소행렬 중 어느 하나를 선택하고, 선택된 기초 소행렬로부터 상기 기초 소행렬의 가로 및 세로의 크기를 정수배하여 셀 값을 채우지 않은 확장 행렬을 생성하고, 상기 확장 행렬의 각 셀 값을 상기 기초 소행렬의 셀 값에 상기 기초 소행렬의 크기를 정수배한 소정의 상수를 더하여 상기 확장 행렬의 빈 셀들의 값을 채워 확장 행렬을 생성하는 확장 행렬 생성부; 및
    상기 생성된 확장 행렬이 스도쿠 규칙에 따른 유일한 해답을 가질 때까지, 상기 스도쿠 규칙에 따라 상기 확장 행렬의 공개되지 않은 셀 중 적어도 어느 하나에 상기 확장 행렬에 대응하는 해답행렬의 셀 값을 추가하거나, 상기 확장 행렬의 공개된 셀 값 중 적어도 하나를 삭제하여 스도쿠 행렬을 생성하는 문제 생성부를 포함하고,
    상기 문제 생성부는 상기 스도쿠 행렬을 상기 기초 소행렬의 크기의 박스들로 구분하고 상기 박스들 내에서 하나의 숫자가 하나만 포함되도록 상기 스도쿠 행렬에서 적어도 2개의 행 또는 적어도 2개의 열을 서로 교환하는 것을 특징으로 하는, 스도쿠 문제 생성 장치.
KR1020090096750A 2009-10-12 2009-10-12 스도쿠 문제 생성 방법, 스도쿠 문제 검사 방법 및 스도쿠 문제 생성 장치, 그 기록 매체 KR101111451B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090096750A KR101111451B1 (ko) 2009-10-12 2009-10-12 스도쿠 문제 생성 방법, 스도쿠 문제 검사 방법 및 스도쿠 문제 생성 장치, 그 기록 매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090096750A KR101111451B1 (ko) 2009-10-12 2009-10-12 스도쿠 문제 생성 방법, 스도쿠 문제 검사 방법 및 스도쿠 문제 생성 장치, 그 기록 매체

Publications (2)

Publication Number Publication Date
KR20110039765A KR20110039765A (ko) 2011-04-20
KR101111451B1 true KR101111451B1 (ko) 2012-02-15

Family

ID=44046244

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090096750A KR101111451B1 (ko) 2009-10-12 2009-10-12 스도쿠 문제 생성 방법, 스도쿠 문제 검사 방법 및 스도쿠 문제 생성 장치, 그 기록 매체

Country Status (1)

Country Link
KR (1) KR101111451B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107832399A (zh) * 2017-11-01 2018-03-23 重庆正派体育健身有限公司 数独题库模板生成系统及方法
KR102257771B1 (ko) 2020-01-06 2021-05-31 이창호 스도쿠를 응용한 퍼즐게임 운용 장치 및 그 운용 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080029409A (ko) * 2006-09-29 2008-04-03 신동원 정육각형 내의 정삼각형들에 중복 없이 숫자를 배열하는게임
KR20090021318A (ko) * 2007-08-06 2009-03-03 전창선 제2의 눈금이 적용된 방진과 이를 이용한 숫자퍼즐

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080029409A (ko) * 2006-09-29 2008-04-03 신동원 정육각형 내의 정삼각형들에 중복 없이 숫자를 배열하는게임
KR20090021318A (ko) * 2007-08-06 2009-03-03 전창선 제2의 눈금이 적용된 방진과 이를 이용한 숫자퍼즐

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107832399A (zh) * 2017-11-01 2018-03-23 重庆正派体育健身有限公司 数独题库模板生成系统及方法
KR102257771B1 (ko) 2020-01-06 2021-05-31 이창호 스도쿠를 응용한 퍼즐게임 운용 장치 및 그 운용 방법

Also Published As

Publication number Publication date
KR20110039765A (ko) 2011-04-20

Similar Documents

Publication Publication Date Title
Felgenhauer et al. Mathematics of sudoku I
KR102672603B1 (ko) 맵 생성 방법 및 장치, 전자 디바이스, 및 컴퓨터 저장 매체
US8360780B2 (en) Method and system for creating a multiplication and division puzzle
CN106971042B (zh) 一种用于混合高度标准单元电路设计的合法化方法
KR101111451B1 (ko) 스도쿠 문제 생성 방법, 스도쿠 문제 검사 방법 및 스도쿠 문제 생성 장치, 그 기록 매체
Ruangwises et al. How to physically verify a rectangle in a grid: a physical ZKP for Shikaku
JP2006229928A (ja) 画像処理装置、画像処理プログラム及び画像処理方法、印刷装置、印刷装置制御プログラム及び印刷装置制御方法、印刷用データ生成装置、印刷用データ生成プログラム及び印刷用データ生成方法、並びに表示装置、表示装置制御プログラム及び表示装置制御方法
CN104268337B (zh) 仿真支撑平台图像连线的路径生成方法及系统
Jana et al. A novel Sudoku solving technique using column based permutation
US20060107180A1 (en) Apparatus and method for constructing low-density parity check matrix
CN104572588B (zh) 矩阵求逆处理方法和装置
JP2010259455A (ja) パズルゲーム装置及びプログラム
KR20080022247A (ko) (n˘a, n˘(2a-2),n˘(a-1),n,0,1) GD-PBIBD를이용한 공모 방지 핑거프린트 코드 생성 방법
US9943752B2 (en) Sudoku-based puzzles
US20170032566A1 (en) Decorrelation of low discrepancy sequences for progressive rendering
Heap et al. Knot Mosaics with Corner Connection Tiles
CN115345287A (zh) 存储器内计算宏排列的方法、计算机可读介质及电子装置
CN113769409A (zh) 模块化游戏关卡生成方法、装置、计算机设备及存储介质
Torrence The easiest lights out games
Lecoutre et al. Proceedings of the 2018 XCSP3 competition
KR20110114418A (ko) 스도쿠 퍼즐의 확장된 구현 방법 및 이를 이용한 게임 시스템
O'Grady Database-Supported Video Game Engines: Data-Driven Map Generation
JP7515675B1 (ja) Ledダイの混合方法
CN105897278A (zh) 信息处理方法及存储设备
CN113094648B (zh) 外积累加求解三角矩阵与矩阵内积的方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20150120

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160106

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170102

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180103

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee