Esempio n. 1
0
        public void PosicionarInicioPartida()
        {
            Pecas.Add(new Peca(new Point(1, 1), Cor.BRANCA));
            Pecas.Add(new Peca(new Point(3, 1), Cor.BRANCA));
            Pecas.Add(new Peca(new Point(5, 1), Cor.BRANCA));
            Pecas.Add(new Peca(new Point(7, 1), Cor.BRANCA));

            Pecas.Add(new Peca(new Point(2, 2), Cor.BRANCA));
            Pecas.Add(new Peca(new Point(4, 2), Cor.BRANCA));
            Pecas.Add(new Peca(new Point(6, 2), Cor.BRANCA));
            Pecas.Add(new Peca(new Point(8, 2), Cor.BRANCA));

            Pecas.Add(new Peca(new Point(1, 3), Cor.BRANCA));
            Pecas.Add(new Peca(new Point(3, 3), Cor.BRANCA));
            Pecas.Add(new Peca(new Point(5, 3), Cor.BRANCA));
            Pecas.Add(new Peca(new Point(7, 3), Cor.BRANCA));

            Pecas.Add(new Peca(new Point(2, 6), Cor.PRETA));
            Pecas.Add(new Peca(new Point(4, 6), Cor.PRETA));
            Pecas.Add(new Peca(new Point(6, 6), Cor.PRETA));
            Pecas.Add(new Peca(new Point(8, 6), Cor.PRETA));

            Pecas.Add(new Peca(new Point(1, 7), Cor.PRETA));
            Pecas.Add(new Peca(new Point(3, 7), Cor.PRETA));
            Pecas.Add(new Peca(new Point(5, 7), Cor.PRETA));
            Pecas.Add(new Peca(new Point(7, 7), Cor.PRETA));

            Pecas.Add(new Peca(new Point(2, 8), Cor.PRETA));
            Pecas.Add(new Peca(new Point(4, 8), Cor.PRETA));
            Pecas.Add(new Peca(new Point(6, 8), Cor.PRETA));
            Pecas.Add(new Peca(new Point(8, 8), Cor.PRETA));
        }
