DO-4 [Feat] Omok에서 호출 가능한 승패 함수 추가

This commit is contained in:
Sehyeon 2025-03-20 14:00:51 +09:00
parent fc321e9cda
commit 94c5c4837c
3 changed files with 10 additions and 4 deletions

View File

@ -243,7 +243,7 @@ public static class AIEvaluator
}
// 방향이 평행한지 확인하는 함수
private static bool AreParallelDirections(int[] dir1, int[] dir2)
private static bool AreParallelDirections(int[] dir1, int[] dir2) // Vector로 변경
{
return (dir1[0] == dir2[0] && dir1[1] == dir2[1]) ||
(dir1[0] == -dir2[0] && dir1[1] == -dir2[1]);
@ -320,6 +320,7 @@ public static class AIEvaluator
foreach (var dir in Directions)
{
// 평가를 위한 가상 보드이기에 캐시 데이터에 저장X
var (count, openEnds) = MiniMaxAIController.CountStones(board, row, col, dir, AIPlayer, false);
aiPatterns.Add((dir, count, openEnds));

View File

@ -181,8 +181,6 @@ public static class MiniMaxAIController
Enums.PlayerType[,] board, int row, int col, int[] direction, Enums.PlayerType player, bool isSaveInCache = true)
{
int dirX = direction[0], dirY = direction[1];
// var key = (row, col, dirX, dirY);
var posKey = (row, col);
var dirKey = (dirX, dirY);
@ -271,7 +269,7 @@ public static class MiniMaxAIController
#endregion
// 최근에 둔 돌 위치 기반으로 게임 승리를 판별하는 함수
// !!!!!!MinimaxAIController 밖의 cs파일은 호출 시 맨 마지막을 false로 지정해야 합니다.!!!!!!
// MinimaxAIController 밖의 cs파일은 호출 시 맨 마지막을 false로 지정해야 합니다.
public static bool CheckGameWin(Enums.PlayerType player, Enums.PlayerType[,] board,
int row, int col, bool isSavedCache)
{

View File

@ -16,4 +16,11 @@ public class OmokAI : MonoBehaviour
(int row, int col)? bestMove = await Task.Run(() => MiniMaxAIController.GetBestMove(board));
callback?.Invoke(bestMove);
}
// true: Win, false: Lose
public bool CheckGameWin(Enums.PlayerType player, Enums.PlayerType[,] board, int row, int col)
{
bool isWin = MiniMaxAIController.CheckGameWin(player, board, row, col, false);
return isWin;
}
}