// 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); }
//[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 ; // }); } }