KR20060115775A - Method and apparatus for generating crossword game automatically - Google Patents

Method and apparatus for generating crossword game automatically Download PDF

Info

Publication number
KR20060115775A
KR20060115775A KR1020050038051A KR20050038051A KR20060115775A KR 20060115775 A KR20060115775 A KR 20060115775A KR 1020050038051 A KR1020050038051 A KR 1020050038051A KR 20050038051 A KR20050038051 A KR 20050038051A KR 20060115775 A KR20060115775 A KR 20060115775A
Authority
KR
South Korea
Prior art keywords
word
block
crossword
frame
blocks
Prior art date
Application number
KR1020050038051A
Other languages
Korean (ko)
Other versions
KR100746000B1 (en
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 KR1020050038051A priority Critical patent/KR100746000B1/en
Publication of KR20060115775A publication Critical patent/KR20060115775A/en
Application granted granted Critical
Publication of KR100746000B1 publication Critical patent/KR100746000B1/en

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
    • A63F3/00Board games; Raffle games
    • A63F3/04Geographical or like games ; Educational games
    • A63F3/0423Word games, e.g. scrabble
    • 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/45Controlling the progress of the video game
    • 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/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Health & Medical Sciences (AREA)
  • Economics (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Educational Technology (AREA)
  • Machine Translation (AREA)

Abstract

A method and a device for automatically generating crossword games are provided to automatically generate diverse crossword games not restricted to a fixed form or frame without intervention of a user. A frame generator(320) generates a crossword frame by selecting word blocks from multiple wall blocks forming the crossword game based on an algorithm for finding a path in a maze or generating the maze, and setting the selected wall blocks as the word blocks. A frame adjuster(330) changes the word blocks into the wall blocks or changes the wall blocks into the word blocks according to a length of a word by examining the word blocks set in the frame generator. A word former(340) assigns the words stored in a word database(360) to the word blocks, and changes the word or wall blocks in case that the word to be assigned is not present. The word database stores the words, the information explaining the word, and rule information for assigning the word to the word blocks.

Description

크로스워드 게임을 자동으로 생성하는 방법 및 장치{Method and apparatus for generating crossword game automatically}Method and apparatus for generating crossword game automatically}

도 1은 재귀적 역추적(Recursive Backtracker) 알고리즘으로 미로를 생성한 결과를 보여주는 예시도이다.FIG. 1 is an exemplary diagram showing a result of generating a maze with a recursive backtracker algorithm.

도 2는 본 발명의 일 실시예에 따른 크로스워드 프레임을 생성하는 과정을 보여주는 순서도이다.2 is a flowchart illustrating a process of generating a crossword frame according to an embodiment of the present invention.

도 3은 본 발명의 일 실시예에 따른 단어 블록이 겹쳐서 존재하는지를 검토하는 과정을 보여주는 예시도이다.3 is an exemplary view illustrating a process of examining whether word blocks overlap with each other according to an embodiment of the present invention.

도 4는 본 발명의 일 실시예에 따른 전체블록 중 단어 블록이 차지하는 밀도를 계산하는 과정을 보여주는 예시도이다. 4 is an exemplary view illustrating a process of calculating a density occupied by a word block among all blocks according to an embodiment of the present invention.

도 5는 본 발명의 일 실시예에 따른 단어 블록이 지나치게 긴 경우 제한을 가하여 프레임을 변경하는 예시도이다.5 is an exemplary diagram of changing a frame by applying a restriction when a word block is too long according to an exemplary embodiment of the present invention.

도 6은 본 발명의 일 실시예에 따른 단어를 선택하며 프레임을 변경하는 예시도이다.6 is an exemplary diagram of selecting a word and changing a frame according to an embodiment of the present invention.

도 7은 본 발명의 일 실시예에 따른 크로스워드를 생성하는 시스템의 구성도이다.7 is a block diagram of a system for generating a crossword according to an embodiment of the present invention.

<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for the main parts of the drawings>

310 : 사용자 인터페이스부 320 : 프레임 생성부310: user interface unit 320: frame generation unit

330 : 프레임 조절부 340 : 단어 구성부330: frame control unit 340: word composition unit

350 : 저장부 360 : 단어 데이터베이스350: storage 360: word database

본 발명은 크로스워드 게임을 자동으로 생성하는 방법 및 장치에 관한 것으로, 보다 상세하게는 크로스워드 게임을 사용자의 개입없이 자동으로 생성하는 것에 관한 것이다.The present invention relates to a method and apparatus for automatically generating a crossword game, and more particularly, to automatically generating a crossword game without user intervention.

크로스워드(Crossword, 가로세로 낱말 맞추기, 십자말) 게임은 신문, 책, 인터넷, 모바일 휴대폰 등 여러 매체에서 사용하는 게임이다. 특히 컨텐츠를 제공하는 회사에서는 크로스워드를 정기적으로 생성하여 제공하고 있다. 그런데 크로스워드를 구성하기 위해서는 크게 두 가지 작업을 필요로 한다. 먼저, 크로스워드에서 단어가 배치될 프레임(frame)을 생성하는 과정이 필요하다. 다음으로 프레임 내에 단어를 배치하는 과정이 필요하다. 이 두 과정을 사용자가 수동으로 할 경우, 크로스워드 게임을 생성하는데 많은 시간이 소요된다. Crossword games are games used in many media, including newspapers, books, the Internet, and mobile phones. In particular, companies that provide content regularly generate and provide crosswords. However, there are two major tasks to construct a crossword. First, a process of generating a frame in which words are to be arranged in a crossword is required. Next, we need to place the words in the frame. If you do these two steps manually, it takes a lot of time to create a crossword game.

종래에는 프레임 생성은 수동으로 하고 단어 구성은 자동으로 하는 발명(출원 10-2001-0043499)이 존재하였다. 또한, 프레임 생성을 자동으로 하고, 단어 구성을 수동으로 하는 크로스워드 컴파일러(Crossword Compiler) 제품이 존재한다. 이외에도 이미 결정되어있는 크로스워드 프레임에 자동으로 단어를 구축하는 방법( 미국 특허 4299578)이 제시되어 있다. 그러나 이러한 방법들은 사용자의 개입을 완전히 막지는 못한다는 문제점이 있다. 또한, 사용자의 개입 없이 자동으로 수행하는 경우라해도, 크로스워드 프레임은 이미 고정된 형태로 제공되어 다양한 크로스워드 게임을 구성하는데 한계가 있다. Conventionally, there has been an invention (application 10-2001-0043499) in which frame generation is performed manually and word composition is automatically performed. There is also a Crossword Compiler product that automates frame generation and manually constructs words. In addition, a method of automatically constructing a word in a crossword frame that has already been determined (US Patent 4299578) is presented. However, these methods do not completely prevent user intervention. In addition, even when automatically performed without the user's intervention, the crossword frame is already provided in a fixed form, there is a limit in configuring a variety of crossword games.

따라서, 사용자가 크로스워드 생성시 개입하지 않으면서, 크로스워드에 알맞도록 다양한 크로스워드 게임을 생성하는 방법이 필요하다.Therefore, there is a need for a method of generating various crossword games suitable for crosswords without the user intervening in crossword generation.

도 1은 재귀적 역추적(Recursive Backtracker) 알고리즘으로 미로를 생성한 결과를 보여주는 예시도이다. 크로스워드(10)의 하얀색 부분이 프레임이 존재하지 않는 영역이고, 색이 칠해진 부분이 프레임이 존재하는 영역이다. 그런데, 하얀색 부분이 겹쳐서 존재하여 크로스워드를 생성하기에 적합하지 않다. 크로스워드(10)의 일부를 확대한 부분(20)을 살펴볼 때, 단어가 배치될 하얀색 공간이 연속하여 배열된 것을 알 수 있다. 따라서 재귀적 역추적 알고리즘을 그대로 적용할 경우 프레임과 단어 생성이 각각 연속하여 뭉쳐진 형태로 나타날 수 있다. 따라서, 자동으로 크로스워드에 맞도록 프레임을 생성하고 단어를 구성하는 방법이 필요하다.FIG. 1 is an exemplary diagram showing a result of generating a maze with a recursive backtracker algorithm. The white part of the crossword 10 is an area where no frame exists, and the colored part is an area where a frame exists. However, the white parts overlap and are not suitable for generating a crossword. Looking at the enlarged portion 20 of a part of the crossword 10, it can be seen that the white spaces in which words are to be arranged are arranged in succession. Therefore, if the recursive backtracking algorithm is applied as it is, the frame and word generation may appear in a continuous form. Therefore, there is a need for a method of automatically generating frames and forming words to fit crosswords.

본 발명은 상기한 문제점을 개선하기 위해 안출된 것으로, 본 발명은 자동으로 크로스워드 게임을 생성하는 방법과 장치를 제공하는데 목적이 있다.The present invention has been made to solve the above problems, and an object of the present invention is to provide a method and apparatus for automatically generating a crossword game.

본 발명의 또다른 목적은 일정 틀이나 프레임에 한정되지 않는 다양한 크로스워드 게임을 자동으로 생성하는 것이다.Another object of the present invention is to automatically generate various crossword games that are not limited to a certain frame or frame.

본 발명의 목적들은 이상에서 언급한 목적들로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The objects of the present invention are not limited to the above-mentioned objects, and other objects that are not mentioned will be clearly understood by those skilled in the art from the following description.

본 발명은 크로스워드 게임을 자동으로 생성하는 방법 및 장치에 관한 것이다.The present invention relates to a method and apparatus for automatically generating a crossword game.

본 발명의 일 실시예에 따른 크로스워드 게임을 자동으로 생성하는 방법은 크로스워드를 생성하기 위해 필요한 소정의 기준을 설정하는 단계, 미로에서 경로를 찾거나 미로를 생성하는 알고리즘에 기반하여 단어를 구성하는 글자가 위치하게 되는 단어 블록을 크로스워드를 구성하는 다수의 벽 블록들에서 선택하고, 상기 선택한 벽 블록을 단어 블록으로 설정하여 크로스워드 프레임을 생성하는 단계, 및 상기 단어 블록에 상기 소정의 기준을 만족하는 단어를 할당하는 단계를 포함하며, 상기 생성하는 단계에서 단어 블록을 선택하는 기준은 상기 선택한 블록이 가로 및 세로로 연속된 다른 둘 이상의 단어 블록들과 연속하여 존재하지 않도록 선택하는 것을 특징으로 한다.According to an embodiment of the present invention, a method of automatically generating a crossword game includes setting a predetermined criterion required to generate a crossword, and constructing a word based on an algorithm for finding a path or generating a maze in a maze. Selecting a word block in which a letter to be located is selected from a plurality of wall blocks constituting a crossword, and setting the selected wall block as a word block to generate a crossword frame, and the predetermined reference to the word block. And allocating a word satisfying a value, wherein the criterion for selecting a word block in the generating step selects that the selected block does not exist in succession with two or more other word blocks consecutively vertically and horizontally. It is done.

기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다. Specific details of other embodiments are included in the detailed description and the drawings.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다 Advantages and features of the present invention and methods for achieving them will be apparent with reference to the embodiments described below in detail with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but can be implemented in various different forms, and only the embodiments make the disclosure of the present invention complete, and the general knowledge in the art to which the present invention belongs. It is provided to fully inform the person having the scope of the invention, which is defined only by the scope of the claims. Like reference numerals refer to like elements throughout.

이하, 본 발명의 실시예들에 의하여 크로스워드 게임을 자동으로 생성하는 방법 및 장치를 설명하기 위한 블록도 또는 처리 흐름도에 대한 도면들을 참고하여 본 발명에 대해 설명하도록 한다. 이 때, 처리 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 블록(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑제되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 블록(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다. Hereinafter, the present invention will be described with reference to a block diagram or a flowchart illustrating a method and apparatus for automatically generating a crossword game according to embodiments of the present invention. At this point, it will be understood that each block of the flowchart illustrations and combinations of flowchart illustrations may be performed by computer program instructions. Since these computer program instructions may be mounted on a processor of a general purpose computer, special purpose computer, or other programmable data processing equipment, those instructions executed through the processor of the computer or other programmable data processing equipment may be described in flow chart block (s). It creates a means to perform the functions. These computer program instructions may be stored in a computer usable or computer readable memory that can be directed to a computer or other programmable data processing equipment to implement functionality in a particular manner, and thus the computer usable or computer readable memory. It is also possible for the instructions stored in to produce an article of manufacture containing instruction means for performing the functions described in the flowchart block (s). Computer program instructions may also be mounted on a computer or other programmable data processing equipment, such that a series of operating steps are performed on the computer or other programmable data processing equipment to create a computer-implemented process to create a computer or other programmable data. Instructions for performing the processing equipment may also provide steps for performing the functions described in the flowchart block (s).

또한, 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실행예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.In addition, each block may represent a portion of a module, segment, or code that includes one or more executable instructions for executing a specified logical function (s). It should also be noted that in some alternative implementations, the functions noted in the blocks may occur out of order. For example, the two blocks shown in succession may in fact be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending on the corresponding function.

도 2는 본 발명의 일 실시예에 따른 크로스워드 프레임을 생성하는 과정을 보여주는 순서도이다. 일 실시예로 재귀적 역추적 알고리즘을 사용하여 프레임을 생성한다. 블록 중에 단어가 구성될 블록을 단어 블록이라 하고, 그 외의 블록을 벽 블록 또는 벽이라 한다. 초기에는 모든 블록들이 벽으로 설정된다. 특정 위치에서 도 2의 알고리즘을 수행한다. 현재의 위치에서 인접한 블록을 선택한다(S1002). 선택하는 방식은 순차적으로 시계 또는 반시계방향으로 선택할 수 있으며, 이와 달리, 랜덤(random)하게 무작위로 선택할 수 있다. 인접한 블록은 주변의 블록 중 벽인 블록을 선택한다. 이미 단어 블록으로 설정된 블록에 대해서는 단어 블록으로 변환하는 과정을 취할 필요가 없기 때문이다. 인접한 벽 블록이 존재하면(S1010), 해당 벽 블록을 단어 블록으로 할 때 다른 단어 블록들과 겹쳐지는지 체크한다(S1020). 이는 도 1에서 살펴본 20과 같이 단어 블록들이 뭉쳐져 있음으로 해서, 크로스워드의 프레임을 생성하는데 적합하지 않은 경우를 회피하기 위함이다. 다른 단어 블록들과 겹쳐지는지 여부에 대한 검사는 후술한다. 다른 단어 블록들과 겹쳐지지 않는 경우, 스택과 같은 메모리 영역에 이동 전의 블록에 대한 정보를 입력한다 (S1022). 스택에 저장하면, S1010단계에서 인접한 벽 블록이 존재하지 않는 경우, 스택에 저장된 단어 블록을 출력하여 다시 인접한 벽 블록을 찾을 수 있다. 블록을 선택하면 해당 블록으로 이동한다(S1024). 이동한 블록에 대한 정보를 경로 정보에 부가하여 저장한다(S1026). 전체 크로스워드에서 단어 블록이 차지하는 양인 단어 블록의 밀도가 소정의 값을 초과하는지 검토한다(S1028). 초과하지 않는다면 계속 벽 블록 중에서 단어 블록으로 변환하는 프레임 생성 과정을 수행한다. 그러나 초과한다면, 충분히 단어 블록이 확보되었으므로 종료한다. 2 is a flowchart illustrating a process of generating a crossword frame according to an embodiment of the present invention. In one embodiment, a frame is generated using a recursive backtracking algorithm. The block in which the word is to be constructed is called a word block, and the other blocks are called wall blocks or walls. Initially all blocks are set to walls. Perform the algorithm of FIG. 2 at a specific location. An adjacent block is selected at the current position (S1002). The selection method may be sequentially selected clockwise or counterclockwise. Alternatively, the selection method may be randomly selected at random. Adjacent blocks select blocks that are walls of the surrounding blocks. This is because there is no need to take a process of converting a block that is already set as a word block into a word block. If there is an adjacent wall block (S1010), it is checked whether the word block overlaps with other word blocks (S1020). This is to avoid a case in which the word blocks are aggregated as shown in FIG. 1 and are not suitable for generating a crossword frame. A check as to whether overlapping with other word blocks will be described later. When not overlapping with other word blocks, information about a block before moving is input to a memory area such as a stack (S1022). If it is stored in the stack, if there is no adjacent wall block in step S1010, the word block stored in the stack can be output to find the adjacent wall block again. If a block is selected, the block moves to the corresponding block (S1024). Information about the moved block is added to the path information and stored (S1026). It is examined whether the density of the word block, which is the amount occupied by the word block in the entire crossword, exceeds a predetermined value (S1028). If it does not exceed, the frame generation process is continued to convert the word block into a word block. If it does, however, it ends because it has enough word blocks.

S1010 단계에서 인접한 블록중에 벽 블록이 존재하지 않는다면 스택에서 이전에 살펴본 블록을 출력한다(S1012). 출력할 블록이 존재할 경우 해당 블록을 현재위치로 하여 새로이 인접한 블록을 선택하는 과정(S1002)를 재귀적으로 수행한다. 한편 출력할 블록이 존재하지 않는다면 더 이상 진행할 수 없으므로 종료한다.If there is no wall block among the adjacent blocks in step S1010, the block previously described in the stack is output (S1012). If there is a block to be output, the process of selecting a newly adjacent block by using the block as the current position (S1002) is performed recursively. On the other hand, if there is no block to output, it can't proceed any more, so it ends.

S1020 단계에서 선택한 블록이 다른 단어 블록과 겹쳐져서 크로스워드를 생성하는데 적합하지 않는 경우 현재 위치에서 다른 벽 블록이 존재하는지를 검사해서 다시 선택한다(S1002).If the block selected in step S1020 is not suitable for generating a crossword by overlapping with another word block, it is checked again if another wall block exists at the current position (S1002).

도 2에서 살펴본 과정은 미로에서 경로를 찾거나, 미로를 생성하는 과정을 포함하며, 이를 크로스워드 게임을 위한 프레임을 생성하는 데 적용한 것이다. 미로에서 경로를 찾거나 미로를 생성하는 알고리즘은 전술한 재귀적 역추적 알고리즘을 하나의 예로 하고 있으며, 통상 현재의 위치에서 다음 위치를 선택하는 방식을 사용하고 있다. 그리고 다음 위치가 존재하지 않을 경우, 지금까지 거쳐온 경로에서 다시 분기할 수 있는 위치를 찾는 방식이다.The process described in FIG. 2 includes a process of finding a path or generating a maze in a maze, and applying the same to generating a frame for a crossword game. The algorithm for finding a path or generating a labyrinth in the maze is one example of the above-described recursive backtracking algorithm, and typically uses a method of selecting a next position from a current position. And if the next location does not exist, it finds a location that can branch again from the path that has been passed.

도 3은 본 발명의 일 실시예에 따른 단어 블록이 겹쳐서 존재하는지를 검토하는 과정을 보여주는 예시도이다. 도 2의 S1020 과정에서 선택한 블록이 겹쳐지는지 검사하는 작업을 수행하는 일 실시예이다. 단어 블록이 가장 잘 배열되는 경우는 세로로 또는 가로로 한줄의 형태로 존재하는 경우이다. 도 1의 크로스워드의 일부(20)는 9개의 단어 블록이 세로로 네줄씩 겹쳐져(혹은 가로로 세줄씩) 있으므로 크로스워드에 적합하지 않다. 따라서, 중첩하여 단어 블록이 겹치는 것을 검사하는 방법이 필요하다. 크로스워드(31)에서 '현재 위치'라 표시된 블록에서 단어 블록의 후보가 되는 벽 블록(21, 22) 중에서 윗쪽에 존재하는 벽 블록(21)을 단어 블록으로 할 경우 크로스워드(32)를 살펴보면 여러 단어 블록이 겹쳐짐을 알 수 있다. 단어 블록이 겹쳐지는지를 조사하기 위해서는 단어 블록의 후보가 되는 벽 블록을 중심으로 2x2 범위로 단어 블록만으로 구성된 영역이 존재하는지 살펴보는 것이다. 크로스워드(33)에서 벽 블록(21)을 중심으로 단어 블록으로만 이루어지는 2x2 영역을 살펴보면 41, 42, 43과 같다. 따라서 벽 블록(21)을 단어 블록으로 설정할 경우 크로스워드에 적합하지 않다. 반면 벽블록(22)을 단어 블록으로 할 경우, 크로스워드(35)에서 벽 블록(22)을 중심으로 단어 블록으로만 이루어지는 2x2 영역이 존재하지 않음을 알 수 있다. 따라서 벽 블록(22)을 단어 블록으로 선택한다.3 is an exemplary view illustrating a process of examining whether word blocks overlap with each other according to an embodiment of the present invention. In operation S1020 of FIG. 2, an operation of checking whether a selected block overlaps is performed. The best arrangement of word blocks is when they exist in a row, either vertically or horizontally. The portion 20 of the crossword of FIG. 1 is not suitable for crosswords since nine word blocks overlap four vertically (or three horizontally). Therefore, there is a need for a method of checking for overlapping word blocks. If the word block is a wall block 21 existing above the wall blocks 21 and 22 that are candidates for the word block in the block indicated by the current position in the crossword 31, the crossword 32 will be described. You can see that several word blocks overlap. In order to examine whether word blocks overlap, it is to check whether there is an area consisting of only word blocks in a 2x2 range around a wall block that is a candidate for word blocks. Looking at the 2x2 area of the crossword 33 consisting of only the word block centered on the wall block 21 is as follows 41, 42, 43. Therefore, when the wall block 21 is set as a word block, it is not suitable for crosswords. On the other hand, when the wall block 22 is a word block, it can be seen that there is no 2x2 region composed of only word blocks around the wall block 22 in the crossword 35. Therefore, the wall block 22 is selected as the word block.

도 4는 본 발명의 일 실시예에 따른 전체블록 중 단어 블록이 차지하는 밀도를 계산하는 과정을 보여주는 예시도이다. 4 is an exemplary view illustrating a process of calculating a density occupied by a word block among all blocks according to an embodiment of the present invention.

도 3에서 제시한 메커니즘을 적용할 경우 단어 블록이 가로 또는 세로로 중첩하지 않도록 프레임을 생성할 수 있다. 그러나 크로스워드에 너무 많은 단어가 들어갈 경우, 가독성이 떨어질 수 있다. 따라서 단어 블록이 전체 블록에서 차지하는 수가 미리 설정한 비율에 도달할 경우 프레임 생성을 중지할 수 있다. 도 4에서 크로스워드(35)의 단어 블록(45)이 다음 벽 블록(46)을 선택하기 전에 전체 크로스워드에서 단어 블록들이 차지하는 비율(밀도)를 검토한다. 그 결과 0.56으로 56%임을 알 수 있다. 만약 크로스워드를 생성시, 상기 비율을 50%라고 설정한 경우에 충분한 단어 블록들이 확보되었으므로 프레임 생성을 중지한다. When the mechanism shown in FIG. 3 is applied, a frame may be generated so that word blocks do not overlap horizontally or vertically. However, too many words in the crossword can reduce readability. Therefore, when the number of words occupies in the entire block reaches a preset ratio, the frame generation can be stopped. In Fig. 4, before the word block 45 of the crossword 35 selects the next wall block 46, the ratio (density) of the word blocks in the entire crossword is examined. As a result, 0.56 is 56%. If a crossword is generated, sufficient word blocks are secured when the ratio is set to 50%, so that frame generation is stopped.

도 4는 전체 크로스워드 프레임 내에서 단어 블록들이 차지하는 비율을 계산하고 있으나, 반드시 이에 국한되는 것은 아니다. 전체 크로스워드 프레임의 가로, 세로가 n, m 칸일때, 현재 단어 블록을 생성 또는 변환하는 위치를 기준으로 n/2, m/2 정도의 영역 내에 존재하는 단어들로 비율을 판단할 수 있다. 상기 영역을 정하는 것은 작게는 서너 칸 정도에서부터 크게는 전체 크로스워드 프레임을 대상으로 할 수 있다. 일부 영역에 대해서 비율을 검사할 경우에는 해당 영역에서 단어 블록이 차지하는 비율이 소정의 비율을 넘을 경우, 다른 영역으로 이동하여 단어 블록을 생성할 수 있다.Although FIG. 4 calculates the ratio of word blocks in the entire crossword frame, it is not limited thereto. When the width and length of the entire crossword frame are n and m columns, the ratio may be determined based on words existing in an area of about n / 2 and m / 2 based on the position where the current word block is generated or converted. Determining the area can be as small as three or four spaces and as a whole crossword frame. In the case of checking the ratio of some regions, if the ratio of the word block in the region exceeds a predetermined ratio, the word block may be generated by moving to another region.

도 5는 본 발명의 일 실시예에 따른 단어 블록이 지나치게 긴 경우 제한을 가하여 프레임을 변경하는 예시도이다.5 is an exemplary diagram of changing a frame by applying a restriction when a word block is too long according to an exemplary embodiment of the present invention.

도 2의 과정을 통해 생성된 크로스워드 프레임에서 연속된 단어블록이 일정 길이를 초과할 경우, 이를 만족시키는 단어가 존재하지 않을 수 있다. 따라서, 미 리 정해진 단어 길이보다 더 긴 연속된 단어 블록이 존재할 경우에는 단어 블록을 벽 블록으로 변환시키는 과정이 필요하다. 도 5의 크로스워드 프레임(50)에서 가장 아래단의 51, 52 블록을 포함하는 가로 단어 블록이 총 6개이다. 그런데 크로스워드 프레임(50)에서 허용가능한 길이는 총 5칸이므로 51, 52 블록을 포함하는 가로 단어 블록들은 수정할 수 있다. 그 결과, 52 블록을 단어 블록이 아닌 벽 블록으로 바꿀 수 있다. 새로이 단어 블록을 벽 블록으로 바꿀 경우, 전체 크로스워드 프레임에서 단어 블록이 차지하는 밀도가 소정의 정해진 비율보다 낮아질 수 있다. 이때에는 단어 블록 중에서 랜덤하게 선택하여 그 위치에서 도 2에서 살펴본 프레임 생성 방법을 적용할 수 있다. When the consecutive word blocks in the crossword frame generated through the process of FIG. 2 exceed a predetermined length, a word that satisfies this may not exist. Therefore, when there is a contiguous word block longer than a predetermined word length, a process of converting the word block into a wall block is necessary. In the crossword frame 50 of FIG. 5, there are a total of six horizontal word blocks including the lowermost 51 and 52 blocks. However, since the allowable length in the crossword frame 50 is 5 spaces in total, horizontal word blocks including 51 and 52 blocks can be modified. As a result, 52 blocks can be replaced with wall blocks instead of word blocks. When the word block is newly replaced with the wall block, the density of the word block in the entire crossword frame may be lower than a predetermined ratio. In this case, the frame generation method described in FIG. 2 may be applied at random from the word blocks.

한편, 하나의 단어 블록만으로 구성된 경우 크로스워드 게임에 적합하지 않을 수 있으므로, 최소 길이의 측면에서도 블록을 재설정할 수 있다. 하나의 단어 블록만으로 구성된 경우, 주변의 벽 블록을 변경하여 단어 블록으로 하고, 이에대해 크로스워드 프레임을 생성하는데 필요한 기준을 재적용하여 만족시키는지를 검사할 수 있다.On the other hand, if it consists of only one word block may not be suitable for the crossword game, the block can also be reset in terms of the minimum length. In the case of only one word block, it is possible to check whether the surrounding wall block is changed to the word block and reapply and satisfy the criteria necessary to generate the crossword frame.

도 6은 본 발명의 일 실시예에 따른 단어를 선택하며 프레임을 변경하는 예시도이다.6 is an exemplary diagram of selecting a word and changing a frame according to an embodiment of the present invention.

도 2의 과정과 도 5의 과정을 통해 크로스워드 프레임을 생성하고, 최대 단어 길이를 넘는 단어 블록의 연속을 변경하는 작업이 완료하면, 단어 블록들에 단어를 할당하는 작업을 수행한다. 도 6에 도시된 바와 같이 크로스워드 프레임(55)에 몇 개의 단어가 할당되어 있다. 단어를 할당하는 과정에 있어서 해당 연속된 단 어 블록들 중 이미 정해진 알파벳 또는 글자가 있을 시에는 그 알파벳 또는 글자에 해당하는 단어를 할당한다. 예를 들어, 연속 3칸의 단어 블록으로 되어있으며, 두번째 글자가 "s"로 정해져 있다면 단어 길이가 3 이며 두번째 글자가 "s"인 단어를 찾아서 할당한다. When the crossword frame is generated through the process of FIG. 2 and FIG. 5 and the task of changing the continuation of the word block exceeding the maximum word length is completed, the task of assigning words to the word blocks is performed. As shown in FIG. 6, several words are assigned to the crossword frame 55. In the process of assigning a word, if there is a predetermined alphabet or letter among the consecutive word blocks, the word corresponding to the alphabet or letter is assigned. For example, if there are three consecutive word blocks, and the second letter is set to "s", the word length is 3 and the second letter is "s".

크로스워드 프레임(55)의 연속된 단어 블록(56)을 살펴볼 때, 총 5개의 글자로 이루어지며, 첫번째, 세번째, 다섯번째 글자가 각각 "w", "n", "r" 인 단어를 할당할 수 있다. 그런데 만약 단어 데이터베이스에 이러한 단어가 없다면, 단어 블록의 배치를 변경할 수 있다. 연속된 단어 블록들(56)에서 가장 오른쪽에 "r"이 위치한 단어 블록(61)을 벽 블록(62)으로 변경한다. 그러면 "wind"라는 단어를 할당할 수 있다. 한편, 단어 블록(61)이 벽 블록(62)으로 변경됨에 따라, "rear"라는 단어에서 "rea"라는 단어로 변경된다. 만약 "rea"가 단어 데이터베이스에 있다면 무관하지만 단어 데이터베이스에 "rea"가 존재하지 않는다면 이 부분에 대해 단어를 재할당한다. 첫번째 글자인 "r"이 다른 연속된 단어 블록과 관계되므로, 첫번째 글자가 "r"이며 세칸으로 이루어진 단어를 검색하여 58과 같이 "roi"를 할당할 수 있다. In the continuous word block 56 of the crossword frame 55, a total of five letters are allocated, and the first, third, and fifth letters are assigned the words "w", "n", and "r", respectively. can do. If there are no such words in the word database, you can change the placement of the word block. In the contiguous word blocks 56, the word block 61 at which "r" is located at the far right is changed to the wall block 62. You can then assign the word "wind". On the other hand, as the word block 61 is changed to the wall block 62, the word block 61 is changed from the word "rear" to the word "rea". If "rea" is in the word database, it is irrelevant, but if "rea" does not exist in the word database, the word is reallocated for this part. Since the first letter "r" is related to another contiguous block of words, the first letter is "r" and a word consisting of three spaces can be searched and assigned "roi" as shown in 58.

도 6은 단어를 할당하기 어려운 경우 단어 블록을 벽 블록으로 변경하는 과정을 보여주고 있다. 한편, 벽 블록을 단어 블록으로 변경하여 한 글자 또는 두 글자를 추가를 할 수도 있다. 이때에는 변경된 단어 블록으로 다른 연속된 단어 블록들과 연결되지 않도록 하는 과정을 필요로 한다. 또한 도 3에서 제시한 메커니즘을 적용하여 단어 블록이 가로 세로로 중첩되는 것을 방지할 수 있다. 6 shows a process of changing a word block into a wall block when it is difficult to assign a word. Meanwhile, the wall block may be changed to a word block to add one or two letters. In this case, a process of preventing the changed word block from being connected with other consecutive word blocks is required. In addition, by applying the mechanism shown in FIG. 3, the word blocks may be prevented from overlapping horizontally and vertically.

도 7은 본 발명의 일 실시예에 따른 크로스워드를 생성하는 장치의 구성도이다.7 is a block diagram of an apparatus for generating a crossword according to an embodiment of the present invention.

본 실시예에서 사용되는 '~부'라는 용어, 즉 '~모듈' 또는 '~테이블' 등은 소프트웨어, FPGA(Field Programmable Gate Array) 또는 주문형 반도체(Application Specific Integrated Circuit, ASIC)와 같은 하드웨어 구성요소를 의미하며, 모듈은 어떤 기능들을 수행한다. 그렇지만 모듈은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. 모듈은 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 모듈은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 구성요소들과 모듈들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 모듈들로 결합되거나 추가적인 구성요소들과 모듈들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 모듈들은 디바이스 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다.As used herein, the term 'unit', that is, 'module' or 'table' or the like, refers to a hardware component such as software, a field programmable gate array (FPGA), or an application specific integrated circuit (ASIC). The module performs some functions. However, modules are not meant to be limited to software or hardware. The module may be configured to be in an addressable storage medium and may be configured to play one or more processors. Thus, as an example, a module may include components such as software components, object-oriented software components, class components, and task components, and processes, functions, properties, procedures, subroutines. , Segments of program code, drivers, firmware, microcode, circuits, data, databases, data structures, tables, arrays, and variables. The functionality provided within the components and modules may be combined into a smaller number of components and modules or further separated into additional components and modules. In addition, the components and modules may be implemented to reproduce one or more CPUs in a device.

크로스워드를 생성하는 장치(400)는 사용자 인터페이스부(310), 프레임 생성부(320), 프레임 조절부(330), 단어 구성부(340), 저장부(350), 그리고 단어 데이터베이스(360)로 구성된다. 크로스워드 생성부(400)는 통상의 컴퓨터 시스템에 내재된 프로그램의 형태로 존재할 수 있으며, 이러한 프로그램이 탑재된 단말 장치, 휴대폰, 노트북, 서버 등을 포함한다.The apparatus 400 for generating a crossword includes a user interface 310, a frame generator 320, a frame controller 330, a word constructer 340, a storage 350, and a word database 360. It consists of. The crossword generation unit 400 may exist in the form of a program inherent in a general computer system, and includes a terminal device, a mobile phone, a notebook computer, a server, and the like on which the program is mounted.

사용자 인터페이스부(310)는 크로스워드 프레임의 크기, 예를 들어, 가로, 세로 몇 칸으로 할 것인가, 또는 전체 크로스워드 프레임에서 단어 블록이 차지하는 비율(밀도)은 어느정도로 할 것인가, 단어 데이터베이스(360)에서 어떤 난이도의 단어를 할당할 것인가 등등을 설정한다. 프레임 생성부(320)는 크로스워드에 사용될 가로, 세로의 프레임을 생성한다. 앞서 예로 든 재귀적 역추적 알고리즘과 같이 미로를 생성하거나 미로에서 경로를 생성하는데 적용한 알고리즘들을 이용하여 프레임을 생성할 수 있다. 또한, 생성 중에 크로스워드에 알맞도록 겹쳐지거나 중첩되는 단어 블록들이 존재하지 않도록 검사한다. 그리고 생성된 단어 블록의 수가 전체 크로스워드 프레임 또는 일정 영역 내에서 일정 비율을 만족하면 생성을 중지하거나 다른 영역으로 이동하여 단어 블록을 생성할 수 있다. 프레임 조절부(330)는 프레임 생성부(320)가 생성한 크로스워드 프레임에서 단어 길이와 조건에 맞게 처리하도록 생성된 크로스워드 프레임을 변경하는 작업을 한다. 변경하는 작업이란 도 5에서 일 실시예로 살펴본 최대 단어 길이를 넘는 연속된 단어 블록이 존재할 경우, 단어 블록을 벽 블록으로 변경하는 작업을 포함한다. The user interface unit 310 determines the size of the crossword frame, for example, how many spaces and heights, or what percentage (density) the word block occupies in the entire crossword frame. ), Set the difficulty level of the word and so on. The frame generator 320 generates horizontal and vertical frames to be used in the crossword. Like the recursive backtracking algorithm described above, a frame may be generated using algorithms applied to generating a maze or a path generated from the maze. It also checks that there is no overlapping or overlapping word blocks to suit the crossword during generation. If the number of generated word blocks satisfies a certain ratio within the entire crossword frame or a certain region, the word block may be generated by stopping the generation or moving to another region. The frame adjuster 330 changes the crossword frame generated to process the word length and the condition in the crossword frame generated by the frame generator 320. The changing operation includes changing a word block to a wall block when there is a contiguous word block exceeding the maximum word length described in FIG. 5.

단어 구성부(340)는 단어 데이터 베이스(350)에 있는 단어들을 선택해서 단어 블록에 할당한다. 둘 이상의 세로 또는 가로로 연속된 단어 블록들에 글자가 들어가도록 설정할 수 있다. 이때, 도 6에서 살펴본 바와 같이, 이미 생성된 크로스워드 프레임에 할당할 단어가 없을 경우에는 부분적으로 프레임을 구성하는 단어 블록을 변경하는 작업을 수행한다.The word constructing unit 340 selects words in the word database 350 and assigns them to the word block. Letters may be set to enter two or more vertically or horizontally consecutive word blocks. In this case, as shown in FIG. 6, when there is no word to be allocated to the generated crossword frame, a task of partially changing the word block constituting the frame is performed.

저장부(350)는 생성된 크로스워드 프레임과 이에 할당되는 단어 및 설명들을 저장하여 크로스워드 게임을 이용할 수 있게 한다. 특히, 크로스워드 게임을 인터넷, 또는 무선의 네트워크를 통해 이용할 수 있도록, 다른 시스템에 전송할 수 있다. 이때에는 저장부(350)에 저장된 데이터를 다른 여러 시스템에 반복적으로 송신하여 사용자가 이용할 수 있게 할 수 있다.The storage unit 350 stores the generated crossword frame and words and descriptions assigned thereto to use the crossword game. In particular, crossword games can be transferred to other systems for use over the Internet, or wireless networks. In this case, the data stored in the storage 350 may be repeatedly transmitted to other systems to be available to the user.

또한 서버에 접속하여 상기 저장부(350)에 저장된 크로스워드 게임을 이용하는 서비스를 제공할 경우에는 접속한 사용자의 사용 실적에 대한 정보도 함께 저장할 수 있다.In addition, when providing a service using a crossword game stored in the storage unit 350 by accessing the server may store information on the usage history of the connected user.

단어 데이터베이스(360)는 크로스워드에 할당할 단어들을 정리한 공간이다. 단어 데이터베이스(360)는 단순히 단어들만을 저장할 수 있으며, 크로스워드를 쉽게 또는 체계적으로 생성하기 위해 단어들에 대한 여러 정보를 함께 저장할 수도 있다. 예를 들어, 해당 단어가 어떤 카테고리에 해당하는지, 단어의 난이도 또는 단어의 설명에 대한 정보, 그리고 단어에 대한 설명이 텍스트, 오디오 또는 이미지인지에 대한 정보를 함께 저장할 수 있다. 표 1은 단어 데이터베이스를 구성하기 위해 필요한 정보들을 보여준다.The word database 360 is a space in which words to be assigned to a crossword are arranged. The word database 360 may simply store only words, or may store various information about words in order to easily or systematically generate crosswords. For example, information about a category corresponding to the word, a difficulty level of the word or a description of the word, and information about whether the description of the word is text, audio, or an image may be stored together. Table 1 shows the information needed to construct a word database.

레코드 명Record name 설명Explanation numbernumber 일련번호Serial Number lengthlength 단어길이Word length categorycategory 단어가 포함되는 카테고리Categories that contain words difficultydifficulty 난이도(0~9)Difficulty (0-9) wordword 단어word descriptiondescription 설명Explanation operationoperation 동작 설명(0-텍스트, 1-오디오, 2-이미지)Action description (0-text, 1-audio, 2-image) prioritypriority 우선순위Priority duplicationduplication 중복 여부Duplicate

일련 번호는 데이터베이스에서 해당 레코드에 대해 유일하게 할당되는 식별자라 볼 수 있다. 단어 길이는 해당 단어가 몇 개의 글자 또는 몇 개의 알파벳으로 구성되는가에 대한 정보이다. 카테고리는 카테고리별로 크로스워드 게임을 제공할 경우에 참조할 수 있는 정보이다. 과학, 영화, 시사 등등 카테고리별로 크로스워드를 제공할 경우에 사용한다. 난이도는 크로스워드의 난이도를 적절히 조절하기 위함이다. 크로스워드의 난이도가 정해져 있다면, 크로스워드에 할당될 단어들의 난이도들의 전체 평균을 계산하여 크로스워드의 난이도를 달리 제공할 수 있다. 설명은 단어에 대한 설명이다. 동작 설명은 단어에 대한 설명이 텍스트, 오디오, 이미지등 다양한 방식으로 제공될 경우 적용한다. 우선순위는 크로스워드에 단어를 배치할 경우, 어떤 단어를 먼저 할 것인지를 판단하는 기준이 된다.The serial number is considered to be the only identifier assigned to that record in the database. The word length is information on how many letters or alphabets the word consists of. The category is information that can be referred to when providing a crossword game for each category. Used to provide crosswords by category, such as science, film, current affairs, etc. The difficulty is to properly control the difficulty of the crossword. If the difficulty level of the crossword is determined, the difficulty of the crossword may be provided by calculating an overall average of the difficulty levels of words to be assigned to the crossword. Description is a description of the word. The action description is applied when the description of the word is provided in various ways such as text, audio, and image. Priority is a criterion for determining which word to put first when placing words in a crossword.

본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구의 범위에 의하여 나타내어지며, 특허청구의 범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.Those skilled in the art will appreciate that the present invention can be embodied in other specific forms without changing the technical spirit or essential features of the present invention. Therefore, it should be understood that the embodiments described above are exemplary in all respects and not restrictive. The scope of the present invention is indicated by the scope of the following claims rather than the detailed description, and all changes or modifications derived from the meaning and scope of the claims and the equivalent concept are included in the scope of the present invention. Should be interpreted.

본 발명을 구현함으로써 다양한 크로스워드 게임을 사용자의 개입없이 자동으로 제공할 수 있다.By implementing the present invention, various crossword games can be automatically provided without user intervention.

본 발명을 구현함으로써 크로스워드 게임을 생성하는데 필요한 비용을 절감할 수 있으며, 또한 다양한 서비스를 제공할 수 있다.By implementing the present invention it is possible to reduce the cost required to create a crossword game, and can also provide a variety of services.

Claims (5)

크로스워드를 생성하기 위해 필요한 소정의 기준을 설정하는 단계;Setting predetermined criteria necessary to generate a crossword; 미로에서 경로를 찾거나 미로를 생성하는 알고리즘에 기반하여 단어를 구성하는 글자가 위치하게 되는 단어 블록을 크로스워드를 구성하는 다수의 벽 블록들에서 선택하고, 상기 선택한 벽 블록을 단어 블록으로 설정하여 크로스워드 프레임을 생성하는 단계; 및Based on an algorithm for finding a path in a maze or generating a maze, a word block in which a letter constituting a word is located is selected from a plurality of wall blocks constituting a crossword, and the selected wall block is set as a word block. Generating a crossword frame; And 상기 단어 블록에 상기 소정의 기준을 만족하는 단어를 할당하는 단계를 포함하며,Assigning a word satisfying the predetermined criterion to the word block; 상기 생성하는 단계에서 단어 블록을 선택하는 기준은 상기 선택한 블록이 가로 및 세로로 연속된 다른 둘 이상의 단어 블록들과 연속하여 존재하지 않도록 선택하는 것을 특징으로 하는, 크로스워드 게임을 자동으로 생성하는 방법.The criterion for selecting a word block in the generating step is characterized in that the selected block is selected so that it does not exist in succession with two or more other word blocks consecutively in a horizontal and vertical manner. . 제 1항에 있어서,The method of claim 1, 상기 단어를 할당하는 단계는, Assigning the word, 상기 단어 블록에 할당할 단어가 없는 경우, 상기 단어 블록을 단어가 할당되지 않는 벽 블록으로 설정하거나, 또는 상기 단어 블록에 연결된 벽 블록을 단어 블록으로 변경하거나 또는 상기 단어 블록과 연결된 다른 단어 블록의 단어를 변경하는 것을 특징으로 하는, 크로스워드 게임을 자동으로 생성하는 방법.If there is no word to assign to the word block, the word block is set to a wall block to which no word is assigned, or the wall block connected to the word block is changed to a word block, or another word block connected to the word block. A method of automatically generating a crossword game, characterized by changing words. 미로에서 경로를 찾거나 미로를 생성하는 알고리즘에 기반하여 단어를 구성하는 글자가 위치하게 되는 단어 블록을 크로스워드를 구성하는 다수의 벽 블록들에서 선택하고, 상기 선택한 벽 블록을 단어 블록으로 설정하여 크로스워드 프레임을 생성하는 프레임 생성부;Based on an algorithm for finding a path in a maze or generating a maze, a word block in which a letter constituting a word is located is selected from a plurality of wall blocks constituting a crossword, and the selected wall block is set as a word block. A frame generation unit generating a crossword frame; 상기 프레임 생성부에서 설정한 단어 블록을 조사하여, 단어의 길이에 따라 단어 블록을 벽 블록으로 변경하거나, 벽 블록을 단어 블록으로 변경하는 프레임 조절부;A frame adjusting unit which examines the word block set by the frame generation unit and changes the word block into a wall block or changes the wall block into a word block according to the length of the word; 단어 데이터베이스에 저장된 단어를 상기 단어 블록에 할당하며, 할당할 수 있는 단어가 존재하지 않는 경우 상기 생성된 크로스워드 프레임의 단어 블록을 벽 블록으로 변경하거나 벽 블록을 단어 블록으로 변경하는 단어 구성부; 및A word constructing unit for assigning a word stored in a word database to the word block and changing a word block of the generated crossword frame to a wall block or a wall block to a word block when no word is allocated; And 단어와 상기 단어를 설명하는 정보와 상기 단어를 상기 단어 블록에 할당하기 위한 소정의 기준에 대한 정보를 저장하는 단어 데이터베이스를 포함하며,A word database for storing words, information describing the word, and information about predetermined criteria for allocating the word to the word block; 상기 프레임 생성부는 단어 블록을 선택함에 있어서, 상기 선택한 블록이 가로 및 세로로 연속된 다른 둘 이상의 블록들과 연속하여 존재하지 않도록 선택하는 것을 특징으로 하는, 크로스워드 게임 자동 생성 장치.The frame generation unit, in selecting the word block, characterized in that the selected block is selected so as not to exist in succession with the other two or more blocks consecutively and vertically, crossword game automatic generation device. 제 3항에 있어서,The method of claim 3, wherein 상기 생성된 크로스워드 게임을 저장매체 또는 네트워크를 통해 제공하는 게임 제공부를 더 포함하는 것을 특징으로 하는, 크로스워드 게임 자동 생성 장치.And a game provider configured to provide the generated crossword game through a storage medium or a network. 크로스워드를 생성하기 위해 필요한 소정의 기준을 설정하고, Set up some criteria needed to generate a crossword, 미로에서 경로를 찾거나 미로를 생성하는 알고리즘에 기반하여 단어를 구성하는 글자가 위치하게 되는 단어 블록을 크로스워드를 구성하는 다수의 벽 블록들에서 선택하고, 상기 선택한 벽 블록을 단어 블록으로 설정하여 크로스워드 프레임을 생성하며, 상기 크로스워드 프레임을 생성시 단어 블록을 선택하는 기준은 상기 선택한 블록이 가로 및 세로로 연속된 다른 둘 이상의 단어 블록들과 연속하여 존재하지 않도록 단어 블록을 선택하며,Based on an algorithm for finding a path in a maze or generating a maze, a word block in which a letter constituting a word is located is selected from a plurality of wall blocks constituting a crossword, and the selected wall block is set as a word block. Generating a crossword frame, wherein the criterion for selecting a word block when generating the crossword frame selects a word block such that the selected block does not exist in succession with two or more other word blocks consecutively horizontally and vertically; 상기 단어 블록에 상기 소정의 기준을 만족하는 단어를 할당하는 동작을 수행하는 프로그램이 기록된 저장매체.And a program for allocating a word satisfying the predetermined criterion to the word block.
KR1020050038051A 2005-05-06 2005-05-06 Method and apparatus for generating crossword game automatically KR100746000B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050038051A KR100746000B1 (en) 2005-05-06 2005-05-06 Method and apparatus for generating crossword game automatically

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050038051A KR100746000B1 (en) 2005-05-06 2005-05-06 Method and apparatus for generating crossword game automatically

Publications (2)

Publication Number Publication Date
KR20060115775A true KR20060115775A (en) 2006-11-10
KR100746000B1 KR100746000B1 (en) 2007-08-06

Family

ID=37653015

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050038051A KR100746000B1 (en) 2005-05-06 2005-05-06 Method and apparatus for generating crossword game automatically

Country Status (1)

Country Link
KR (1) KR100746000B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113633980A (en) * 2021-08-04 2021-11-12 北京中清龙图网络技术有限公司 Data generation method and device, computer equipment and storage medium

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101111179B1 (en) 2009-10-19 2012-02-28 동국대학교 산학협력단 Method and apparatus for creating crossword puzzle
KR102081051B1 (en) 2018-11-20 2020-02-25 주식회사 피벗게임즈 Method, program and apparatus for automatically generating number-link puzzle maps

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3715808B2 (en) * 1998-10-30 2005-11-16 キヤノン株式会社 Process cartridge and electrophotographic image forming apparatus
CA2492228A1 (en) * 2002-07-01 2004-01-08 Yunoh Jung Dental modeling and articulating system and method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113633980A (en) * 2021-08-04 2021-11-12 北京中清龙图网络技术有限公司 Data generation method and device, computer equipment and storage medium
CN113633980B (en) * 2021-08-04 2023-12-05 北京中清龙图网络技术有限公司 Data generation method, device, computer equipment and storage medium

Also Published As

Publication number Publication date
KR100746000B1 (en) 2007-08-06

Similar Documents

Publication Publication Date Title
US10579370B2 (en) Method to disintegrate a monolith service to microservices
US11816559B2 (en) Dilated convolution using systolic array
US10031806B2 (en) Efficient repair of erasure coded data based on coefficient matrix decomposition
JP5894954B2 (en) Test case generation method, test case generation device, and program
US6996510B1 (en) System and method for modeling communication networks
US7853932B2 (en) System, method and computer program product for checking a software entity
CN110610352B (en) Flow processing method and device, electronic equipment and computer readable storage medium
CN108805565B (en) Block chain based commitment presence proving method, device and readable storage medium
JP2003280924A (en) Method for processing event having hierarchical structure in communication equipment system
CN102834806A (en) System structure managing device, method of managing system structure, and program
KR100746000B1 (en) Method and apparatus for generating crossword game automatically
CN104866556A (en) Database fault handling method and apparatus, and database system
JPH06290086A (en) Structure data processor
CN106559339A (en) A kind of message processing method and device
CN110012338A (en) A kind of method, apparatus, computer equipment and storage medium showing barrage data
CN109445770A (en) A kind of processing method of error code, device, medium and equipment
Rodríguez‐Martín et al. The ring/κ‐rings network design problem: Model and branch‐and‐cut algorithm
CN106909102A (en) For the controller board and control method of nuclear power plant reactor protection system
WO2006091119A1 (en) Method of stable incremental layout for a hierarchical graph representation
US20050050426A1 (en) Memory mapping for parallel turbo decoding
CN112925566B (en) Method and device for establishing virtual register survival interval and compiling method and device
CN111228815B (en) Method, apparatus, storage medium and system for processing configuration table of game
Başarir et al. Some difference sequence spaces of fuzzy number
CN105704189A (en) Correlation method, apparatus, and system between upper and lower layer links
US7672965B2 (en) Finite-state machine augmented for multiple evaluations of text

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee