IEnumerator JogadaIA() { isCoroutineStarted = true; yield return(new WaitForSeconds(3)); TOEstado novoEstado = null; Random rnd = new Random(); int rndI = 0; List <TOEstado> lista; switch (config.NivelDificuldade) { case EnumDificuldade.FACIL: lista = algo.GeraEstados(this.tabuleiroAtual, jogadorIa); rndI = rnd.Next(0, lista.Count); novoEstado = lista[rndI]; break; case EnumDificuldade.MEDIO: rndI = rnd.Next(0, 100); if (rndI > 60) { lista = algo.GeraEstados(this.tabuleiroAtual, jogadorIa); rndI = rnd.Next(0, lista.Count); novoEstado = lista[rndI]; } else { novoEstado = algo.MinMaxV2(this.tabuleiroAtual, jogadorIa, 0); } break; case EnumDificuldade.DIFICIL: novoEstado = algo.MinMaxV2(this.tabuleiroAtual, jogadorIa, 0); break; } this.tabuleiroAtual = novoEstado; MatrixParaTabuleiro(novoEstado.Tabuleiro); if (this.tabuleiroAtual.EhEstadoFinal()) { estadoPartida = EnumEstadoPartida.FINALIZANDOJOGO; } else { estadoPartida = EnumEstadoPartida.JOGADOR01; } isCoroutineStarted = false; }