Esempio n. 1
0
 public Rei(Cor cor, Tabuleiro tabuleiro) : base(cor, tabuleiro)
 {
 }
Esempio n. 2
0
 public Torre(Cor cor, Tabuleiro tabuleiro) : base(cor, tabuleiro)
 {
 }
Esempio n. 3
0
        public override bool[,] GetMovimentosPossiveis()
        {
            bool[,] m = new bool[Tabuleiro.Linhas, Tabuleiro.Colunas];
            Posicao pos = new Posicao(0, 0);

            // NORTE
            pos.SetPosicao(Posicao.Linha - 1, Posicao.Coluna);
            if (!Tabuleiro.IsPosicaoInvalida(pos) && IsMovimentoPossivel(pos))
            {
                m[pos.Linha, pos.Coluna] = true;
            }

            // NORDESTE
            pos.SetPosicao(Posicao.Linha - 1, Posicao.Coluna + 1);
            if (!Tabuleiro.IsPosicaoInvalida(pos) && IsMovimentoPossivel(pos))
            {
                m[pos.Linha, pos.Coluna] = true;
            }

            // LESTE
            pos.SetPosicao(Posicao.Linha, Posicao.Coluna + 1);
            if (!Tabuleiro.IsPosicaoInvalida(pos) && IsMovimentoPossivel(pos))
            {
                m[pos.Linha, pos.Coluna] = true;
            }

            // SUDESTE
            pos.SetPosicao(Posicao.Linha + 1, Posicao.Coluna + 1);
            if (!Tabuleiro.IsPosicaoInvalida(pos) && IsMovimentoPossivel(pos))
            {
                m[pos.Linha, pos.Coluna] = true;
            }

            // SUL
            pos.SetPosicao(Posicao.Linha + 1, Posicao.Coluna);
            if (!Tabuleiro.IsPosicaoInvalida(pos) && IsMovimentoPossivel(pos))
            {
                m[pos.Linha, pos.Coluna] = true;
            }

            // SUDOESTE
            pos.SetPosicao(Posicao.Linha + 1, Posicao.Coluna - 1);
            if (!Tabuleiro.IsPosicaoInvalida(pos) && IsMovimentoPossivel(pos))
            {
                m[pos.Linha, pos.Coluna] = true;
            }

            // OESTE
            pos.SetPosicao(Posicao.Linha, Posicao.Coluna - 1);
            if (!Tabuleiro.IsPosicaoInvalida(pos) && IsMovimentoPossivel(pos))
            {
                m[pos.Linha, pos.Coluna] = true;
            }

            // NOROESTE
            pos.SetPosicao(Posicao.Linha - 1, Posicao.Coluna - 1);
            if (!Tabuleiro.IsPosicaoInvalida(pos) && IsMovimentoPossivel(pos))
            {
                m[pos.Linha, pos.Coluna] = true;
            }

            return(m);
        }
Esempio n. 4
0
        public override bool[,] GetMovimentosPossiveis()
        {
            bool[,] m = new bool[Tabuleiro.Linhas, Tabuleiro.Colunas];
            Posicao pos = new Posicao(0, 0);

            // NORTE
            pos.SetPosicao(Posicao.Linha - 1, Posicao.Coluna);
            while (!Tabuleiro.IsPosicaoInvalida(pos) && IsMovimentoPossivel(pos))
            {
                m[pos.Linha, pos.Coluna] = true;

                if (Tabuleiro.GetPeca(pos) != null && Tabuleiro.GetPeca(pos).Cor != Cor)
                {
                    break;
                }

                pos.Linha--;
            }

            // LESTE
            pos.SetPosicao(Posicao.Linha, Posicao.Coluna + 1);
            while (!Tabuleiro.IsPosicaoInvalida(pos) && IsMovimentoPossivel(pos))
            {
                m[pos.Linha, pos.Coluna] = true;

                if (Tabuleiro.GetPeca(pos) != null && Tabuleiro.GetPeca(pos).Cor != Cor)
                {
                    break;
                }

                pos.Coluna++;
            }

            // SUL
            pos.SetPosicao(Posicao.Linha + 1, Posicao.Coluna);
            while (!Tabuleiro.IsPosicaoInvalida(pos) && IsMovimentoPossivel(pos))
            {
                m[pos.Linha, pos.Coluna] = true;

                if (Tabuleiro.GetPeca(pos) != null && Tabuleiro.GetPeca(pos).Cor != Cor)
                {
                    break;
                }

                pos.Linha++;
            }

            // OESTE
            pos.SetPosicao(Posicao.Linha, Posicao.Coluna - 1);
            while (!Tabuleiro.IsPosicaoInvalida(pos) && IsMovimentoPossivel(pos))
            {
                m[pos.Linha, pos.Coluna] = true;

                if (Tabuleiro.GetPeca(pos) != null && Tabuleiro.GetPeca(pos).Cor != Cor)
                {
                    break;
                }

                pos.Coluna--;
            }

            return(m);
        }