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