public ResultadoDaPartida(IParticipante vencedor, IParticipante derrotado) { if (vencedor == null) { throw new ArgumentNullException("O Vencedor não foi informado"); } if (derrotado == null) { throw new ArgumentNullException("O Derrotado não foi informado"); } _vencedor = vencedor; _derrotado = derrotado; }
public Confronto(IParticipante participante1, IParticipante participante2, int posicaoDoConfrontoNaFase) { if (participante1 == null || participante2 == null) { throw new ArgumentNullException("Os participantes não foran informados"); } if (posicaoDoConfrontoNaFase <= 0) { throw new ArgumentException("Posição do confronto na fase inválida"); } _participante1 = participante1; _participante2 = participante2; _posicaoDoConfrontoNaFase = posicaoDoConfrontoNaFase; }
public IResultadoDaPartida DefinirVencedor() { IResultadoDaPartida resultadoDaPartida; IParticipante participante1 = _confronto.Participante1; IParticipante participante2 = _confronto.Participante2; if (participante1.FilmeParticipante.Nota == participante2.FilmeParticipante.Nota) if (participante1.PosicaoNaOrdemAlfabetica < participante2.PosicaoNaOrdemAlfabetica) resultadoDaPartida = ResultadoPartidaFactory.Criar(participante1, participante2); else resultadoDaPartida = ResultadoPartidaFactory.Criar(participante2, participante1); else if (participante1.FilmeParticipante.Nota > participante2.FilmeParticipante.Nota) resultadoDaPartida = ResultadoPartidaFactory.Criar(participante1, participante2); else resultadoDaPartida = ResultadoPartidaFactory.Criar(participante2, participante1); return resultadoDaPartida; }
public IFase Inicializar() { int primeiraPosicao = 1; int ultimaPosicao = _participantes.OrderBy(participanteSelecionado => participanteSelecionado.PosicaoNaOrdemAlfabetica).Last().PosicaoNaOrdemAlfabetica; int posicaoDoConfrontoNaFase = 1; while (ultimaPosicao - primeiraPosicao > 0) { IParticipante participante1 = BuscarParticipantePorPosicaoNaOrdemAlfabetica(primeiraPosicao); IParticipante participante2 = BuscarParticipantePorPosicaoNaOrdemAlfabetica(ultimaPosicao); var confronto = ConfrontoFactory.Criar(participante1, participante2, posicaoDoConfrontoNaFase); _fase.AdicionarConfronto(confronto); primeiraPosicao++; ultimaPosicao--; posicaoDoConfrontoNaFase++; } return(_fase); }
private IParticipante BuscarParticipantePorPosicaoNaOrdemAlfabetica(int posicaoNaOrdemAlfabetica) { IParticipante participante = _participantes.First(particimante => particimante.PosicaoNaOrdemAlfabetica == posicaoNaOrdemAlfabetica); return(participante); }
public static IResultadoDaPartida Criar(IParticipante vencedor, IParticipante derrotado) { return(new ResultadoDaPartida(vencedor, derrotado)); }
public static IConfronto Criar(IParticipante participante1, IParticipante participante2, int posicaoDoConfrontoNaFase) { return(new Confronto(participante1, participante2, posicaoDoConfrontoNaFase)); }