예제 #1
0
        /// <summary>
        /// Funcion para el comienzo de un nuevo punto
        /// </summary>
        /// <returns></returns>
        public Punto ComienzaPunto()
        {
            if (Estado != Estado.EnJuego)
            {
                throw new InvalidOperationException("El partido no esta activo");
            }

            if (PuntoActual != null)
            {
                throw new InvalidOperationException("Hay un punto en juego");
            }


            //Comienza Set1
            if (SetActual == null)
            {
                Set set = new Set();
                set.ComienzoCallback(comienzoSetcallback);
                set.GanaCallback(ganaSetcallback);
                Comenzar(set);
            }

            if (JuegoActual == null)
            {
                //Comienza Juego
                Juego juego = new Juego();
                juego.ComienzoCallback(comienzoJuegocallback);
                juego.GanaCallback(ganaJuegocallback);
                SetActual.Comenzar(juego);
            }


            Punto punto = new Punto();

            punto.ComienzoCallback(comienzoPuntocallback);
            punto.GanaCallback(ganaPuntocallback);
            JuegoActual.Comenzar(punto);



            return(punto);
        }
예제 #2
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);
        }