Exemple #1
0
        /// <summary>
        /// Llamada para indicar quien gana el punto en juego
        /// </summary>
        /// <param name="jugador">Jugador que gana</param>
        public void GanaPunto(JugadorEnum jugador)
        {
            //Check partido en juego
            if (Estado != Estado.EnJuego)
            {
                throw new InvalidOperationException("El partido no esta activo");
            }

            //Check que hay en juego punto actual
            if (PuntoActual == null)
            {
                throw new InvalidOperationException("No hay punto en juego, debe llamar a comienza Punto");
            }

            //Asignamos ganadores y perdores
            PuntoActual.JugadorGana   = jugador;
            PuntoActual.JugadorPierde = (PuntoActual.JugadorGana == JugadorEnum.Player1 ? JugadorEnum.Player2 : JugadorEnum.Player1);

            JuegoActual.Ganar(PuntoActual);
        }
Exemple #2
0
        static void Run(IPartidoTenis partido)
        {
            //Solicitar datos user
            #region Inicialización Solicitar datos - Consola

            /*
             * partido.AddJugador(new Jugador("Nadal"));
             * partido.AddJugador(new Jugador("Djokovic"));
             * partido.NumerodeSets = PartidoSets.Partido5Sets;*/

            partido.AddJugador(new Jugador(SolicitarString("Nombre jugador 1: ")));
            partido.AddJugador(new Jugador(SolicitarString("Nombre jugador 2: ")));
            partido.NumerodeSets = (PartidoSets)SolicitarSets("Partido a 3 ó 5 sets? ");

            #endregion

            //Registrar Callbacks - Para mostrar por pantalla desde eventos
            #region Callbacks

            #region Comienza
            ///Callback inicio partido
            partido.ComienzaPartidoCallback(
                (partidoarranca) =>
            {
                Jugador saca = partidoarranca.Jugadores.First(j => j.Id == partidoarranca.JugadorSaca);
                Write(string.Format("{0} iniciará el partido sacando.\r\n", saca.Nombre));
            });

            ///Callback inicio juego
            partido.ComienzaJuegoCallback(
                (juego) =>
            {
                Write(string.Format("\r\n** Juego {0} - Set {1}", juego.Set.Juegos.Count, juego.Set.Partido.Sets.Count));
            });


            #endregion


            #region Gana
            //Ej-**Juego 1 - Set 1
            partido.GanaPuntoCallback(punto =>
            {
                if (punto.PuntuacionTenisJugador1 != PuntuacionJuego.Ganado && punto.PuntuacionTenisJugador2 != PuntuacionJuego.Ganado)
                {
                    Write(punto.ToString(), ((Partido)partido).ToResultString());
                }
            });

            //Callback inicio Juego
            //**Pepo gana el juego
            partido.GanaJuegoCallback(juego =>
            {
                if (juego.Set.Estado == Estado.EnJuego)
                {
                    Write(juego.ToString(), ((Partido)partido).ToResultString());
                }
            });

            //Callback gana set
            //Supu gana el juego y el set
            partido.GanaSetCallback(set =>
            {
                if (partido.Estado == Estado.EnJuego)
                {
                    Write(set.ToString(), ((Partido)partido).ToResultString());
                }
            });

            //Callback gana el partido
            //!!PEPO GANA EL PARTIDO¡¡  (6-2, 6-7, 6-4)
            partido.GanaPartidoCallback(partidofin =>
            {
                Write(partidofin.ToString(), ((Partido)partido).ToResultString());
            });
            #endregion

            #endregion


            //Seleccionamos el jugador que hara el Saque
            partido.JugadorSaca = partido.GetJugadorRandom();

            //Comienza el partido!!
            partido.ComienzaPartido();

            //Mientras el partido esta en juego
            //Vamos jugando nuevos puntos
            while (partido.Estado == Estado.EnJuego)
            {
                //Comienza punto
                partido.ComienzaPunto();
                //Obtenemos el jugador  que va a ganar
                JugadorEnum jugadorGanador = partido.GetJugadorRandom();
                //Gana el punto el jugador que seleccionamos
                partido.GanaPunto(jugadorGanador);
            }

            //Parada para lectura de datos
            System.Console.Read();
        }