Esempio n. 1
0
        private void Done_Click(object sender, EventArgs e)
        {
            int VeiculosMAxComboio = 0;
            int a = 0;

            //saber qual é o comboio com a maior extensão
            for (int i = 0; i < 10; i++)
            {
                for (int j = 0; j < 10; j++)
                {
                    if (Game.TabGame.CombSituacao[j, i] == 0)
                    {
                        a++;
                    }
                }
                if (a > VeiculosMAxComboio)
                {
                    VeiculosMAxComboio = a;
                }
                a = 0;
            }

            Game.TabGame.ComboioMaisExtenso = VeiculosMAxComboio;
            Game.Jogador1.Misseis           = Game.TabGame.ComboioMaisExtenso;
            Game.Jogador2.Misseis           = Game.TabGame.ComboioMaisExtenso;

            Game.TabGame.VeiculosLeft = Game.TabGame.NumVeiculos;

            Jogo jogo = new Jogo
            {
                Location = Location
            };

            jogo.Show();

            // Dispose não aciona o evento FormClosing.
            Dispose();
        }
Esempio n. 2
0
        private void Jogar_Click(object sender, EventArgs e)
        {
            if (Tipo1.SelectedItem == null)
            {
                MessageBox.Show("Terá de Selecionar Tipo de Jogador 1 antes começar a Jogar!)", "Erro");
                return;
            }

            if (Tipo2.SelectedItem == null)
            {
                MessageBox.Show("Terá de Selecionar Tipo de Jogador 2 antes de começar a Jogar!)", "Erro");
                return;
            }

            if (ComboBox1.SelectedItem == null)
            {
                MessageBox.Show("Terá de Selecionar a Cor de Jogador que pretende mostrar no mapa!)", "Erro");
                return;
            }

            if (ComboBox2.SelectedItem == null)
            {
                MessageBox.Show("Terá de Selecionar a Cor de Jogador que pretende mostrar no mapa!)", "Erro");
                return;
            }
            if (Convert.ToInt32(Veiculos.Text) < 0 || Convert.ToInt32(Veiculos.Text) > 100)
            {
                MessageBox.Show("Terá de escrever o número de veículos que pretende no jogo [0, 100] antes começar a Jogar!)", "Erro");
                return;
            }

            if (EscolhaAleatoria)
            {
                //Defenir o Tipo de Jogo : 0- Humano vs Humano
                //1- Maquina vs Maquina
                //2-Máquina vs Humano, Humano vs Máquina
                if ((String.Equals(Tipo1.Items[Tipo1.SelectedIndex].ToString(), "Humano")) && (String.Equals(Tipo1.Items[Tipo1.SelectedIndex].ToString(), "Humano")))
                {
                    Game.gameMode = 0;
                }
                else
                {
                    if ((String.Equals(Tipo1.Items[Tipo1.SelectedIndex].ToString(), "Máquina")) && (String.Equals(Tipo1.Items[Tipo1.SelectedIndex].ToString(), "Máquina")))
                    {
                        Game.gameMode = 1;
                    }
                    else
                    {
                        Game.gameMode = 2;
                    }
                }



                Game.TabGame.DimLinhas    = Convert.ToInt32(Linhas.Text);
                Game.TabGame.DimColunas   = Convert.ToInt32(Colunas.Text);
                Game.TabGame.EscAleat     = true;
                Game.TabGame.NumVeiculos  = Convert.ToInt32(Veiculos.Text);
                Game.TabGame.VeiculosLeft = Game.TabGame.NumVeiculos;


                Game.Jogador1.CorEsc = ComboBox1.SelectedIndex;
                Game.Jogador2.CorEsc = ComboBox2.SelectedIndex;

                //Implementação dos COmboios com a lógica IA
                ComboioTabuleiro.AICombDestribuicao();

                //saber qual é o comboio com a maior extensão
                int VeiculosMAxComboio = 0;
                int a = 0;

                for (int i = 0; i < 10; i++)
                {
                    for (int j = 0; j < 10; j++)
                    {
                        if (Game.TabGame.CombSituacao[j, i] == 0)
                        {
                            a++;
                        }
                    }
                    if (a > VeiculosMAxComboio)
                    {
                        VeiculosMAxComboio = a;
                    }
                    a = 0;
                }

                Game.TabGame.ComboioMaisExtenso = VeiculosMAxComboio;
                Game.Jogador1.Misseis           = Game.TabGame.ComboioMaisExtenso;
                Game.Jogador2.Misseis           = Game.TabGame.ComboioMaisExtenso;

                Jogo jogo = new Jogo
                {
                    Location = Location
                };
                jogo.Show();
                Hide();
            }
        }
