public override bool[,] movimentosPosiveis() { bool[,] mat = new bool[tab.linhas, tab.colunas]; posicao Pos = new posicao(0, 0); // acima Pos.definirValores(posicao.linha - 1, posicao.coluna); while (tab.posicaoValida(Pos) && podeMover(Pos)) { mat[Pos.linha, Pos.coluna] = true; if (tab.Peca(Pos) != null && tab.Peca(Pos).cor != cor) { break; } Pos.linha = Pos.linha - 1; } // baixo Pos.definirValores(posicao.linha + 1, posicao.coluna); while (tab.posicaoValida(Pos) && podeMover(Pos)) { mat[Pos.linha, Pos.coluna] = true; if (tab.Peca(Pos) != null && tab.Peca(Pos).cor != cor) { break; } Pos.linha = Pos.linha + 1; } // direita Pos.definirValores(posicao.linha, posicao.coluna + 1); while (tab.posicaoValida(Pos) && podeMover(Pos)) { mat[Pos.linha, Pos.coluna] = true; if (tab.Peca(Pos) != null && tab.Peca(Pos).cor != cor) { break; } Pos.linha = Pos.coluna + 1; } // esquerda Pos.definirValores(posicao.linha, posicao.coluna - 1); while (tab.posicaoValida(Pos) && podeMover(Pos)) { mat[Pos.linha, Pos.coluna] = true; if (tab.Peca(Pos) != null && tab.Peca(Pos).cor != cor) { break; } Pos.linha = Pos.coluna - 1; } return(mat); }
public override bool[,] movimentosPosiveis() { bool[,] mat = new bool[tab.linhas, tab.colunas]; posicao Pos = new posicao(0, 0); // acima Pos.definirValores(posicao.linha - 1, posicao.coluna); if (tab.posicaoValida(Pos) && podeMover(Pos)) { mat[Pos.linha, Pos.coluna] = true; } // nordeste Pos.definirValores(posicao.linha - 1, posicao.coluna + 1); if (tab.posicaoValida(Pos) && podeMover(Pos)) { mat[Pos.linha, Pos.coluna] = true; } // direita Pos.definirValores(posicao.linha, posicao.coluna + 1); if (tab.posicaoValida(Pos) && podeMover(Pos)) { mat[Pos.linha, Pos.coluna] = true; } // sudeste Pos.definirValores(posicao.linha + 1, posicao.coluna + 1); if (tab.posicaoValida(Pos) && podeMover(Pos)) { mat[Pos.linha, Pos.coluna] = true; } // baixo Pos.definirValores(posicao.linha + 1, posicao.coluna); if (tab.posicaoValida(Pos) && podeMover(Pos)) { mat[Pos.linha, Pos.coluna] = true; } // sudoeste Pos.definirValores(posicao.linha + 1, posicao.coluna - 1); if (tab.posicaoValida(Pos) && podeMover(Pos)) { mat[Pos.linha, Pos.coluna] = true; } // esquerda Pos.definirValores(posicao.linha, posicao.coluna - 1); if (tab.posicaoValida(Pos) && podeMover(Pos)) { mat[Pos.linha, Pos.coluna] = true; } // noroeste Pos.definirValores(posicao.linha - 1, posicao.coluna - 1); if (tab.posicaoValida(Pos) && podeMover(Pos)) { mat[Pos.linha, Pos.coluna] = true; } return(mat); }