示例#1
0
    public void processarMouseUp(GameObject peca, GameObject casa)
    {
        if (estado == Estado.Arrastando)
        {
            if (casa != null)
            {
                if (pecaEscolhida != null && pecaEscolhida == peca)
                {
                    try {
                        char coluna = casa.name[0];
                        int  linha  = casa.name[1] - '0';
                        destino = new PosicaoXadrez(coluna, linha);

                        partida.validarPosicaoDeDestino(origem.toPosicao(), destino.toPosicao());
                        Peca pecaCapturada = partida.realizaJogada(origem.toPosicao(), destino.toPosicao());

                        if (pecaCapturada != null)
                        {
                            removerObjetoCapturado(pecaCapturada);
                        }

                        peca.transform.position = Util.posicaoNaCena(coluna, linha);

                        pecaEscolhida = null;



                        if (partida.terminada)
                        {
                            estado        = Estado.GameOver;
                            txtMsg.text   = "Vencedor: " + partida.jogadorAtual;
                            txtXeque.text = "XEQUEMATE";
                        }
                        else
                        {
                            estado = Estado.AguardandoJogada;
                            informarAguardando();
                            if (partida.xeque)
                            {
                                txtXeque.text = "XEQUE";
                            }
                            else
                            {
                                txtXeque.text = "";
                            }
                        }
                    }
                    catch (TabuleiroException e) {
                        peca.transform.position = Util.posicaoNaCena(origem.coluna, origem.linha);
                        estado = Estado.AguardandoJogada;
                        informarAviso(e.Message);
                    }
                }
            }
        }
    }
示例#2
0
        static void Main(string[] args)
        {
            try
            {
                PartidaDeXadrez partida = new PartidaDeXadrez();

                while (!partida.terminada)
                {
                    try
                    {
                        Console.Clear();
                        Tela.imprimirTabuleiro(partida.tab);
                        Console.WriteLine();
                        Console.WriteLine("Turno" + partida.turno);
                        Console.WriteLine("AGUARDANDO JOGADA : " + partida.jogadorAtual);

                        Console.WriteLine("");
                        Console.Write("DIGITE A POSICAO DE ORIGEM: ");
                        Posicao origem = Tela.lerPosicaoXadrez().toPosicao();
                        partida.validarPosicaoDeOrigem(origem);

                        bool[,] posicoesPossiveis = partida.tab.peca(origem).movimentosPossiveis();

                        Console.Clear();
                        Tela.imprimirTabuleiro(partida.tab, posicoesPossiveis);

                        Console.Write("DIGITE O DESTINO: ");
                        Posicao destino = Tela.lerPosicaoXadrez().toPosicao();
                        partida.validarPosicaoDeDestino(origem, destino);

                        partida.realizaJogada(origem, destino);
                    }
                    catch (tabuleiroException e)
                    {
                        Console.WriteLine(e.Message);
                        Console.ReadLine();
                    }
                }
                //Tela.imprimirTabuleiro(partida.tab);
            }
            catch (tabuleiroException e)
            {
                Console.WriteLine(e.Message);

                PosicaoXadrez pos = new PosicaoXadrez('a', 1);
                Console.WriteLine(pos);

                Console.WriteLine(pos.toPosicao());

                Console.ReadLine();
            }
        }
示例#3
0
        static void Main(string[] args)
        {
            try
            {
                PosicaoXadrez pos = new PosicaoXadrez('c', 7);

                Console.WriteLine(pos.toPosicao());
            }
            catch (TabuleiroException e)
            {
                Console.WriteLine(e.Message);
            }
            Console.ReadLine();
        }
示例#4
0
 public void processarMouseDown(GameObject peca, GameObject casa)
 {
     if (estado == Estado.AguardandoJogada)
     {
         if (casa != null)
         {
             try {
                 char coluna = casa.name[0];
                 int  linha  = casa.name[1] - '0';
                 origem = new PosicaoXadrez(coluna, linha);
                 partida.validarPosicaoDeOrigem(origem.toPosicao());
                 pecaEscolhida = peca;
                 estado        = Estado.Arrastando;
                 txtMsg.text   = "Solte a peça na casa de destino";
             }
             catch (TabuleiroException e) {
                 informarAviso(e.Message);
             }
         }
     }
 }
