public void NaoConsigoPassarABolaPraUmJogadorDoOutroTime() { var player1 = new Jogador(Equipe.EquipeA,null); var player2 = new Jogador(Equipe.EquipeB, null); var motor = new Motor(null); motor.CalculaPasse(player1, player2, 2, AlturaPasse.Rasteiro, null); }
public ResultadoPasse CalculaPasse(Jogador origem, Jogador destino, int distancia, AlturaPasse alturaPasse, IEnumerable<Jogador> adversariosNoCaminho) { if(origem.Equipe != destino.Equipe) throw new PasseInvalidoException(); int coeficienteDificuldade = CalculaCoeficienteDificuldadePasse(distancia, alturaPasse, adversariosNoCaminho); var sorte = Sorte.RodaODado(); if(sorte + origem.AtributosJogador.Passe > coeficienteDificuldade) return new ResultadoPasse() {DetentorDaPelota = destino, Sucesso = true}; return new ResultadoPasse() {Sucesso = false}; }
public void UmJogadorComOtimoPasseComSorteMinimaConseguePassarABolaPraOutroJogadorA100MetroPeloChaoSemAdversarios() { var atributosJogador = new AtributosJogador { Passe = 100 }; var player1 = new Jogador(Equipe.EquipeA, atributosJogador); var player2 = new Jogador(Equipe.EquipeA, atributosJogador); var sorte = new Mock<ICoeficienteSorte>(); sorte.Setup(c => c.RodaODado()).Returns(1); var motor = new Motor(sorte.Object); IEnumerable<Jogador> adversariosNoCaminho = new List<Jogador>(); ResultadoPasse resultadoPasse = motor.CalculaPasse(player1, player2, 1, AlturaPasse.Rasteiro, adversariosNoCaminho); Assert.IsTrue(resultadoPasse.Sucesso = true); Assert.IsTrue(resultadoPasse.DetentorDaPelota == player2); }
public void UmJogadorComPessimoPasseComSorteQuaseMaximaNaoConseguePassarABolaPraOutroJogadorA100MetroPeloChaoSemAdversarios() { var atributosJogador = new AtributosJogador { Passe = 1 }; var player1 = new Jogador(Equipe.EquipeA, atributosJogador); var player2 = new Jogador(Equipe.EquipeA, atributosJogador); var sorte = new Mock<ICoeficienteSorte>(); sorte.Setup(c => c.RodaODado()).Returns(99); var motor = new Motor(sorte.Object); IEnumerable<Jogador> adversariosNoCaminho = new List<Jogador>(); ResultadoPasse resultadoPasse = motor.CalculaPasse(player1, player2, 100, AlturaPasse.Rasteiro, adversariosNoCaminho); Assert.IsFalse(resultadoPasse.Sucesso); }