static void Main(string[] args) { try { Tela.imprimirTelaInicial(); PartidaDeXadrez partida = new PartidaDeXadrez(); while (!partida.terminada) { try { Console.Clear(); Tela.imprimirPartida(partida); Console.WriteLine(); Console.Write("Origem: "); Posicao origem = Tela.lerPosicaoXadrez().toPosicao(); partida.validarPosicaoDeOrigem(origem); bool[,] posicoesPossiveis = partida.tab.peca(origem).movimentosPossiveis(); Console.Clear(); Tela.imprimirTabuleiro(partida.tab, posicoesPossiveis); Console.WriteLine(); Console.Write("Destino: "); Posicao destino = Tela.lerPosicaoXadrez().toPosicao(); partida.validarPosicaoDeDestino(origem, destino); partida.realizarJogada(origem, destino); } catch (TabuleiroException e) { Console.WriteLine(e.Message); Console.ReadKey(true); //Console.ReadLine(); } catch (Exception e) { Console.WriteLine(e.Message); //Console.WriteLine(e.StackTrace); Console.ReadKey(true); //Console.ReadLine(); } } Console.Clear(); Tela.imprimirPartida(partida); } catch (TabuleiroException e) { Console.WriteLine(e.Message); } Console.WriteLine(); Console.WriteLine("Pressione qualquer tecla para sair..."); Console.ReadKey(true); //Console.ReadLine(); }
static void Main(string[] args) { //Posicao posicao = new Posicao(1,1); //Console.WriteLine(posicao); try { PartidaDeXadrez partida = new PartidaDeXadrez(); while (!partida.Terminada) { try { Console.Clear(); Tela.imprimirPartida(partida); Console.WriteLine(); Console.Write("Origem: "); Posicao origem = Tela.lerPosicaoXadrez().paraPosicao(); partida.validarPosicaoDeOrigem(origem); bool[,] posicoesPossiveis = partida.tab.peca(origem).movimentoPossiveis(); Console.Clear(); Tela.imprimeTabuleiro(partida.tab, posicoesPossiveis); Console.WriteLine(); Console.Write("Destino:"); Posicao destino = Tela.lerPosicaoXadrez().paraPosicao(); partida.validarPosicaoDeDetino(origem, destino); partida.realizarJogada(origem, destino); } catch (tabuleiroException e) { Console.Write(e.Message); Console.ReadLine(); } } } catch (tabuleiroException e) { Console.Write(e.Message); } }
static void Main(string[] args) { PartidaDeXadrez partida = new PartidaDeXadrez(); while (!partida.terminada) { try { Tela.ImprimirPartida(partida); Console.Write("Digite a posição de origem: "); Posicao origem = Tela.lerPosicaoXadrez().toPosicao(); partida.validarPosicaoDeOrigem(origem); Peca peca = partida.tab.peca(origem); bool[,] posicoesPossiveis = peca.movimentosPossiveis(); Console.Clear(); Tela.ImprimirTabuleiro(partida.tab, posicoesPossiveis); Console.WriteLine($"\nPeça selecionada: {peca} ({new PosicaoXadrez(origem)})"); if (peca is Rei) { Rei rei = (Rei)peca; if (rei.roquePequenoDisponivel()) { Tela.Imprimir("Roque pequeno disponível!\n", ConsoleColor.Green); } if (rei.roqueGrandeDisponivel()) { Tela.Imprimir("Roque grande disponível!\n", ConsoleColor.Green); } } else if (peca is Peao) { Peao peao = (Peao)peca; if (peao.enPassantEsquerdaDisponivel()) { Tela.Imprimir("En passant à esquerda disponível!\n", ConsoleColor.Green); } if (peao.enPassantDireitaDisponivel()) { Tela.Imprimir("En passant à direita disponível!\n", ConsoleColor.Green); } } Console.Write("Digite a posição de destino: "); Posicao destino = Tela.lerPosicaoXadrez().toPosicao(); partida.validarPosicaoDeDestino(origem, destino); partida.realizarJogada(origem, destino); } catch (TabuleiroException e) { Console.Clear(); Tela.ImprimirTabuleiro(partida.tab); Tela.ImprimirErro(e); } catch (Exception) { Console.Clear(); Tela.ImprimirTabuleiro(partida.tab); Tela.ImprimirErro("Erro."); } } Tela.ImprimirVitoria(partida); Console.ReadKey(); }