Пример #1
0
        public Time(CentralEventos central, string nome) : base(central)
        {
            Nome = nome;
            central.OfType <ApitoInicio>()
            .Subscribe(
                ini => Console.WriteLine($"{Nome}: Vamos lá pessoal, pra cima deles!")
                );
            central.OfType <ApitoGol>() // Gol contra o time
            .Where(gol => !gol.TimeEmCampo.Equals(this))
            .Subscribe(
                gol => Console.WriteLine($"{Nome}: Ânimo pessoal!!! Vamos marcar mais forte")
                );

            central.OfType <ApitoGol>() // Gol do Time
            .Where(gol => gol.TimeEmCampo.Equals(this))
            .Subscribe(
                gol => Console.WriteLine($"{Nome}: Muito bem pessoal!!!")
                );

            central.OfType <ApitoFalta>() //Falta do outro time
            .Where(falta => !falta.TimeEmCampo.Equals(this))
            .Subscribe(
                falta => Console.WriteLine($"{Nome}: pô seu juiz, cadê o cartão?")
                );

            central.OfType <ApitoFalta>() //Falta do time
            .Where(falta => falta.TimeEmCampo.Equals(this))
            .Subscribe(
                falta => Console.WriteLine($"{Nome}: foi na bola seu juiz, que injusto!")
                );

            central.OfType <Derrota>() // derrota por faltas do time
            .Where(falta => falta.TimeEmCampo.Equals(this))
            .Subscribe(
                falta => Console.WriteLine($"{Nome}: Esse nr de faltas bem que poderia ser maior :(")
                );

            central.OfType <Derrota>() // derrota por faltas do outro time
            .Where(falta => !falta.TimeEmCampo.Equals(this))
            .Subscribe(
                falta => Console.WriteLine($"{Nome}: Jogar com violência da nisso!")
                );

            central.OfType <Vitoria>() // vitoria do time
            .Where(v => v.TimeEmCampo.Equals(this))
            .Subscribe(
                vit => Console.WriteLine($"{Nome}: Viva o {Nome}!")
                );

            central.OfType <Vitoria>() // vitoria do outro time
            .Where(v => !v.TimeEmCampo.Equals(this))
            .Subscribe(
                vit => Console.WriteLine($"{Nome}: Na próxima {vit.TimeEmCampo.Nome} vocês vão ver!")
                );

            central.OfType <ApitoFinal>()
            .Subscribe(
                fim => central.Parar()
                );
        }
Пример #2
0
        public Juiz(CentralEventos central, Regras regras) : base(central)
        {
            _regras = regras;

            central.OfType <GolMarcado>()
            .Timeout(TimeSpan.FromSeconds(regras.LimiteTempo))
            .Subscribe(
                e => ApitarGol(e.TimeEmCampo, e.GolsMarcados),
                ex => FinalizarPorTempo(ex)
                );

            central.OfType <FaltaCometida>()
            .Timeout(TimeSpan.FromSeconds(regras.LimiteTempo))
            .Subscribe(
                e => ApitarFalta(e.TimeEmCampo, e.Faltas),
                ex => FinalizarPorTempo(ex)
                );
        }
Пример #3
0
 public Ator(CentralEventos central)
 {
     this.central = central ?? throw new ArgumentNullException(paramName: nameof(central));
 }