Ejemplo n.º 1
0
        //Segunda função inteligente.
        public void VezIA(Jogo obj, int turno)
        {
            int posL, posC;

            if (IAmove(obj, turno, IA_simbolo, out posL, out posC))
            {
                obj.tabuleiro[posL, posC] = 'O';
                Console.Clear();
                obj.PrintaTabuleiro();
                return;
            }
            else if (IAmove(obj, turno, J_simbolo, out posL, out posC))
            {
                obj.tabuleiro[posL, posC] = 'O';
                Console.Clear();
                obj.PrintaTabuleiro();
                return;
            }
            IAmove(obj, turno, J_simbolo, out posL, out posC);
            obj.tabuleiro[posL, posC] = 'O';
            Console.Clear();
            obj.PrintaTabuleiro();
            return;
        }
Ejemplo n.º 2
0
        //Verifica a melhor posição. (Máquina)
        private void MelhorPosicao(Jogo obj, int linha, int coluna)
        {
            linha  = -1;
            coluna = -1;

            if (linhaE == colunaE)
            {
                for (int i = 0; i < 3; i++)
                {
                    for (int j = 0; j < 3; j++)
                    {
                        if (i == j)
                        {
                            if (obj.tabuleiro[i, j] == '-')
                            {
                                linha  = i;
                                coluna = j;
                                return;
                            }
                        }
                    }
                }
            }

            if (linhaE + colunaE == 2)
            {
                for (int i = 0; i < 3; i++)
                {
                    for (int j = 0; j < 3; j++)
                    {
                        if (i + j == 2)
                        {
                            if (obj.tabuleiro[i, j] == '-')
                            {
                                linha  = i;
                                coluna = j;
                                return;
                            }
                        }
                    }
                }
            }

            for (int j = 0; j < 3; j++)
            {
                if (obj.tabuleiro[colunaE, j] == '-')
                {
                    linha  = linhaE;
                    coluna = j;
                    return;
                }
            }

            for (int j = 0; j < 3; j++)
            {
                if (obj.tabuleiro[j, colunaE] == '-')
                {
                    linha  = j;
                    coluna = colunaE;
                    return;
                }
            }
        }
Ejemplo n.º 3
0
 //Função inteligente.
 public void IA_Turno(Jogo obj)
 {
     if (D_Primaria(obj, J_simbolo, cpuC, cpuL) || D_Primaria(obj, IA_simbolo, cpuC, cpuL))
     {
         obj.tabuleiro[cpuL, cpuC] = 'O';
         Console.Clear();
         obj.PrintaTabuleiro();
         return;
     }
     else if (D_Secundaria(obj, J_simbolo, cpuC, cpuL) || D_Secundaria(obj, IA_simbolo, cpuC, cpuL))
     {
         obj.tabuleiro[cpuL, cpuC] = 'O';
         Console.Clear();
         obj.PrintaTabuleiro();
         return;
     }
     else if (Linhas(obj, J_simbolo, 0, cpuC) || Linhas(obj, IA_simbolo, 0, cpuC))
     {
         obj.tabuleiro[0, cpuC] = 'O';
         Console.Clear();
         obj.PrintaTabuleiro();
         return;
     }
     else if (Linhas(obj, J_simbolo, 1, cpuC) || Linhas(obj, IA_simbolo, 1, cpuC))
     {
         obj.tabuleiro[1, cpuC] = 'O';
         Console.Clear();
         obj.PrintaTabuleiro();
         return;
     }
     else if (Linhas(obj, J_simbolo, 2, cpuC) || Linhas(obj, IA_simbolo, 2, cpuC))
     {
         obj.tabuleiro[2, cpuC] = 'O';
         Console.Clear();
         obj.PrintaTabuleiro();
         return;
     }
     else if (Colunas(obj, J_simbolo, 0, out cpuL) || Colunas(obj, IA_simbolo, 0, out cpuL))
     {
         obj.tabuleiro[cpuL, 0] = 'O';
         Console.Clear();
         obj.PrintaTabuleiro();
         return;
     }
     else if (Colunas(obj, J_simbolo, 1, out cpuL) || Colunas(obj, IA_simbolo, 1, out cpuL))
     {
         obj.tabuleiro[cpuL, 1] = 'O';
         Console.Clear();
         obj.PrintaTabuleiro();
         return;
     }
     else if (Colunas(obj, J_simbolo, 2, out cpuL) || Colunas(obj, IA_simbolo, 2, out cpuL))
     {
         obj.tabuleiro[cpuL, 2] = 'O';
         Console.Clear();
         obj.PrintaTabuleiro();
         return;
     }
     else
     {
         MelhorPosicao(obj, cpuL, cpuC);
         if (cpuL != -1 && cpuC != -1)
         {
             obj.tabuleiro[cpuL, cpuC] = 'O';
             Console.Clear();
             obj.PrintaTabuleiro();
             return;
         }
     }
 }