기획

타일은 5개, 칸 수는 16 * 16

1. 타일은 랜덤하게 생성된다.

2. 왼쪽 위의 첫번째 타일을 선택 영역으로 정하고, 게임이 진행된다.

3. 타일을 선택하면 선택 영역이 선택된 타일로 변경된다. 선택 영역의 이웃(4방향)에 선택한 타일과 동일한 타일의 영역이 있을경우 해당 영역도 선택 영역이 된다.

4. 타일은 변경시 왼쪽 위를 기준으로 동,남 방향으로 변경된다.

5. 전체 타일이 선택 영역이 되면 종료된다.

  



플로우

1. 각 칸에 랜덤하게 타일을 생성한다.

2. 최초 타일 생성 완료시 왼쪽 위의 첫 타일을 기준으로 차례로 비교하여 선택 영역을 설정한다.

 2-1) 자신을 기준으로 4방향으로 탐색하여 자신과 동일하면, 큐에 넣고 선택영역으로 설정한다. 큐에 타일이 존재하면 위의 작업을 반복한다.

3. 타일 클릭시 선택 영역과 선택 영역의 이웃한 타일 중 클릭타일과 동일한 영역을 클릭한 타일로 변경하고, 선택 영역으로 설정한다.

3-1) 왼쪽 위 첫 타일을 시작점으로 4방향 탐색을 하여, 선택 영역이거나, 클릭한 타일과 같으면 큐에 넣으며 선택 영역으로 체크, 한 사이클 완료시 큐에서 차례로 빼서 동일한 로직 진행. ( 접근했던 타일은 별도의 배열에 표시한다. - 중복되게 큐에 넣지 않기 위해)


3-2)  선택 영역의 테두리를 별도로 저장해놓는다. 선택 영역의 테두리만을 큐에 넣고, 큐를 1번과 같이 4방향 탐색과 큐를 이용하여 선택 영역으로 변경한다.  선택 영역에 대해 타일을 변경한다.

    - 테두리 판단 - 큐에서 꺼내어 4방향 판별을 할 때, 한 방향이라도 선댁영역, 클릭된 타일이 아니라면 테두리로 판단.


 * 3-1 선택 - 3-2는 선택 영역의 비교를 줄이고자 제안했으나, 타일을 변경하는 과정에서 결국 동일한 비교문이 사용된다. 비교적 간단한 로직 선택


4. 전체 영역이 선택 영역이 되면 종료된다.






* 지적은 언제나 환영입니다.

Posted by 검은거북

블로그 이미지
프로그래밍 공부 요약 및 공부하며 발생한 궁금증과 해결과정을 포스팅합니다.
검은거북

공지사항

Yesterday
Today
Total

달력

 « |  » 2024.10
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31

최근에 올라온 글

최근에 달린 댓글

글 보관함