示例#5
0
        static void Main(string[] args)
        {
            try
            {
                PosicaoXadrez pos = new PosicaoXadrez('a', 1);
                Console.WriteLine(pos);

                Console.WriteLine(pos.toPosicao());

                Tabuleiro tab = new Tabuleiro(8, 8);

                tab.colocarPeca(new Peao(tab, Cor.Preta), new Posicao(0, 0));
                tab.colocarPeca(new Peao(tab, Cor.Preta), new Posicao(1, 3));
                tab.colocarPeca(new Peao(tab, Cor.Preta), new Posicao(0, 2));

                Tela.imprimirTabuleiro(tab);

                Console.WriteLine();
            }
            catch (TabuleiroException e) {
                Console.WriteLine(e.Message);
            }
        }
示例#6
0
    public void processarMouseDown(GameObject obj, GameObject casa)
    {
        if (estado == Estado.AguardandoJogada)
        {
            if (casa != null)
            {
                try
                {
                    char coluna = casa.name[0];
                    int  linha  = casa.name[1] - '0';
                    origem = new PosicaoXadrez(coluna, linha);
                    partida.validarPosicaoDeOrigem(origem.toPosicao());
                    pecaEscolhida = obj;
                    estado        = Estado.Arrastando;
                    txtMsg.text   = "Selecione a casa de destino";
                    instanciarParticulas();
                    GameObject.Find("somClique").GetComponent <AudioSource>().Play();
                }
                catch (TabuleiroException e)
                {
                    GameObject.Find("somErro").GetComponent <AudioSource>().Play();
                    InformarAviso(e.Message);
                }
            }
        }
        else if (estado == Estado.Arrastando)
        {
            GameObject casaDestino = null;
            if (obj.layer == LayerMask.NameToLayer("Casas"))
            {
                casaDestino = obj;
            }
            else
            {
                casaDestino = casa;
            }


            if (casaDestino != null && pecaEscolhida != null)
            {
                try
                {
                    char coluna = casaDestino.name[0];
                    int  linha  = casaDestino.name[1] - '0';
                    destino = new PosicaoXadrez(coluna, linha);

                    partida.validarPosicaoDeDestino(origem.toPosicao(), destino.toPosicao());
                    Peca pecaCapturada = partida.realizaJogada(origem.toPosicao(), destino.toPosicao());

                    if (pecaCapturada != null)
                    {
                        removerObjetoCapturado(pecaCapturada);
                        GameObject.Find("somCaptura").GetComponent <AudioSource>().Play();
                    }
                    else
                    {
                        GameObject.Find("somClique").GetComponent <AudioSource>().Play();
                    }

                    pecaEscolhida.transform.position = Util.posicaoNaCena(coluna, linha);

                    tratarJogadasEspeciais();

                    pecaEscolhida = null;

                    if (partida.terminada)
                    {
                        estado        = Estado.GameOver;
                        txtMsg.text   = "Vencedor: " + partida.jogadorAtual;
                        txtXeque.text = "XEQUEMATE";
                    }
                    else
                    {
                        estado = Estado.AguardandoJogada;
                        InformarAguardando();
                        Invoke("girarCamera", 0.5f);
                        txtXeque.text = (partida.xeque) ? "XEQUE" : "";
                    }
                }
                catch (TabuleiroException e)
                {
                    pecaEscolhida.transform.position = Util.posicaoNaCena(origem.coluna, origem.linha);
                    estado = Estado.AguardandoJogada;
                    InformarAviso(e.Message);
                    GameObject.Find("somErro").GetComponent <AudioSource>().Play();
                }
                finally
                {
                    destruirParticulas();
                }
            }
        }
    }