public override bool[,] movimentosPossiveis() { bool[,] mat = new bool[tab.linhas, tab.colunas]; Posicao pos = new Posicao(0, 0); //acima pos.definorValores(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; } //abaixo pos.definorValores(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.definorValores(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; } //direita pos.definorValores(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[,] movimentosPossiveis() { bool[,] mat = new bool[tab.linhas, tab.colunas]; Posicao pos = new Posicao(0, 0); //acima pos.definorValores(posicao.linha - 1, posicao.coluna); if (tab.posicaoValida(pos) && podeMover(pos)) { mat[pos.linha, pos.coluna] = true; } //ne pos.definorValores(posicao.linha - 1, posicao.coluna + 1); if (tab.posicaoValida(pos) && podeMover(pos)) { mat[pos.linha, pos.coluna] = true; } //direita pos.definorValores(posicao.linha, posicao.coluna + 1); if (tab.posicaoValida(pos) && podeMover(pos)) { mat[pos.linha, pos.coluna] = true; } //se pos.definorValores(posicao.linha + 1, posicao.coluna + 1); if (tab.posicaoValida(pos) && podeMover(pos)) { mat[pos.linha, pos.coluna] = true; } //abaixo pos.definorValores(posicao.linha + 1, posicao.coluna); if (tab.posicaoValida(pos) && podeMover(pos)) { mat[pos.linha, pos.coluna] = true; } //so pos.definorValores(posicao.linha + 1, posicao.coluna - 1); if (tab.posicaoValida(pos) && podeMover(pos)) { mat[pos.linha, pos.coluna] = true; } //esquerda pos.definorValores(posicao.linha, posicao.coluna - 1); if (tab.posicaoValida(pos) && podeMover(pos)) { mat[pos.linha, pos.coluna] = true; } //no pos.definorValores(posicao.linha - 1, posicao.coluna - 1); if (tab.posicaoValida(pos) && podeMover(pos)) { mat[pos.linha, pos.coluna] = true; } return(mat); }