Exemple #1
0
        public static void Main(string[] args)
        {
            Console.BackgroundColor = ConsoleColor.DarkGray;
            Console.ForegroundColor = ConsoleColor.Black;

            Jogo   novojogo = new Jogo();
            Player Jogador  = new Player();
            CPU    IA       = new CPU();
            string resp     = "S";

            while (resp == "S")
            {
                Console.Clear();

                if (resp == "S")
                {
                    novojogo.CriaTabuleiro();
                    novojogo.PrintaTabuleiro();
                    int turno = 0;

                    while (!novojogo.gameOver)
                    {
                        turno++;
                        Jogador.VezJogador(novojogo);

                        if (!novojogo.VerficiaVencedor(turno))
                        {
                            turno++;
                            IA.VezIA(novojogo, turno);
                            novojogo.VerficiaVencedor(turno);
                        }
                        else
                        {
                            Console.Clear();
                            novojogo.VerficiaVencedor(turno);
                            novojogo.PrintaTabuleiro();
                        }
                    }

                    resp = "A";
                }
                Console.WriteLine("Fim de Jogo!\nQuer jogar novamente? S\\N");

                while (resp != "S" && resp != "N")
                {
                    if (resp != "S" && resp != "N")
                    {
                        Console.WriteLine("Responda apenas com S ou N!");
                    }
                    resp = Convert.ToString(Console.ReadLine());
                    resp = resp.ToUpper();
                }
            }
            Console.Write("Aperte qualquer tecla para continuar . . . ");
            Console.ReadKey(true);
        }
Exemple #2
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;
        }
Exemple #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;
         }
     }
 }