예제 #1
0
        public IEnumerable <Estado> JogadasPossiveisDoOponente(Estado estadoAtual)
        {
            EstadoLig4 atual = (estadoAtual as EstadoLig4);

            List <EstadoLig4> proximosEstados = new List <EstadoLig4>();

            // @@@
            int idDoOponente;

            if (id == EstadoLig4.X)
            {
                idDoOponente = EstadoLig4.O;
            }
            else
            {
                idDoOponente = EstadoLig4.X;
            }
            for (int coluna = 0; coluna < EstadoLig4.COLUNAS; coluna++)
            {
                for (int linha = (EstadoLig4.LINHAS - 1); linha >= 0; linha--)
                {
                    if (atual.IsCelulaVazia(linha, coluna) == true)
                    {
                        proximosEstados.Add(atual.MarcarCelula(linha, coluna, idDoOponente));
                        break;
                    }
                }
            }
            return(proximosEstados);
        }
예제 #2
0
        public override Estado EfetuarJogada(Estado estadoAtual)
        {
            // o jogador fácil não utiliza o minimax...
            // apenas adiciona a peça na primeira coluna vazia

            EstadoLig4 atual = (estadoAtual as EstadoLig4);

            for (int coluna = 0; coluna < EstadoLig4.COLUNAS; coluna++)
            {
                for (int linha = (EstadoLig4.LINHAS - 1); linha >= 0; linha--)
                {
                    if (atual.IsCelulaVazia(linha, coluna) == true)
                    {
                        return(atual.MarcarCelula(linha, coluna, Id));
                    }
                }
            }
            return(null);
        }
예제 #3
0
        public override Estado EfetuarJogada(Estado estadoAtual)
        {
            // o jogador aleatório não utiliza o minimax...
            // apenas adiciona a peça na em uma coluna aleatória (e vazia)

            EstadoLig4 atual = (estadoAtual as EstadoLig4);

            // @@@
            for (; ;)
            {
                int coluna = random.Next(EstadoLig4.COLUNAS);

                for (int linha = (EstadoLig4.LINHAS - 1); linha >= 0; linha--)
                {
                    if (atual.IsCelulaVazia(linha, coluna) == true)
                    {
                        return(atual.MarcarCelula(linha, coluna, Id));
                    }
                }
            }
        }