Ejemplo n.º 1
0
    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;
    }