Esempio n. 3
0
        private void Troca_Click(object sender, EventArgs e)
        {
            //Vereficação para saber se o jogador já hogou antes de passar a vez.

            switch (Game.gameMode)
            {
            //Tipo de Jogo: 0 - Humano vs Humano
            case 0:
                if (JogadorQueJoga.JaJogou == true)
                {
                    JogadorQueJoga.JaJogou = false;
                    // Troca de Jogaro
                    Dispose();
                    Game.SwitchJogador = !Game.SwitchJogador;

                    // Continua o jogo
                    Jogo jogo = new Jogo
                    {
                        Location = Location
                    };
                    jogo.Show();
                    Dispose();
                    return;
                }
                else
                {
                    MessageBox.Show("Terá de jogar primeiro antes de passar a sua vez ao adversário!");
                    return;
                }


            //Tipo de Jogo: 1 Maquina vs Maquina
            case 1:
                break;


            //Tipo de Jogo: 2-Máquina vs Humano, Humano vs Máquina
            case 2:
                if (!Game.SwitchJogador)
                {
                    // O jogador 2 já jogou;
                    // Incrementa o valor 1 ao nº de rondas já executadas
                    //Game.roundCount++;
                }

                Game.SwitchJogador = !Game.SwitchJogador;

                //Ia escolhe para onde deseja jogar
                IAmove = AtaqueIA.AIChooseCellToHit(JogadorQueJoga);

                // Verifica se o jogo já terminou?
                if (Game.PerformAttack(IAmove[0], IAmove[1], JogadorQueJoga, JogadorQueNaoJoga))
                {
                    //Verificação para saber quem ganhou o jogo
                    if (JogadorQueJoga.Misseis == 0)
                    {
                        //Não permite que seja selecionada mais nenhuma célula
                        for (int x = 0; x < 10; x++)
                        {
                            for (int y = 0; y < 10; y++)
                            {
                                Game.TabGame.CellsTrancadasDepoisJogar[x, y] = true;
                            }
                        }

                        //Vereficação para saber se para além do Jogador que joga, se o jogador que não joga também ficou sem misseis
                        if (JogadorQueNaoJoga.Misseis == 0)
                        {
                            JogadorQueJoga.Cotacao    = -1;
                            JogadorQueNaoJoga.Cotacao = -1;
                            RedrawStatistics();
                            MessageBox.Show("O jogo acabou com empate." + " Em " + Game.roundCount + " rondas!" + " O " + JogadorQueJoga.Nome + " e " + JogadorQueNaoJoga.Nome
                                            + " acabaram os misséis que disponha para atacar os veículos antes de os destruirem a todos.", "UAV GAME: O Jogo Terminou!");

                            DialogResult confirm = MessageBox.Show("Deseja Continuar?", "Guardar Registo de Batalha", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2);
                            if (confirm.ToString().ToUpper() == "YES")
                            {
                                ChooseFolder();
                                if (CriarFicheiroTXT.CriarFicheiro())
                                {
                                    MessageBox.Show("Foi concluido com suceddo a gravação do Registo de Batalha");
                                }
                            }
                        }

                        //Caso contrário Só o jogador que joga é que acabou com os seus misseis
                        else
                        {
                            JogadorQueJoga.Cotacao    = -1;
                            JogadorQueNaoJoga.Cotacao = 1;
                            RedrawStatistics();


                            MessageBox.Show("Parabéns " + JogadorQueNaoJoga.Nome + "! Acabou de ganhar ao jogador " + JogadorQueJoga.Nome + " em " + Game.roundCount + " rondas! " + " O " + JogadorQueJoga.Nome
                                            + " acabou os misséis que disponha para atacar os veículos.", "UAV GAME: O Jogo Terminou!");


                            DialogResult confirm = MessageBox.Show("Deseja Continuar?", "Guardar Registo de Batalha", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2);
                            if (confirm.ToString().ToUpper() == "YES")
                            {
                                ChooseFolder();
                                if (CriarFicheiroTXT.CriarFicheiro())
                                {
                                    MessageBox.Show("Foi concluido com suceddo a gravação do Registo de Batalha");
                                }
                            }
                        }
                    }

                    //Caso nenhuma vereficação de cima aconteça o Jogo acaba pq foi destruido o último veículo
                    else
                    {
                        //Não permite que seja selecionada mais nenhuma célula
                        for (int x = 0; x < 10; x++)
                        {
                            for (int y = 0; y < 10; y++)
                            {
                                Game.TabGame.CellsTrancadasDepoisJogar[x, y] = true;
                            }
                        }

                        JogadorQueJoga.Cotacao    = -1;
                        JogadorQueNaoJoga.Cotacao = 1;

                        // Redesenha o Tabuleiro final
                        DeckPictureBox.Refresh();
                        RedrawStatistics();
                        MessageBox.Show("Parabéns " + JogadorQueNaoJoga.Nome + "! Acabou de ganhar ao jogador " + JogadorQueJoga.Nome + " em " + Game.roundCount + " rondas! " +
                                        " O " + JogadorQueJoga.Nome + " acabou por destruir o último veículo do Jogo", "UAV GAME: O Jogo Terminou!");


                        //Questiona o utilizador se pretende guardar o registo do jogo
                        DialogResult confirm = MessageBox.Show("Deseja Continuar?", "Guardar Registo de Batalha", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2);
                        if (confirm.ToString().ToUpper() == "YES")
                        {
                            ChooseFolder();
                            if (CriarFicheiroTXT.CriarFicheiro())
                            {
                                MessageBox.Show("Foi concluido com suceddo a gravação do Registo de Batalha");
                            }
                        }
                    }

                    CriarFicheiroTXT.CriarEstatisticas(JogadorQueJoga, JogadorQueNaoJoga);
                }

                else
                {
                    // Troca de Jogaro
                    Dispose();
                    Game.SwitchJogador = !Game.SwitchJogador;

                    // Continua o jogo
                    Jogo Jogo = new Jogo
                    {
                        Location = Location
                    };
                    Jogo.Show();
                    Dispose();
                    return;
                }
                break;
            }
        }