반응형
- 코드 작성
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class WordSearch : MonoBehaviour
{
// 단어 찾기를 위한 2D 배열
char[,] wordGrid = {
{ '가', '나', '다', '라', '마' },
{ '바', '사', '아', '자', '차' },
{ '카', '타', '파', '하', '거' },
{ '너', '더', '러', '머', '버' },
{ '서', '어', '저', '처', '커' }
};
// 주어진 단어를 찾는 함수
bool FindWord(string word)
{
int rows = wordGrid.GetLength(0);
int cols = wordGrid.GetLength(1);
// 모든 셀을 순회하면서 단어 찾기 시도
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < cols; j++)
{
// 단어의 첫 글자와 일치하는 셀을 찾으면 시작
if (wordGrid[i, j] == word[0])
{
// 각 방향에 대해 검사
for (int direction = 0; direction < 8; direction++)
{
int rowChange = GetRowChange(direction);
int colChange = GetColChange(direction);
// 단어 길이만큼 순회하면서 검사
int k;
for (k = 1; k < word.Length; k++)
{
int newRow = i + k * rowChange;
int newCol = j + k * colChange;
// 배열을 벗어나면 검사 중지
if (newRow < 0 || newRow >= rows || newCol < 0 || newCol >= cols)
break;
// 현재 위치의 문자가 단어와 일치하지 않으면 검사 중지
if (wordGrid[newRow, newCol] != word[k])
break;
}
// 단어가 찾아졌다면 true 반환
if (k == word.Length)
return true;
}
}
}
}
// 단어를 찾지 못한 경우 false 반환
return false;
}
// 주어진 방향에 따른 행 변화량 반환
int GetRowChange(int direction)
{
switch (direction)
{
case 0: return -1; // 위
case 1: return -1; // 오른쪽 위 대각선
case 2: return 0; // 오른쪽
case 3: return 1; // 오른쪽 아래 대각선
case 4: return 1; // 아래
case 5: return 1; // 왼쪽 아래 대각선
case 6: return 0; // 왼쪽
case 7: return -1; // 왼쪽 위 대각선
default: return 0;
}
}
// 주어진 방향에 따른 열 변화량 반환
int GetColChange(int direction)
{
switch (direction)
{
case 0: return 0; // 위
case 1: return 1; // 오른쪽 위 대각선
case 2: return 1; // 오른쪽
case 3: return 1; // 오른쪽 아래 대각선
case 4: return 0; // 아래
case 5: return -1; // 왼쪽 아래 대각선
case 6: return -1; // 왼쪽
case 7: return -1; // 왼쪽 위 대각선
default: return 0;
}
}
void Start()
{
// 테스트를 위한 단어 찾기
string testWord = "가자"; // 테스트할 단어
bool wordFound = FindWord(testWord);
// 결과 출력
if (wordFound)
{
Debug.Log(testWord + " 단어를 찾았습니다!");
}
else
{
Debug.Log(testWord + " 단어를 찾지 못했습니다.");
}
}
}
반응형
'개발 > C#' 카테고리의 다른 글
유니티 C# 공 빛나는 효과 파티클 만들기 간단 구현 (0) | 2024.02.19 |
---|---|
유니티 C# IAP 국가코드 화폐 단위 가져오기 간단 구현 (0) | 2024.02.18 |
유니티 C# Json 형태 리소스 폴더에 CSV 저장 불러오기 간단 구현 (0) | 2024.02.18 |
유니티 C# 퀄리티 세팅 코드로 변경하는 방법 간단 구현 (0) | 2024.02.15 |
유니티 C# 인터넷 시간 가져오기 간단 구현 Unity Internet Time (0) | 2024.02.14 |
유니티 C# 인앱결제 영수증 검증하는 방법 간단 구현 (0) | 2024.02.14 |
유니티 C# 플레이어 몬스터 충돌 파티클 생성 간단 구현 (0) | 2024.02.14 |
유니티 C# 인앱 리뷰 시스템 간단 구현 Google Play In-App Review API (0) | 2024.02.14 |
댓글