public AI_Result[] IsAnyForks(GridPosition[] positions, char player) { AI_Result[] results; if (positions.Count(p => p.character == ' ') == 2 && positions.Count(p => p.character == player) == 1) { GridPosition[] f = positions.Where(p => p.character == ' ').ToArray(); results = new AI_Result[f.Length]; for (int i = 0; i < f.Length; i++) { results[i] = new AI_Result { sucess = true, x = f[i].x, y = f[i].y }; } return(results); } results = new AI_Result[0]; return(results); }
public AI_Result[] GetFork(char player) { AI_Result[] aux; aux = IsAnyForks(GameManager.GetRow(0), player); if (aux.Length > 0) { return(aux); } aux = IsAnyForks(GameManager.GetRow(1), player); if (aux.Length > 0) { return(aux); } aux = IsAnyForks(GameManager.GetRow(2), player); if (aux.Length > 0) { return(aux); } aux = IsAnyForks(GameManager.GetRow(0), player); if (aux.Length > 0) { return(aux); } aux = IsAnyForks(GameManager.GetRow(1), player); if (aux.Length > 0) { return(aux); } aux = IsAnyForks(GameManager.GetRow(2), player); if (aux.Length > 0) { return(aux); } aux = IsAnyForks(GameManager.GetDiagonal1(), player); if (aux.Length > 0) { return(aux); } aux = IsAnyForks(GameManager.GetDiagonal2(), player); if (aux.Length > 0) { return(aux); } aux = new AI_Result[0]; return(aux); }
public AI_Result IsAnyBlock(char enemyChar) { AI_Result g = new AI_Result { sucess = false }; if (GameManager.instance.player1.timesPlayed < 2) { return(g); } Debug.Log("IsAnyBlock " + enemyChar); //Horizontal g = CheckBlock(GameManager.GetRow(0), enemyChar); if (g) { return(g); } g = CheckBlock(GameManager.GetRow(1), enemyChar); if (g) { return(g); } g = CheckBlock(GameManager.GetRow(2), enemyChar); if (g) { return(g); } g = CheckBlock(GameManager.GetCollum(0), enemyChar); if (g) { return(g); } g = CheckBlock(GameManager.GetCollum(1), enemyChar); if (g) { return(g); } g = CheckBlock(GameManager.GetCollum(2), enemyChar); if (g) { return(g); } g = CheckBlock(GameManager.GetDiagonal1(), enemyChar); if (g) { return(g); } g = CheckBlock(GameManager.GetDiagonal2(), enemyChar); if (g) { return(g); } g.sucess = false; return(g); }
public void Play(AI_Result play) { Debug.Log(play); GetPosition(play.x, play.y).OnClick(); }