public override bool[,] movPossiveis() { bool[,] mat = new bool[tabu.linhas, tabu.colunas]; Posicao pos = new Posicao(0, 0); pos.defValores(posicao.linha - 1, posicao.coluna - 2); if (tabu.posicaoValida(pos) && podeMover(pos)) { mat[pos.linha, pos.coluna] = true; } pos.defValores(posicao.linha - 2, posicao.coluna - 1); if (tabu.posicaoValida(pos) && podeMover(pos)) { mat[pos.linha, pos.coluna] = true; } pos.defValores(posicao.linha - 2, posicao.coluna + 1); if (tabu.posicaoValida(pos) && podeMover(pos)) { mat[pos.linha, pos.coluna] = true; } pos.defValores(posicao.linha - 1, posicao.coluna + 2); if (tabu.posicaoValida(pos) && podeMover(pos)) { mat[pos.linha, pos.coluna] = true; } pos.defValores(posicao.linha + 1, posicao.coluna + 2); if (tabu.posicaoValida(pos) && podeMover(pos)) { mat[pos.linha, pos.coluna] = true; } pos.defValores(posicao.linha + 2, posicao.coluna + 1); if (tabu.posicaoValida(pos) && podeMover(pos)) { mat[pos.linha, pos.coluna] = true; } pos.defValores(posicao.linha + 2, posicao.coluna - 1); if (tabu.posicaoValida(pos) && podeMover(pos)) { mat[pos.linha, pos.coluna] = true; } pos.defValores(posicao.linha + 1, posicao.coluna - 2); if (tabu.posicaoValida(pos) && podeMover(pos)) { mat[pos.linha, pos.coluna] = true; } return(mat); }
public override bool[,] movPossiveis() { bool[,] mat = new bool[tabu.linhas, tabu.colunas]; Posicao pos = new Posicao(0, 0); if (cor == Cor.Branca) { pos.defValores(pos.linha - 1, posicao.coluna); if (tabu.posicaoValida(pos) && livre(pos)) { mat[pos.linha, pos.coluna] = true; } pos.defValores(pos.linha - 2, posicao.coluna); if (tabu.posicaoValida(pos) && livre(pos) && qteMovimentos == 0) { mat[pos.linha, pos.coluna] = true; } pos.defValores(pos.linha - 1, posicao.coluna - 1); if (tabu.posicaoValida(pos) && podeMover(pos)) { mat[pos.linha, pos.coluna] = true; } pos.defValores(pos.linha - 1, posicao.coluna + 1); if (tabu.posicaoValida(pos) && podeMover(pos)) { mat[pos.linha, pos.coluna] = true; } } else { pos.defValores(pos.linha + 1, posicao.coluna); if (tabu.posicaoValida(pos) && livre(pos)) { mat[pos.linha, pos.coluna] = true; } pos.defValores(pos.linha + 2, posicao.coluna); if (tabu.posicaoValida(pos) && livre(pos) && qteMovimentos == 0) { mat[pos.linha, pos.coluna] = true; } pos.defValores(pos.linha + 1, posicao.coluna - 1); if (tabu.posicaoValida(pos) && podeMover(pos)) { mat[pos.linha, pos.coluna] = true; } pos.defValores(pos.linha + 1, posicao.coluna + 1); if (tabu.posicaoValida(pos) && podeMover(pos)) { mat[pos.linha, pos.coluna] = true; } } return(mat); }
public override bool[,] movPossiveis() { bool[,] mat = new bool[tabu.linhas, tabu.colunas]; Posicao pos = new Posicao(0, 0); // Acima pos.defValores(posicao.linha - 1, posicao.coluna); while (tabu.posicaoValida(pos) && podeMover(pos)) { mat[pos.linha, pos.coluna] = true; if (tabu.peca(pos) != null && tabu.peca(pos).cor != cor) { break; } pos.linha = pos.linha - 1; } // Abaixo pos.defValores(posicao.linha + 1, posicao.coluna); while (tabu.posicaoValida(pos) && podeMover(pos)) { mat[pos.linha, pos.coluna] = true; if (tabu.peca(pos) != null && tabu.peca(pos).cor != cor) { break; } pos.linha = pos.linha + 1; } // Direita pos.defValores(posicao.linha, posicao.coluna + 1); while (tabu.posicaoValida(pos) && podeMover(pos)) { mat[pos.linha, pos.coluna] = true; if (tabu.peca(pos) != null && tabu.peca(pos).cor != cor) { break; } pos.coluna = pos.coluna + 1; } // Esquerda pos.defValores(posicao.linha, posicao.coluna - 1); while (tabu.posicaoValida(pos) && podeMover(pos)) { mat[pos.linha, pos.coluna] = true; if (tabu.peca(pos) != null && tabu.peca(pos).cor != cor) { break; } pos.coluna = pos.coluna - 1; } return(mat); }
public override bool[,] movPossiveis() { bool[,] mat = new bool[tabu.linhas, tabu.colunas]; Posicao pos = new Posicao(0, 0); // Acima pos.defValores(posicao.linha - 1, posicao.coluna); if (tabu.posicaoValida(pos) && podeMover(pos)) { mat[pos.linha, pos.coluna] = true; } // NE pos.defValores(posicao.linha - 1, posicao.coluna + 1); if (tabu.posicaoValida(pos) && podeMover(pos)) { mat[pos.linha, pos.coluna] = true; } // Direita pos.defValores(posicao.linha, posicao.coluna + 1); if (tabu.posicaoValida(pos) && podeMover(pos)) { mat[pos.linha, pos.coluna] = true; } // SE pos.defValores(posicao.linha + 1, posicao.coluna + 1); if (tabu.posicaoValida(pos) && podeMover(pos)) { mat[pos.linha, pos.coluna] = true; } // Abaixo pos.defValores(posicao.linha + 1, posicao.coluna); if (tabu.posicaoValida(pos) && podeMover(pos)) { mat[pos.linha, pos.coluna] = true; } // SO pos.defValores(posicao.linha + 1, posicao.coluna - 1); if (tabu.posicaoValida(pos) && podeMover(pos)) { mat[pos.linha, pos.coluna] = true; } // Esquerda pos.defValores(posicao.linha, posicao.coluna - 1); if (tabu.posicaoValida(pos) && podeMover(pos)) { mat[pos.linha, pos.coluna] = true; } // NO pos.defValores(posicao.linha - 1, posicao.coluna - 1); if (tabu.posicaoValida(pos) && podeMover(pos)) { mat[pos.linha, pos.coluna] = true; } return(mat); }