Esempio n. 2
0
        public void RealizaJogada(Posicao origem, Posicao destino)
        {
            Peca pecaCapturada = ExecutaMovimento(origem, destino);

            if (EstaEmXeque(JogadorAtual))
            {
                DesfazMovimento(origem, destino, pecaCapturada);
                throw new TabuleiroException("Você não pode se colocar em xeque!");
            }

            Peca p = Tab.Peca(destino);

            // promoção
            if (p is Peao)
            {
                if ((p.Cor == Cor.Branca && destino.Linha == 0) || (p.Cor == Cor.Preta && destino.Linha == 7))
                {
                    p = Tab.RetirarPeca(destino);
                    Pecas.Remove(p);
                    Peca dama = new Dama(Tab, p.Cor, _spriteSheet, _atlas, PieceScaleRatio);
                    Tab.ColocarPeca(dama, destino);
                    Pecas.Add(dama);
                }
            }


            if (EstaEmXeque(Adversaria(JogadorAtual)))
            {
                Xeque = true;
            }
            else
            {
                Xeque = false;
            }

            if (TexteXequeMate(Adversaria(JogadorAtual)))
            {
                Terminada = true;
            }
            else
            {
                this.Turno++;
                MudaJogador();
            }


            // #jogada especial en passant
            if (p is Peao && (destino.Linha == origem.Linha - 2 || destino.Linha == origem.Linha + 2))
            {
                VulveravelEnPassant = p;
            }
            else
            {
                VulveravelEnPassant = null;
            }
        }
        public void RealizaJogada(Posicao origem, Posicao destino)
        {
            Peca pecaCapturada = ExecutaMovimento(origem, destino);

            if (EstarEmXeque(JogadorAtual))
            {
                DesfazMovimento(origem, destino, pecaCapturada);
                throw new TabuleiroException("Você não pode se colocar em Xeque!");
            }

            Peca peca = Tabuleiro.Peca(destino);

            // #jogadaespecial promocao
            if (peca is Peao)
            {
                if (peca.Cor == Cor.Branca && destino.Linha == 0 || peca.Cor == Cor.Preta && destino.Linha == 7)
                {
                    peca = Tabuleiro.RetirarPeca(destino);
                    Pecas.Remove(peca);

                    Peca rainha = new Rainha(Tabuleiro, peca.Cor);
                    Tabuleiro.ColocarPeca(rainha, destino);
                    Pecas.Add(rainha);
                }
            }

            if (EstarEmXeque(Adversaria(JogadorAtual)))
            {
                Xeque = true;
            }
            else
            {
                Xeque = false;
            }

            if (TesteXequeMate(Adversaria(JogadorAtual)))
            {
                Terminada = true;
            }
            else
            {
                Turno++;
                MudaJogador();
            }

            // #jogadaespecial en passant
            if (peca is Peao && destino.Linha == origem.Linha - 2 || destino.Linha == origem.Linha + 2)
            {
                VulneravelEnPassant = peca;
            }
            else
            {
                VulneravelEnPassant = null;
            }
        }
        public void realizaJogada(Posicao origem, Posicao destino)
        {
            Peca pecaCapturada = executaMovimento(origem, destino);

            if (estaEmXeque(JogadorAtual))
            {
                desfazMovimento(origem, destino, pecaCapturada);
                throw new TabuleiroException("Você não pode se colocar em xeque! ");
            }

            Peca p = Tab.peca(destino);

            // #jogadaespecial promocao
            if (p is Peao)
            {
                if ((p.Cor == Cor.Branca && destino.Linha == 0) || (p.Cor == Cor.Preta && destino.Linha == 7))
                {
                    p = Tab.retirarPeca(destino);
                    Pecas.Remove(p);
                    Peca dama = new Dama(Tab, p.Cor);
                    Tab.colocarPeca(dama, destino);
                    Pecas.Add(dama);
                }
            }


            if (estaEmXeque(adversaria(JogadorAtual)))
            {
                Xeque = true;
            }
            else
            {
                Xeque = false;
            }

            if (testeXequeMate(adversaria(JogadorAtual)))
            {
                Terminada = true;
            }
            else
            {
                Turno++;
                mudaJogador();
            }

            // #jogadaespecial En Passant
            if (p is Peao && (destino.Linha == origem.Linha - 2 || destino.Linha == origem.Linha + 2))
            {
                VulneravelEnPassant = p;
            }
            else
            {
                VulneravelEnPassant = null;
            }
        }
Esempio n. 5
0
        public void RealizaJogada(Posicao origem, Posicao destino)
        {
            Peca pecaCapturada = ExecutaMovimento(origem, destino);

            if (EstaEmXeque(JogadorAtual))
            {
                DesfazMovimento(origem, destino, pecaCapturada);
                throw new TabulerioException("Voçe não pode se colocar em Xeque.");
            }

            Peca p = Tab.GetPeca(destino);

            // #jogadaespecial promocao
            if (p is Peao)
            {
                if ((p.Cor == Cor.Branca && destino.Linha == 0) || (p.Cor == Cor.Preta && destino.Linha == 7))
                {
                    p = Tab.RemoverPeca(destino);
                    Pecas.Remove(p);
                    Peca dama = new Dama(Tab, p.Cor);
                    Tab.SetPeca(dama, destino);
                    Pecas.Add(dama);
                }
            }

            if (EstaEmXeque(Adversario(JogadorAtual)))
            {
                Xeque = true;
            }
            else
            {
                Xeque = false;
            }

            if (XequeMate(Adversario(JogadorAtual)))
            {
                Terminada = true;
            }
            else
            {
                Turno++;
                MudaJogador();
            }

            // #jogadaespecial en passant
            if (p is Peao && (destino.Linha == origem.Linha - 2 || destino.Linha == origem.Linha + 2))
            {
                VulneravelEnPassant = p;
            }
            else
            {
                VulneravelEnPassant = null;
            }
        }
