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(); }
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(); } }
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; } }