public override bool[,] movimentoPossiveis() { bool[,] matriz = new bool[tab.linhas, tab.colunas]; Posicao pos = new Posicao(0, 0); //Para cima pos.definirValoresDaPosicao(posicao.linha - 1, posicao.coluna); while (tab.posicaoValida(pos) && podeMover(pos)) { matriz[pos.linha, pos.coluna] = true; if (tab.peca(pos) != null && tab.peca(pos).cor != cor) { break; } pos.linha = pos.linha - 1; } //Para direita pos.definirValoresDaPosicao(posicao.linha, posicao.coluna + 1); while (tab.posicaoValida(pos) && podeMover(pos)) { matriz[pos.linha, pos.coluna] = true; if (tab.peca(pos) != null && tab.peca(pos).cor != cor) { break; } pos.coluna = pos.coluna + 1; } //Para baixo pos.definirValoresDaPosicao(posicao.linha + 1, posicao.coluna); while (tab.posicaoValida(pos) && podeMover(pos)) { matriz[pos.linha, pos.coluna] = true; if (tab.peca(pos) != null && tab.peca(pos).cor != cor) { break; } pos.linha = pos.linha + 1; } //Para esquerda pos.definirValoresDaPosicao(posicao.linha, posicao.coluna - 1); while (tab.posicaoValida(pos) && podeMover(pos)) { matriz[pos.linha, pos.coluna] = true; if (tab.peca(pos) != null && tab.peca(pos).cor != cor) { break; } pos.coluna = pos.coluna - 1; } return(matriz); }
public override bool[,] movimentoPossiveis() { bool[,] matriz = new bool[tab.linhas, tab.colunas]; Posicao pos = new Posicao(0, 0); //Para cima pos.definirValoresDaPosicao(posicao.linha - 1, posicao.coluna); if (tab.posicaoValida(pos) && podeMover(pos)) { matriz[pos.linha, pos.coluna] = true; } //Para Nordeste pos.definirValoresDaPosicao(posicao.linha - 1, posicao.coluna + 1); if (tab.posicaoValida(pos) && podeMover(pos)) { matriz[pos.linha, pos.coluna] = true; } //Para direita pos.definirValoresDaPosicao(posicao.linha, posicao.coluna + 1); if (tab.posicaoValida(pos) && podeMover(pos)) { matriz[pos.linha, pos.coluna] = true; } //Para sudeste pos.definirValoresDaPosicao(posicao.linha + 1, posicao.coluna + 1); if (tab.posicaoValida(pos) && podeMover(pos)) { matriz[pos.linha, pos.coluna] = true; } //Para baixo pos.definirValoresDaPosicao(posicao.linha + 1, posicao.coluna); if (tab.posicaoValida(pos) && podeMover(pos)) { matriz[pos.linha, pos.coluna] = true; } //Para suloste pos.definirValoresDaPosicao(posicao.linha + 1, posicao.coluna - 1); if (tab.posicaoValida(pos) && podeMover(pos)) { matriz[pos.linha, pos.coluna] = true; } //Para esquerda pos.definirValoresDaPosicao(posicao.linha, posicao.coluna - 1); if (tab.posicaoValida(pos) && podeMover(pos)) { matriz[pos.linha, pos.coluna] = true; } //Para Noroeste pos.definirValoresDaPosicao(posicao.linha - 1, posicao.coluna - 1); if (tab.posicaoValida(pos) && podeMover(pos)) { matriz[pos.linha, pos.coluna] = true; } return(matriz); }