Esempio n. 6
0
        public void RealizaJogada(Posicao origem, Posicao destino)
        {
            Peca capturada = ExecutaMovimento(origem, destino);

            if (EstaEmCheque(JogadorAtual))
            {
                DesfazMovimento(origem, destino, capturada);
                throw new TabuleiroException($"Você não pode se por em cheque!!!");
            }

            Peca p = Tab.GetPeca(destino);

            //#jogadaespcial promocao
            if (p is Peao)
            {
                if ((p.Cor == Cor.Branca && destino.Linha == 0) || (p.Cor == Cor.Preta && destino.Linha == 7))
                {
                    p = Tab.RemovePeca(destino);
                    Pecas.Remove(p);
                    Peca rainha = new Rainha(p.Cor, Tab);
                    Tab.PutPeca(rainha, destino);
                    Pecas.Add(rainha);
                }
            }

            if (EstaEmCheque(Adversario(JogadorAtual)))
            {
                Xeque = true;
            }
            else
            {
                Xeque = false;
            }

            if (TesteXequemate(Adversario(JogadorAtual)))
            {
                Terminada = true;
            }
            else
            {
                Turno++;
                MudaJogador();
            }

            // #jogadaespecial en passant
            if (p is Peao && (destino.Linha == origem.Linha - 2 || destino.Linha == origem.Linha + 2))
            {
                VuneravelEnPassant = p;
            }
            else
            {
                VuneravelEnPassant = null;
            }
        }
Esempio n. 7
0
        public void RealizaJogada(Posicao origem, Posicao destino)
        {
            Peca pecaCapturada = ExecutaMovimento(origem, destino);
            Peca p             = Tab.PegaPeca(destino);

            if (EstaXeque(JogadorAtual))
            {
                DesfazMovimento(origem, destino, pecaCapturada);
                throw new GameBoardException("Você não pode se colocar em xeque!");
            }
            //#JogadaEspecial Promocao
            if (p is Pawn)
            {
                if ((p.Color == Cor.White && destino.Linha == 0) || (p.Color == Cor.Black && destino.Linha == 7))
                {
                    p = Tab.retirarPeca(destino);
                    Pecas.Remove(p);
                    Peca queen = new Queen(Tab, p.Color);
                    Tab.ColocarPeca(queen, destino);

                    Pecas.Add(queen);
                }
            }

            if (EstaXeque(Adversaria(JogadorAtual)))
            {
                Xeque = true;
            }
            else
            {
                Xeque = false;
            }

            if (TesteXequeMate(Adversaria(JogadorAtual)))
            {
                Terminada = true;
            }
            else
            {
                Turno++;
                MudaJogador();
            }

            //#JogadaEspecial EnPassant
            if (p is Pawn && (origem.Linha + 2 == destino.Linha || origem.Linha - 2 == destino.Linha))
            {
                VuneravelEnPassant = p;
            }
            else
            {
                VuneravelEnPassant = null;
            }
        }
Esempio n. 8
0
 public void ColocarNovaPeca(char coluna, int linha, Peca peca)
 {
     Tab.SetPeca(peca, new PosicaoXadrez(coluna, linha).ToPosicao());
     Pecas.Add(peca);
 }
Esempio n. 9
0
 public void ColocarNovaPeca(char coluna, int linha, Peca peca)
 {
     this._tabuleiro.AdicionarPeca(peca, new PosicaoXadrez(coluna, linha).ToPosicao());
     Pecas.Add(peca);
 }
Esempio n. 10
0
 public void ColocarNovaPeca(char coluna, int linha, Peca peca)
 {
     Tab.ColocarPeca(peca, new PosicaoXadrez(coluna, linha).ConvertPosition());
     Pecas.Add(peca);
 }
Esempio n. 11
0
 public void colocarNovaPeca(char coluna, int linha, Peca peca)
 {
     Tabuleiro.colocarPeca(peca, new PosicaoXadrez(coluna, linha).toPosicao());
     Pecas.Add(peca);
 }