diff --git a/Assets/Script/Game/GameLogic.cs b/Assets/Script/Game/GameLogic.cs
index ab4a325..8ff638f 100644
--- a/Assets/Script/Game/GameLogic.cs
+++ b/Assets/Script/Game/GameLogic.cs
@@ -13,7 +13,16 @@ public class GameLogic : MonoBehaviour
//마지막 배치된 좌표
public int lastRow;
public int lastCol;
-
+
+ #region Renju Members
+ // 렌주룰 금수 검사기
+ private RenjuForbiddenMoveDetector _forbiddenDetector;
+
+ // 현재 금수 위치 목록
+ private List<(Vector2Int position, ForbiddenType type)> _forbiddenMoves = new List<(Vector2Int, ForbiddenType)>();
+
+ #endregion
+
public GameLogic(StoneController stoneController, Enums.GameType gameType)
{
//보드 초기화
@@ -23,7 +32,10 @@ public class GameLogic : MonoBehaviour
selectedCol = -1;
lastRow = -1;
lastCol = -1;
-
+
+ // 금수 감지기 초기화
+ _forbiddenDetector = new RenjuForbiddenMoveDetector();
+
currentTurn = Enums.PlayerType.PlayerA;
SetState(currentTurn);
@@ -32,6 +44,10 @@ public class GameLogic : MonoBehaviour
private void SetState(Enums.PlayerType player)
{
currentTurn = player;
+
+ // 턴이 변경될 때마다 금수 위치 업데이트
+ UpdateForbiddenMoves();
+
_stoneController.OnStoneClickedDelegate = (row, col) =>
{
if (_board[row, col] == Enums.PlayerType.None)
@@ -93,4 +109,33 @@ public class GameLogic : MonoBehaviour
{
_stoneController.SetStoneState(state, row, col);
}
+
+
+ #region Renju Rule Detector
+
+ // 금수 위치 업데이트 및 표시
+ private void UpdateForbiddenMoves()
+ {
+ // TODO: 이전 금수 표시 제거
+
+
+ // 흑돌 차례에만 금수 규칙 적용
+ if (currentTurn == Enums.PlayerType.PlayerA)
+ {
+ // 모든 금수의 위치 찾기
+ _forbiddenMoves = _forbiddenDetector.FindAllForbiddenMoves(_board);
+ foreach (var forbiddenMove in _forbiddenMoves)
+ {
+ Vector2Int pos = forbiddenMove.position;
+ SetStoneNewState(Enums.StoneState.Blocked, pos.x, pos.y);
+ }
+ }
+ else
+ {
+ // 백돌 차례면 금수 목록 비우기
+ _forbiddenMoves.Clear();
+ }
+ }
+
+ #endregion
}
diff --git a/Assets/Script/Renju/RenjuForbiddenMoveDetector.cs b/Assets/Script/Renju/RenjuForbiddenMoveDetector.cs
index 557ed90..a764aa4 100644
--- a/Assets/Script/Renju/RenjuForbiddenMoveDetector.cs
+++ b/Assets/Script/Renju/RenjuForbiddenMoveDetector.cs
@@ -25,7 +25,7 @@ public class RenjuForbiddenMoveDetector
}
///
- /// 모든 금수 위치를 찾아 반환
+ /// 모든 금수 위치를 찾아 반환하는 함수
///
/// 현재 보드 상태
/// 금수 위치 목록 (각 위치별 금수 타입 정보 포함)