27 lines
761 B
C#

public class AIState: BasePlayerState
{
public override void OnEnter(GameLogic gameLogic)
{
gameLogic.FioTimer.StartTimer();
OmokAI.Instance.StartBestMoveSearch(gameLogic.GetBoard(), (bestMove) =>
{
if(bestMove.HasValue)
HandleMove(gameLogic, bestMove.Value.Item1, bestMove.Value.Item2);
});
}
public override void OnExit(GameLogic gameLogic)
{
gameLogic.FioTimer.InitTimer();
}
public override void HandleMove(GameLogic gameLogic, int row, int col)
{
ProcessMove(gameLogic, Enums.PlayerType.PlayerB,row, col);
}
public override void HandleNextTurn(GameLogic gameLogic)
{
gameLogic.SetState(gameLogic.FirstPlayerState);
}
}