Example #1
0
        private void DeckPictureBoxMouseMove(object sender, MouseEventArgs e)
        {
            // Existe algum comboio selecionado?
            if (CombSelec != -1)
            {
                // O Jogador está a selecionar alguma célula do tabuleiro?
                if (GraphicContext.GetCoorX(this, DeckPictureBox) != -1 && GraphicContext.GetCoorY(this, DeckPictureBox) != -1)
                {
                    // O rato mexeu-se?
                    if (GraphicContext.GetCell(GraphicContext.GetCoorX(this, DeckPictureBox)) != mouseCellX || GraphicContext.GetCell(GraphicContext.GetCoorY(this, DeckPictureBox)) != mouseCellY)
                    {
                        // Reescreva as informações da célula do mouse.
                        mouseCellX = GraphicContext.GetCell(GraphicContext.GetCoorX(this, DeckPictureBox));
                        mouseCellY = GraphicContext.GetCell(GraphicContext.GetCoorY(this, DeckPictureBox));

                        // Redesenha o Tabuleiro
                        DeckPictureBox.Refresh();

                        // Mostra a cor do comboio selecionado no Tabuleiro
                        for (int i = 0; i < ComboioTabuleiro.CombTamanho[CombSelec]; i++)
                        {
                            //O comboio desenhado não atravessa os limites do tabuleiro
                            if (mouseCellX + i <= 9)
                            {
                                GraphicContext.DrawInnerFrameCell(mouseCellX + i, mouseCellY, CombSelec, this, DeckPictureBox);
                            }
                            else
                            {
                                break;
                            }
                        }
                    }
                }
                else
                {
                    // Fora dos limites do tabuleiro
                    if (mouseCellX != -1 || mouseCellY != -1)
                    {
                        mouseCellX = -1;
                        mouseCellY = -1;

                        // Redesenha o Tabuleiro
                        DeckPictureBox.Refresh();
                    }
                }
            }
        }
Example #2
0
        // Esses métodos são todos iguais para todos os botões de exclusão.
        private void Del1_Click_1(object sender, EventArgs e)
        {
            // Apaga todos os comboios 0 do tabuleiro
            ComboioTabuleiro.EliminarComboio(0, Game.TabGame.CombSet);
            NumVeiculosDepositados = NumVeiculosDepositados + NumComb1 * 1;
            NumComb1 = 0;

            // Redesenha o tabuleiro
            DeckPictureBox.Refresh();

            if (NumVeiculosDepositados >= 7)
            {
                Comb4.Enabled = true;
                Comb3.Enabled = true;
                Comb2.Enabled = true;
                Comb1.Enabled = true;
            }


            if (NumVeiculosDepositados < 7)
            {
                Comb4.Enabled = false;
                Comb3.Enabled = true;
                Comb2.Enabled = true;
                Comb1.Enabled = true;
            }

            if (NumVeiculosDepositados < 5)
            {
                Comb4.Enabled = false;
                Comb3.Enabled = false;
                Comb2.Enabled = true;
                Comb1.Enabled = true;
            }

            if (NumVeiculosDepositados < 3)
            {
                Comb4.Enabled = false;
                Comb3.Enabled = false;
                Comb2.Enabled = false;
                Comb1.Enabled = true;
            }
            Del1.Enabled = false;
            Done.Enabled = false;
        }
Example #3
0
        private void Del4_Click_1(object sender, EventArgs e)
        {
            ComboioTabuleiro.EliminarComboio(3, Game.TabGame.CombSet);
            NumVeiculosDepositados = NumVeiculosDepositados + NumComb4 * 7;
            NumComb4 = 0;
            DeckPictureBox.Refresh();
            if (NumVeiculosDepositados >= 7)
            {
                Comb4.Enabled = true;
                Comb3.Enabled = true;
                Comb2.Enabled = true;
                Comb1.Enabled = true;
            }


            if (NumVeiculosDepositados < 7)
            {
                Comb4.Enabled = false;
                Comb3.Enabled = true;
                Comb2.Enabled = true;
                Comb1.Enabled = true;
            }

            if (NumVeiculosDepositados < 5)
            {
                Comb4.Enabled = false;
                Comb3.Enabled = false;
                Comb2.Enabled = true;
                Comb1.Enabled = true;
            }

            if (NumVeiculosDepositados < 3)
            {
                Comb4.Enabled = false;
                Comb3.Enabled = false;
                Comb2.Enabled = false;
                Comb1.Enabled = true;
            }

            Done.Enabled = false;
            Del4.Enabled = false;
        }
