static void Main(string[] args) { try { PartidaDeXadrez Partida = new PartidaDeXadrez(); while (!Partida.Terminada) { try { Console.Clear(); Tela.ImprimirPartida(Partida); Console.WriteLine(); Console.Write("Origem: "); Posicao Origem = Tela.LerPosicaoXadrez().toPosicao(); Partida.ValidarOrigem(Origem); bool[,] PosicoesPossiveis = Partida.Tab.Peca(Origem).MovimentosPossiveis(); Console.Clear(); Tela.ImprimirTabuleiro(Partida.Tab, PosicoesPossiveis); Console.WriteLine(); Console.WriteLine("Turno: " + Partida.Turno); Console.WriteLine("Aguardando jogada: " + Partida.JogadorAtual); Console.WriteLine(); Console.Write("Destino: "); Posicao Destino = Tela.LerPosicaoXadrez().toPosicao(); Partida.ValidarDestino(Origem, Destino); Partida.RealizaJogada(Origem, Destino); } catch (TabuleiroException e) { Console.WriteLine(e.Message); Console.ReadLine(); } } Console.Clear(); Tela.ImprimirPartida(Partida); } catch (TabuleiroException e) { Console.WriteLine(e.Message); } }
static void Main(string[] args) { try { PartidaDeXadrez partidaDeXadrez = new PartidaDeXadrez(); while (!partidaDeXadrez.Terminada) { try { Tela.ImprimirTabuleiro(partidaDeXadrez.Tabuleiro); //ORIGEM Tela.ImprimirJogadaParte1(partidaDeXadrez); PosicaoXadrez posicaoXadrez = Tela.LerPosicaoXadrez(); Posicao origem = posicaoXadrez.ToPosicao(); partidaDeXadrez.ValidarOrigem(origem); bool[,] movimentos = partidaDeXadrez.Tabuleiro.ObterPeca(origem).MovimentosPossiveis(); Tela.ImprimirTabuleiro(partidaDeXadrez.Tabuleiro, movimentos, origem); //DESTINO Tela.ImprimirJogadaParte1(partidaDeXadrez); Tela.ImprimirJogadaParte2(posicaoXadrez); Posicao destino = Tela.LerPosicaoXadrez().ToPosicao(); partidaDeXadrez.ValidarDestino(origem, destino); partidaDeXadrez.NovaJogada(origem, destino); } catch (TabuleiroException erro) { Console.Write("\n " + erro.Message); Console.ReadKey(); } } Tela.ImprimirTabuleiro(partidaDeXadrez.Tabuleiro); Tela.ImprimirJogadaParte1(partidaDeXadrez); } catch (TabuleiroException erro) { Console.WriteLine(erro.Message); } Console.ReadKey(); }
private void DgvXadrez_CellClick(object sender, DataGridViewCellEventArgs e) { try { int linha = dgvXadrez.SelectedCells[0].RowIndex; int coluna = dgvXadrez.SelectedCells[0].ColumnIndex; Posicao posicao = new Posicao(dgvXadrez.SelectedCells[0].RowIndex, dgvXadrez.SelectedCells[0].ColumnIndex); if (Origem == null) { PartidaDeXadrez.ValidarOrigem(posicao); Origem = posicao; AjustarOrigem(linha, coluna); } else { Posicao origem = Origem; Origem = null; PartidaDeXadrez.ValidarDestino(origem, posicao); PartidaDeXadrez.NovaJogada(origem, posicao); TestarPromocao(PartidaDeXadrez.Tabuleiro.ObterPeca(posicao)); AtualizarDataGrid(); TesteXeque(); } } catch (TabuleiroException erro) { MessageBox.Show(erro.Message); AtualizarDataGrid(); } catch (ArgumentOutOfRangeException) { MessageBox.Show("A POSIÇÃO INFORMADA É INVÁLIDA!"); AtualizarDataGrid(); } catch (XequeMateException) { MessageBox.Show("É XEQUE-MATE!\nVENCEDOR: " + PartidaDeXadrez.JogadorAdversario()); Close(); } }
static void Main(string[] args) { PartidaDeXadrez partida = new PartidaDeXadrez(); while (!partida.Terminada) { try { Console.Clear(); Tela.ImprimirPartida(partida); Console.WriteLine(); Console.Write("Origem: "); Posicao origem = Tela.LerPosicaoXadrez().ToPosicao(); partida.ValidarOrigem(origem); bool[,] posicoesPossives = partida.Tabuleiro.Peca(origem).MovimentosPossiveis(); Console.Clear(); Tela.ImprimirTabuleiro(partida.Tabuleiro, posicoesPossives); Console.WriteLine(); Console.Write("Destino: "); Posicao destino = Tela.LerPosicaoXadrez().ToPosicao(); partida.ValidarDestino(origem, destino); partida.RealizaJogada(origem, destino); } catch (TabuleiroException e) { Console.WriteLine(e.Message); Console.ReadLine(); } } Console.Clear(); Tela.ImprimirPartida(partida); Console.ReadLine(); }