예제 #1
0
        public static void controla(Player p)
        {
            if (p.colideFrente())  //Se colide a frente vira
            {
                if (p.getVX() != 0)
                {
                    p.setVY(escolhe(1, -1));
                }
                else
                {
                    p.setVX(escolhe(1, -1));
                }

                if (p.colideFrente())
                {
                    p.inverteVelocidade();
                }
            }
            else
            {
                if (chance(7))  //muda Direcao da marionete aleatoriamente
                {
                    int vx = p.getVX();
                    int vy = p.getVY();

                    if (p.getVX() != 0)
                    {
                        p.setVY(escolhe(1, -1));
                    }
                    else
                    {
                        p.setVX(escolhe(1, -1));
                    }

                    if (p.colideFrente())
                    {
                        p.setVelocidade(vx, vy);
                    }
                }
            }
        }
예제 #2
0
        static void Main(string[] args)
        {
            Estados Estado = Estados.DesenhaIntro;

            Player jogador1 = new Player();
            Player jogador2 = new Player();

            bool computador1 = false;
            bool computador2 = false;

            int vencedor  = 0;
            int botaoMenu = 0;
            int empate    = 0;

            while (true)
            {
                Controle.atualiza();
                if (Controle.PressESC)
                {
                    break;
                }

                switch (Estado)
                {
                case Estados.DesenhaIntro:
                    Console.Clear();
                    botaoMenu = 0;
                    Menus.imprimeIntro();
                    Menus.imprimeMenu();
                    Console.SetCursorPosition(31, 5 + botaoMenu);
                    Console.Write(">");
                    Console.SetCursorPosition(31, 5 + botaoMenu);
                    Estado++;
                    break;

                //30,5
                case Estados.Menu:
                    if (Controle.PressW || Controle.PressS || Controle.PressCIM || Controle.PressBAI)
                    {
                        Console.SetCursorPosition(31, 5 + botaoMenu);
                        Console.Write(" ");

                        if ((Controle.PressCIM) || (Controle.PressW))
                        {
                            botaoMenu--;
                        }
                        if ((Controle.PressBAI) || (Controle.PressS))
                        {
                            botaoMenu++;
                        }
                        if (botaoMenu > 2)
                        {
                            botaoMenu = 0;
                        }
                        if (botaoMenu < 0)
                        {
                            botaoMenu = 2;
                        }
                        Console.SetCursorPosition(31, 5 + botaoMenu);
                        Console.Write(">");
                    }

                    if (Controle.PressENTER)
                    {
                        Estado++;
                        Console.Clear();
                    }
                    break;

                case Estados.CarregaSala:
                    //Zera Jogadores;
                    jogador1.setPosicao(-5 + Tabuleiro.TW / 4, Tabuleiro.TH / 2);
                    jogador1.setVelocidade(1, 0);

                    jogador2.setPosicao(6 + 3 * Tabuleiro.TW / 4, Tabuleiro.TH / 2);
                    jogador2.setVelocidade(-1, 0);


                    //Determina quem vai ser IA e quem não vai ser IA;
                    if (botaoMenu == 0)
                    {
                        computador1 = false;
                        computador2 = false;
                    }
                    else if (botaoMenu == 1)
                    {
                        computador1 = false;
                        computador2 = true;
                    }
                    else
                    {
                        computador1 = true;
                        computador2 = true;
                    }

                    Menus.imprimeIntro();
                    System.Threading.Thread.Sleep(1000);
                    //Zera Tabuleiro
                    Tabuleiro.zeraSala();
                    Estado++;

                    break;

                case Estados.Jogo:
                    if (computador1)
                    {
                        Controlador.controla(jogador1);
                    }
                    else
                    {
                        if (Controle.PressA)
                        {
                            jogador1.setVX(-1);
                        }
                        if (Controle.PressD)
                        {
                            jogador1.setVX(1);
                        }
                        if (Controle.PressW)
                        {
                            jogador1.setVY(-1);
                        }
                        if (Controle.PressS)
                        {
                            jogador1.setVY(1);
                        }
                    }

                    if (computador2)
                    {
                        Controlador.controla(jogador2);
                    }
                    else
                    {
                        if (Controle.PressESQ)
                        {
                            jogador2.setVX(-1);
                        }
                        if (Controle.PressDIR)
                        {
                            jogador2.setVX(1);
                        }
                        if (Controle.PressCIM)
                        {
                            jogador2.setVY(-1);
                        }
                        if (Controle.PressBAI)
                        {
                            jogador2.setVY(1);
                        }
                    }

                    jogador1.atualiza();
                    jogador2.atualiza();

                    jogador1.desenha();
                    jogador2.desenha();

                    empate   = 0;
                    vencedor = 0;

                    if (jogador1.morreu())
                    {
                        vencedor = 2; jogador1.jogadorDesenhaMorte(); empate++;
                    }
                    if (jogador2.morreu())
                    {
                        vencedor = 1; jogador2.jogadorDesenhaMorte(); empate++;
                    }

                    if (empate == 2)
                    {
                        vencedor = 3;
                    }
                    if (vencedor != 0)
                    {
                        Estado++;
                    }

                    jogador1.marca();
                    jogador2.marca();

                    System.Threading.Thread.Sleep(100);
                    break;

                case Estados.TelaVencedor:
                    System.Threading.Thread.Sleep(500);
                    Console.Clear();
                    Console.SetCursorPosition(Tabuleiro.TX + Tabuleiro.TW / 3, Tabuleiro.TY + Tabuleiro.TH / 3);
                    if (vencedor == 3)
                    {
                        Console.Write("O jogo empatou :(");
                    }
                    else
                    {
                        Console.Write("Jogador {0} Venceu! :D", vencedor);
                    }
                    System.Threading.Thread.Sleep(2000);

                    Estado = 0;
                    break;
                }
            }
        }