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