Example #4
0
        private void DeckPictureBoxMouseMove(object sender, MouseEventArgs e)
        {
            // Are we on the grid of the first deck?
            if (GraphicContext.GetCoorX(this, DeckPictureBox) != -1 && GraphicContext.GetCoorY(this, DeckPictureBox) != -1)
            {
                // Have the cell selected by mouse changed?
                if (GraphicContext.GetCell(GraphicContext.GetCoorX(this, DeckPictureBox)) != mouseCellX || GraphicContext.GetCell(GraphicContext.GetCoorY(this, DeckPictureBox)) != mouseCellY)
                {
                    // Update the cell selected by mouse.
                    mouseCellX = GraphicContext.GetCell(GraphicContext.GetCoorX(this, DeckPictureBox));
                    mouseCellY = GraphicContext.GetCell(GraphicContext.GetCoorY(this, DeckPictureBox));

                    // Repaint the first deck.
                    DeckPictureBox.Refresh();
                    // Draw the outer frame of the selected cell.

                    if (Game.SwitchJogador)
                    {
                        GraphicContext.DrawOuterFrameCell(mouseCellX, mouseCellY, Game.Jogador1.CorEsc, this, DeckPictureBox);
                    }
                    else
                    {
                        GraphicContext.DrawOuterFrameCell(mouseCellX, mouseCellY, Game.Jogador2.CorEsc, this, DeckPictureBox);
                    }
                }
            }
            else
            {
                // Unselect the cell in the first deck.
                mouseCellX = -1;
                mouseCellY = -1;

                // Repaint the first deck.
                DeckPictureBox.Refresh();
            }
        }
Example #5
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;
            }
        }
Example #6
0
        public void IAImplementacao()
        {
            //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();
            }
        }
Example #7
0
        private void DeckPictureBox_Click_1(object sender, EventArgs e)
        {
            if (CombSelec != -1 && mouseCellX != -1 && mouseCellY != -1 && NumVeiculosDepositados > 0)
            {
                if (ComboioTabuleiro.PodeSerComboio(CombSelec, mouseCellX, mouseCellY, Game.TabGame.CombSet))
                {
                    ComboioTabuleiro.ColocarComboio(CombSelec, mouseCellX, mouseCellY, Game.TabGame.CombSet);

                    NumVeiculosDepositados = NumVeiculosDepositados - ComboioTabuleiro.CombTamanho[CombSelec];
                    // O Comboio Selecionado foi colocado com sucesso


                    switch (CombSelec)
                    {
                    case 0:
                        NumComb1     = NumComb1 + 1;
                        Del1.Enabled = true;
                        break;

                    case 1:
                        NumComb2     = NumComb2 + 1;
                        Del2.Enabled = true;
                        break;

                    case 2:
                        NumComb3     = NumComb3 + 1;
                        Del3.Enabled = true;
                        break;

                    case 3:
                        NumComb4     = NumComb4 + 1;
                        Del4.Enabled = true;
                        break;
                    }

                    // Muda os botões dos comboios

                    if (NumVeiculosDepositados < 7)
                    {
                        Comb4.Enabled = false;
                    }
                    if (NumVeiculosDepositados < 5)
                    {
                        Comb3.Enabled = false;
                    }
                    if (NumVeiculosDepositados < 3)
                    {
                        Comb2.Enabled = false;
                    }
                    if (NumVeiculosDepositados < 1)
                    {
                        Comb1.Enabled = false;
                    }


                    // Coloca o Comboio Selecionado no Registo do Comboio Set



                    // Redesenha o Tabuleiro
                    DeckPictureBox.Refresh();

                    // Unselected Comboio
                    CombSelec = -1;

                    // Todos os comboios foram colocados?
                    if (NumVeiculosDepositados == 0)
                    {
                        Done.Enabled = true;
                    }
                }
            }
        }