Exemple #1
0
    // verifica todos os movimentos das peças inimigas para verificar se pode mover sem ter xeque
    // tive que mudar para public porque essa função precisa ser utilizada em outro local alem da propria classe.
    public bool CausaAutoXeque()
    {
        if (origem == null || destino == null)
        {
            return(false);
        }

        // Faz um ensaio do tabuleiro como se o movimento acontecesse
        Peca movida;

        if (origem.PecaAtual != null)
        {
            movida = origem.PopPeca();
        }
        else
        {
            return(false);
        }

        Peca capturada = null;

        if (destino.PecaAtual != null)
        {
            capturada = destino.PopPeca();
        }

        destino.ColocarPeca(movida);

        // Verifica se seria xeque
        bool resultado = false;

        if (movida.jDono.EmXeque())
        {
            resultado = true;
        }

        // Devolvendo as peças para seus lugares
        destino.PopPeca();
        origem.ColocarPeca(movida);
        if (capturada != null)
        {
            destino.ColocarPeca(capturada);
        }

        return(resultado);
    }
Exemple #2
0
    //[TestCase(false,-1,-1)]  // teste nao valido
    //[TestCase(false,-1,-1), ExpectedException(typeof(ArgumentOutOfRangeException))] // nao existe na versao atual do NUnit
    public void TesteOcupado(bool p, int x, int y)
    {
        Casa      c   = null;
        Jogador   j1  = null;
        Peca      pec = null;
        Tabuleiro t   = new Tabuleiro();

        try
        {
            c = new Casa(x, y, t);
            if (p)
            {
                j1  = new Jogador('b', true);
                pec = new Peca(j1);
                //c.PecaAtual = pec;
                c.ColocarPeca(pec);
                Assert.AreEqual(p, c.EstaOcupada());
            }
            else
            {
                Assert.AreEqual(p, c.EstaOcupada());
            }
        }catch (ArgumentOutOfRangeException e)
        {
            //Log.Error("Garantia de tratamento",e);
            //  Console.WriteLine("Garantia de Tratamento");
            //TestContext.Write("Garantia de Tratamento");
            // Debug.WriteLine("Garantia de Tratamento");
            if (e.Source != null)
            {
                Console.WriteLine("Garantia de catch: {0}", e.Source);
            }
            throw;
            //  Assert.Throws<ArgumentOutOfRangeException>(delegate()
            //   {
            //       Console.WriteLine("Garantia de catch: {0}", e.Source);
            //       throw ;
            //    });
        }
    }