public static void ImprimirTabuleiro(tabuleiro Tab, Cor jogador) { for (int i = 0; i < Tab.linhas; i++) { Console.Write(8 - i + " "); for (int j = 0; j < Tab.colunas; j++) { if (Tab.peca(i, j) == null) { Console.Write("- "); } else { imprimirpeca(Tab.peca(i, j)); Console.Write(" "); } } Console.WriteLine(); } Console.WriteLine(" a b c d e f g h"); Console.WriteLine(); if (jogador == Cor.Branca) { Console.WriteLine("As Brancas jogam !!! "); } else { Console.WriteLine("As pretas jogam !!! "); } Console.WriteLine(); }
public override bool movimentospossiveis(tabuleiro tab, Posicao origem, Posicao destino) { if (origem.Linha == destino.Linha || origem.Coluna == destino.Coluna) { return(false); } Posicao pos = new Posicao(origem.Linha, origem.Coluna); while (pos.Linha != destino.Linha && pos.Coluna != destino.Coluna) { if (destino.Linha > origem.Linha) { pos.Linha++; } else { pos.Linha--; } if (destino.Coluna > origem.Coluna) { pos.Coluna++; } else { pos.Coluna--; } if (!tab.PosicaoValida(pos)) { return(false); } if (tab.peca(pos.Linha, pos.Coluna) == null) { if (pos.Linha == destino.Linha && pos.Coluna == destino.Coluna) { return(true); } else { continue; } } if (tab.peca(pos.Linha, pos.Coluna).cor != tab.peca(origem.Linha, origem.Coluna).cor&& pos.Linha == destino.Linha && pos.Coluna == destino.Coluna) { return(true); } else { return(false); } } return(false); }
public override bool movimentospossiveis(tabuleiro tab, Posicao origem, Posicao destino) { if (destino.Linha == origem.Linha || destino.Coluna == origem.Coluna) { return(false); } if (destino.Linha > origem.Linha + 2 || destino.Linha < origem.Linha - 2 || destino.Coluna > origem.Coluna + 2 || destino.Coluna < origem.Coluna - 2) { return(false); } if (destino.Linha == origem.Linha + 1 || destino.Linha == origem.Linha - 1) { if (destino.Coluna == origem.Coluna + 2 || destino.Coluna == origem.Coluna - 2) { return(true); } else { return(false); } } if (destino.Linha == origem.Linha + 2 || destino.Linha == origem.Linha - 2) { if (destino.Coluna == origem.Coluna + 1 || destino.Coluna == origem.Coluna - 1) { return(true); } else { return(false); } } if (tab.peca(destino.Linha, destino.Coluna) == null) { return(true); } if (tab.peca(destino.Linha, destino.Coluna).cor != tab.peca(origem.Linha, origem.Coluna).cor) { return(true); } else { return(false); } }
public static void imprimirTabuleiro(tabuleiro tab, bool[,] posicoesPossiveis) { ConsoleColor fundoOriginal = Console.BackgroundColor; ConsoleColor fundoAlterado = ConsoleColor.DarkGray; for (int i = 0; i < tab.linhas; i++) { Console.Write(8 - i + " "); for (int j = 0; j < tab.colunas; j++) { if (posicoesPossiveis[i, j]) { Console.BackgroundColor = fundoAlterado; } else { Console.BackgroundColor = fundoOriginal; } imprimirPeca(tab.peca(i, j)); Console.BackgroundColor = fundoOriginal; Console.Write(" "); } Console.WriteLine(); } Console.WriteLine(" A B C D E F G H"); Console.BackgroundColor = fundoOriginal; }
public static void imprimirTabuleiro(tabuleiro tab) { for (int i = 0; i < tab.linhas; i++) { Console.Write(" " + (8 - i) + " "); for (int j = 0; j < tab.colunas; j++) { imprimirPeca(tab.peca(i, j)); } Console.WriteLine(); } Console.WriteLine(" A B C D E F J H"); }
public static void imprimirTabuleiro(tabuleiro tab) { for (int i = 0; i < tab.linha; i++) { Console.Write(8 - i + " "); for (int j = 0; j < tab.coluna; j++) { imprimirPeca(tab.peca(i, j)); } Console.WriteLine(); } Console.WriteLine(" a b c d e f g h"); }
public override bool movimentospossiveis(tabuleiro tab, Posicao origem, Posicao destino) { if (tab.peca(origem.Linha, origem.Coluna).cor == Cor.Branca && destino.Linha > origem.Linha) { return(false); } if (tab.peca(origem.Linha, origem.Coluna).cor == Cor.Preta && destino.Linha < origem.Linha) { return(false); } if ((origem.Linha == 3 || origem.Linha == 4) && destino.Coluna != origem.Coluna && tab.peca(destino.Linha, destino.Coluna) == null && tab.peca(origem.Linha, destino.Coluna) is Peao && tab.peca(origem.Linha, destino.Coluna).cor != tab.peca(origem.Linha, origem.Coluna).cor&& tab.peca(origem.Linha, destino.Coluna) == partida.vulneravelenpassant) { return(true); } if (destino.Linha == origem.Linha) { return(false); } if (destino.Coluna > origem.Coluna + 1 || destino.Coluna < origem.Coluna - 1) { return(false); } if (tab.peca(origem.Linha, origem.Coluna).qteMovimentos == 0) { if (destino.Linha > origem.Linha + 2 || destino.Linha < origem.Linha - 2) { return(false); } if ((destino.Linha == origem.Linha + 2 || destino.Linha == origem.Linha - 2) && destino.Coluna != origem.Coluna) { return(false); } } if (tab.peca(origem.Linha, origem.Coluna).qteMovimentos != 0) { if (destino.Linha > origem.Linha + 1 || destino.Linha < origem.Linha - 1 || destino.Coluna > origem.Coluna + 1 || destino.Coluna < origem.Coluna - 1) { return(false); } } if (tab.peca(destino.Linha, destino.Coluna) == null) { if (destino.Coluna == origem.Coluna) { return(true); } else { return(false); } } if (tab.peca(destino.Linha, destino.Coluna).cor != tab.peca(origem.Linha, origem.Coluna).cor&& destino.Coluna != origem.Coluna) { return(true); } else { return(false); } }
public override bool movimentospossiveis(tabuleiro tab, Posicao origem, Posicao destino) { if (origem.Linha != destino.Linha && origem.Coluna != destino.Coluna) { return(false); } Posicao pos = new Posicao(tab.linhas, tab.colunas); if (origem.Linha == destino.Linha) { /* * Pesquisa Horizontal */ pos.Linha = origem.Linha; pos.Coluna = origem.Coluna; while (pos.Coluna != destino.Coluna) { if (destino.Coluna > origem.Coluna) { pos.Coluna = pos.Coluna + 1; } else { pos.Coluna = pos.Coluna - 1; } if (!tab.PosicaoValida(pos)) { continue; } if (tab.peca(pos.Linha, pos.Coluna) == null) { continue; } if (tab.peca(pos.Linha, pos.Coluna).cor != tab.peca(origem.Linha, origem.Coluna).cor&& pos.Coluna == destino.Coluna) { return(true); } else { return(false); } } return(true); } /* * Pesquisa Vertical */ pos.Linha = origem.Linha; pos.Coluna = origem.Coluna; while (pos.Linha != destino.Linha) { if (destino.Linha > origem.Linha) { pos.Linha = pos.Linha + 1; } else { pos.Linha = pos.Linha - 1; } if (!tab.PosicaoValida(pos)) { continue; } if (tab.peca(pos.Linha, pos.Coluna) == null) { continue; } if (tab.peca(pos.Linha, pos.Coluna).cor != tab.peca(origem.Linha, origem.Coluna).cor&& pos.Linha == destino.Linha) { return(true); } else { return(false); } } return(true); }