요약 : 먼저 Graph(각 Slot이 vertex이고, 인접하고 길이 연결되는 tile 쌍을 edge로 연결한) 를 생성하고, 그에 맞게 tile 을 배치한다.

 

  1. 용어 정의

  2. 알고리즘

    1. tile을 배치하기 전에 그래프를 생성한다.

      • 먼저 시작점을 랜덤하게 선정한다.
      • 시작점에서 백트래킹을 시작하여 주어진 턴 횟수와 길이를 만족하는 패스를 생성한다.(이를 Main Path라 한다.)
      • Main Path를 따라 사용자가 지정한 Lock 과 Puzzle을 배치한다.
      • 이 때 이 지점은 Graph 에서 Articulation Point가 되도록 할 것이다.
      • 전 단계에서 배치한 Lock과 Puzzle을 경계로 하여 Section으로 나눈다.
      • 각 Section에 해당하는 Main Path를 사용자가 지정한 두께로 넓힌다.
      • 각 Section의 Main Path로부터 Sub Path를 생성한다. 이 때 생성하는 갈림길은 사용자가 지정한 난이도를 만족하도록 한다.
      • 이 때 cycle 을 허용한다. 즉 Sub Path 가 뻗어나가다가 다시 Main path와 연결되는 경우를 허용한다. 단 이 cycle은 Section 사이를 뛰어넘어서는 안 된다.
      • 이 단계까지 하면 그래프가 생성된다.
    2. 생성된 그래프를 만족하도록 각 slot에 Tile을 배치한다.

      • Tile 배치 원칙은 다음과 같다.
      • 그래프에 나타난 인접 Tile과의 연결 관계가 일치하는 Tile을 배치
      • 위의 원칙 하에, 인접한 Tile 간에 Tile 적합도가 높도록 배치한다.

graph(2).JPG