모바일 사천성
설명 영상
기본 정보
- 사용 언어
- C#Unity
- 포지션
- 클라이언트
- 기간
- 2023.03 ~ 2023.06
- 팀 / 개인
- 팀
- 깃허브 링크
- GitHub에서 보기 →
프로젝트 소개
그리스 신화 속 괴물 세이렌을 모티프로 한 사천성 형식의 모바일 게임으로, 클라이언트 개발을 담당한 팀 프로젝트입니다.
사용 기술
- 길찾기 알고리즘 (A*, DFS)
프로젝트 구성
게임판 구성
- 타일 프리팹을 랜덤 생성한 뒤 짝이 맞도록 1쌍씩 같은 스프라이트로 배치
길찾기
- 길찾기 알고리즘으로 꺾임 횟수가 2회 미만인 루트를 탐색, 최대 2번까지만 꺾을 수 있는 사천성 규칙을 그대로 반영
게임 흐름
- 경로를 찾으면 LineRenderer로 이동 경로를 잠시 시각적으로 표시한 뒤, 매칭된 두 타일을 제거하고 그리드 상태 갱신
Class Diagram

세부 설계
타일 매칭 흐름
- GameManager가 보드 크기만큼 2차원 그리드를 만들고, 랜덤 좌표에 동일 스프라이트 타일 쌍을 배치
- 타일 클릭을 감지해 두 번째 클릭 시 타일 값을 비교하고, 값이 같고 서로 다른 타일이면 DFS 길찾기를 호출
DFS 백트래킹 경로 탐색
- 현재 위치에서 4방향으로 직진 탐색을 재귀적으로 시도하고, 막히면 꺾은 지점을 기록한 뒤 새로운 방향으로 재탐색
- U턴은 탐색 대상에서 제외, 꺾은 횟수가 2회를 넘으면 그 경로를 포기하고 백트래킹
- 초기에는 A* 알고리즘으로 구현을 시도했으나 비효율, 구현 어려움 사유로 폐기하고 꺾임 제한 규칙을 다루기 더 적합한 DFS 백트래킹 방식으로 재작성
매칭 결과 처리
- 경로 탐색에 성공하면 LineRenderer로 좌표를 순서대로 이어 이동 경로를 화면에 표시
- 표시가 끝나면 두 타일을 grid 배열에서 빈 칸으로 갱신하고 실제 타일 오브젝트를 제거