public override bool[,] MovimentosPossiveis() { bool[,] mat = new bool[tabuleiro.linhas, tabuleiro.colunas]; Posicao pos = new Posicao(0, 0); if (cor == Cor.Branca) { pos.DefinirPosicao(posicao.linha - 1, posicao.coluna); if (tabuleiro.ValidaPosicao(pos) && livre(pos)) { mat[pos.linha, pos.coluna] = true; } pos.DefinirPosicao(posicao.linha - 2, posicao.coluna); Posicao p2 = new Posicao(posicao.linha - 1, posicao.coluna); if (tabuleiro.ValidaPosicao(p2) && livre(p2) && tabuleiro.ValidaPosicao(pos) && livre(pos) && qtdMovimento == 0) { mat[pos.linha, pos.coluna] = true; } pos.DefinirPosicao(posicao.linha - 1, posicao.coluna - 1); if (tabuleiro.ValidaPosicao(pos) && existeInimigo(pos)) { mat[pos.linha, pos.coluna] = true; } pos.DefinirPosicao(posicao.linha - 1, posicao.coluna + 1); if (tabuleiro.ValidaPosicao(pos) && existeInimigo(pos)) { mat[pos.linha, pos.coluna] = true; } } else { pos.DefinirPosicao(posicao.linha + 1, posicao.coluna); if (tabuleiro.ValidaPosicao(pos) && livre(pos)) { mat[pos.linha, pos.coluna] = true; } pos.DefinirPosicao(posicao.linha + 2, posicao.coluna); Posicao p2 = new Posicao(posicao.linha + 1, posicao.coluna); if (tabuleiro.ValidaPosicao(p2) && livre(p2) && tabuleiro.ValidaPosicao(pos) && livre(pos) && qtdMovimento == 0) { mat[pos.linha, pos.coluna] = true; } pos.DefinirPosicao(posicao.linha + 1, posicao.coluna - 1); if (tabuleiro.ValidaPosicao(pos) && existeInimigo(pos)) { mat[pos.linha, pos.coluna] = true; } pos.DefinirPosicao(posicao.linha + 1, posicao.coluna + 1); if (tabuleiro.ValidaPosicao(pos) && existeInimigo(pos)) { mat[pos.linha, pos.coluna] = true; } } return(mat); }
public override bool[,] MovimentosPossiveis() { bool[,] posicoes = new bool[tabuleiro.linhas, tabuleiro.colunas]; Posicao pos = new Posicao(0, 0); //acima pos.DefinirPosicao(posicao.linha - 1, posicao.coluna); if (tabuleiro.ValidaPosicao(pos) && PodeMover(pos)) { posicoes[pos.linha, pos.coluna] = true; } //nordeste pos.DefinirPosicao(posicao.linha - 1, posicao.coluna + 1); if (tabuleiro.ValidaPosicao(pos) && PodeMover(pos)) { posicoes[pos.linha, pos.coluna] = true; } //direita pos.DefinirPosicao(posicao.linha, posicao.coluna + 1); if (tabuleiro.ValidaPosicao(pos) && PodeMover(pos)) { posicoes[pos.linha, pos.coluna] = true; } //sudeste pos.DefinirPosicao(posicao.linha + 1, posicao.coluna + 1); if (tabuleiro.ValidaPosicao(pos) && PodeMover(pos)) { posicoes[pos.linha, pos.coluna] = true; } //abaixo pos.DefinirPosicao(posicao.linha + 1, posicao.coluna); if (tabuleiro.ValidaPosicao(pos) && PodeMover(pos)) { posicoes[pos.linha, pos.coluna] = true; } //sudoeste pos.DefinirPosicao(posicao.linha + 1, posicao.coluna - 1); if (tabuleiro.ValidaPosicao(pos) && PodeMover(pos)) { posicoes[pos.linha, pos.coluna] = true; } //esquerda pos.DefinirPosicao(posicao.linha, posicao.coluna - 1); if (tabuleiro.ValidaPosicao(pos) && PodeMover(pos)) { posicoes[pos.linha, pos.coluna] = true; } //noroeste pos.DefinirPosicao(posicao.linha - 1, posicao.coluna - 1); if (tabuleiro.ValidaPosicao(pos) && PodeMover(pos)) { posicoes[pos.linha, pos.coluna] = true; } return(posicoes); }
public override bool[,] MovimentosPossiveis() { bool[,] mat = new bool[tabuleiro.linhas, tabuleiro.colunas]; Posicao pos = new Posicao(0, 0); // NO pos.DefinirPosicao(posicao.linha - 1, posicao.coluna - 1); while (tabuleiro.ValidaPosicao(pos) && podeMover(pos)) { mat[pos.linha, pos.coluna] = true; if (tabuleiro.GetPeca(pos) != null && tabuleiro.GetPeca(pos).cor != cor) { break; } pos.DefinirPosicao(pos.linha - 1, pos.coluna - 1); } // NE pos.DefinirPosicao(posicao.linha - 1, posicao.coluna + 1); while (tabuleiro.ValidaPosicao(pos) && podeMover(pos)) { mat[pos.linha, pos.coluna] = true; if (tabuleiro.GetPeca(pos) != null && tabuleiro.GetPeca(pos).cor != cor) { break; } pos.DefinirPosicao(pos.linha - 1, pos.coluna + 1); } // SE pos.DefinirPosicao(posicao.linha + 1, posicao.coluna + 1); while (tabuleiro.ValidaPosicao(pos) && podeMover(pos)) { mat[pos.linha, pos.coluna] = true; if (tabuleiro.GetPeca(pos) != null && tabuleiro.GetPeca(pos).cor != cor) { break; } pos.DefinirPosicao(pos.linha + 1, pos.coluna + 1); } // SO pos.DefinirPosicao(posicao.linha + 1, posicao.coluna - 1); while (tabuleiro.ValidaPosicao(pos) && podeMover(pos)) { mat[pos.linha, pos.coluna] = true; if (tabuleiro.GetPeca(pos) != null && tabuleiro.GetPeca(pos).cor != cor) { break; } pos.DefinirPosicao(pos.linha + 1, pos.coluna - 1); } return(mat); }
public override bool[,] MovimentosPossiveis() { bool[,] posicoes = new bool[tabuleiro.linhas, tabuleiro.colunas]; Posicao pos = new Posicao(0, 0); //Acima pos.DefinirPosicao(posicao.linha - 1, posicao.coluna); while (tabuleiro.ValidaPosicao(pos) && PodeMover(pos)) { posicoes[pos.linha, pos.coluna] = true; if (tabuleiro.GetPeca(pos) != null) { break; } pos.DefinirPosicao(pos.linha - 1, pos.coluna); } //Direita pos.DefinirPosicao(posicao.linha, posicao.coluna + 1); while (tabuleiro.ValidaPosicao(pos) && PodeMover(pos)) { posicoes[pos.linha, pos.coluna] = true; if (tabuleiro.GetPeca(pos) != null) { break; } pos.DefinirPosicao(pos.linha, pos.coluna + 1); } //Abaixo pos.DefinirPosicao(posicao.linha + 1, posicao.coluna); while (tabuleiro.ValidaPosicao(pos) && PodeMover(pos)) { posicoes[pos.linha, pos.coluna] = true; if (tabuleiro.GetPeca(pos) != null) { break; } pos.DefinirPosicao(pos.linha + 1, pos.coluna); } //Esquerda pos.DefinirPosicao(posicao.linha, posicao.coluna - 1); while (tabuleiro.ValidaPosicao(pos) && PodeMover(pos)) { posicoes[pos.linha, pos.coluna] = true; if (tabuleiro.GetPeca(pos) != null) { break; } pos.DefinirPosicao(pos.linha, pos.coluna - 1); } return(posicoes); }
public override bool[,] MovimentosPossiveis() { bool[,] mat = new bool[tabuleiro.linhas, tabuleiro.colunas]; Posicao pos = new Posicao(0, 0); pos.DefinirPosicao(posicao.linha - 1, posicao.coluna - 2); if (tabuleiro.ValidaPosicao(pos) && podeMover(pos)) { mat[pos.linha, pos.coluna] = true; } pos.DefinirPosicao(posicao.linha - 2, posicao.coluna - 1); if (tabuleiro.ValidaPosicao(pos) && podeMover(pos)) { mat[pos.linha, pos.coluna] = true; } pos.DefinirPosicao(posicao.linha - 2, posicao.coluna + 1); if (tabuleiro.ValidaPosicao(pos) && podeMover(pos)) { mat[pos.linha, pos.coluna] = true; } pos.DefinirPosicao(posicao.linha - 1, posicao.coluna + 2); if (tabuleiro.ValidaPosicao(pos) && podeMover(pos)) { mat[pos.linha, pos.coluna] = true; } pos.DefinirPosicao(posicao.linha + 1, posicao.coluna + 2); if (tabuleiro.ValidaPosicao(pos) && podeMover(pos)) { mat[pos.linha, pos.coluna] = true; } pos.DefinirPosicao(posicao.linha + 2, posicao.coluna + 1); if (tabuleiro.ValidaPosicao(pos) && podeMover(pos)) { mat[pos.linha, pos.coluna] = true; } pos.DefinirPosicao(posicao.linha + 2, posicao.coluna - 1); if (tabuleiro.ValidaPosicao(pos) && podeMover(pos)) { mat[pos.linha, pos.coluna] = true; } pos.DefinirPosicao(posicao.linha + 1, posicao.coluna - 2); if (tabuleiro.ValidaPosicao(pos) && podeMover(pos)) { mat[pos.linha, pos.coluna] = true; } return(mat); }