Exemple #1
0
        private async void CartaSelectPanel_Tapped(object sender, TappedRoutedEventArgs e)
        {
            if (myApp.miTurno)
            {
                await _dispatcher.RunAsync(CoreDispatcherPriority.Low, () => {
                    Storyboard myStory = new Storyboard();

                    RelativePanel clickedElement = sender as RelativePanel;
                    clsCarta miCarta             = clickedElement.DataContext as clsCarta;

                    clsCarta miCartaV2 = vm.listadoDeCartas[miCarta.idCarta];

                    Object value = null;



                    if (!miCartaV2.estaBajada)
                    {
                        clickedElement?.Resources.TryGetValue("revelaImagen", out value);
                    }
                    else
                    {
                        clickedElement?.Resources.TryGetValue("volteaImagen", out value);
                    }

                    myStory = value as Storyboard;
                    myStory?.Begin();
                });
            }
        }
Exemple #2
0
        public void rellenarTablero()
        {
            clsCarta        carta;
            List <clsCarta> lista = new List <clsCarta>();
            Random          random;

            for (int i = 0; i < 16; i++)
            {
                random = new Random();
                int numRnd = random.Next(1, 2);
                if (numRnd == 1)
                {
                    _tipoCarta = tipoCarta.acierto;
                }
                else
                {
                    if (numRnd == 2)
                    {
                        _tipoCarta = tipoCarta.bomba;
                    }
                }
                _imagenCarta = new Uri("ms-appx://_17_Examen1EVAL_UWP/Assets/presionar.png", UriKind.RelativeOrAbsolute);
                carta        = new clsCarta(_tipoCarta, _imagenCarta);
                lista.Add(carta);
            }
            _listadoCartas = lista;
        }
Exemple #3
0
        /// <summary>
        /// Este metodo comprueba si la carta ya ha sido seleccionada y si no lo es comprueba si es la primera
        /// y si lo es no hace nada.Comprueba si es la segunda y si lo es
        /// comprueba que la pareja es correcta en el caso de que no lo es le da la vuelta a las cartas
        /// Y en el caso de que si sea correcta le suma uno al numero de parejas
        /// </summary>
        public async void comprobarJugada()
        {
            if (_cartaSeleccionada != null)
            {
                //Aqui comprueba que la carta que ha seleccionado no es una que ya este volteada
                if (_cartaSeleccionada.Volteada)
                {
                    _cartaSeleccionada = null;
                }
                else
                {
                    //Aqui comprobamos que carta es a la que le vamos a dar el valor
                    _cartaSeleccionada.Volteada = true;
                    if (_carta1 == null)
                    {
                        _carta1 = _cartaSeleccionada;
                    }
                    else
                    {
                        _carta2 = _cartaSeleccionada;


                        //Aqui hago la comprobacion de las parejas
                        _tableroHabilitado = false;
                        NotifyPropertyChanged("TableroHabilitado");
                        if (_carta1.ID == _carta2.ID)
                        {
                            _numeroParejas++;
                            _carta2 = null;
                            _carta1 = null;
                        }
                        else
                        {
                            Task task = Task.Delay(500);
                            await task.AsAsyncAction();

                            _carta1.Volteada = false;
                            _carta2.Volteada = false;
                            _carta2          = null;
                            _carta1          = null;
                            //Aqui intentamos que se deseleccione la carta para poder darle la vuelta
                            _cartaSeleccionada = null;
                            NotifyPropertyChanged("CartaSeleccionada");
                        }

                        //Aqui compruebo si ya ha encontrado todas las parejas
                        if (_numeroParejas == 6)
                        {
                            _cronometro.Stop();
                            _nombreJugador = await this.mostrarMensajeGanador();

                            this.guardarResultado();
                        }
                        _tableroHabilitado = true;
                        NotifyPropertyChanged("TableroHabilitado");
                    }
                }
            }
        }
Exemple #4
0
 public void nuevaPartida_Executed()
 {
     _cartaSeleccionada = null;
     _aciertos          = 0;
     _listadoCartas     = clsListadoCartas.listadoCartas();
     NotifyPropertyChanged("cartaSeleccionada");
     NotifyPropertyChanged("aciertos");
 }
Exemple #5
0
 /// <summary>
 /// Delegate command el cual nos reiniciara la partida
 /// </summary>
 private void ResetCommando_Execute()
 {
     _listadoCartas = clsCarta.listadoCartas();
     NotifyPropertyChanged("ListadoCartas");
     _aleatorioBombas = clsCarta.aleatorioBombas();
     NotifyPropertyChanged("AleatorioBombas");
     _cartaSeleccionada = new clsCarta(0);
     _contador          = 0;
 }
        public List <clsCarta> CargarImages()
        {
            List <clsCarta> ret = new List <clsCarta>();

            clsCarta carta1 = new clsCarta("ms-appx://ParejasDeCartas/Assets/Imagenes/flecha.jpg", false);
            clsCarta carta2 = new clsCarta("ms-appx://ParejasDeCartas/Assets/Imagenes/lebron.jpg", true);

            ret.Add(carta1);
            ret.Add(carta2);
            return(ret);
        }
        public clsViewModelBuscaminas()
        {
            _arrayCartas            = new clsCarta[16];
            _arrayImagenes          = asignarImagenes();
            _cartaPulsada           = null;
            _contadorCartasPulsadas = 0;
            _colorDeFondo           = "AliceBlue";
            _puntuacion             = 0;

            rellenarArrayCartas();
            asignarBombasEnCartas();
        }
        /// <summary>
        /// Funcion que rellena el array de cartas con cartas por el constructor por defecto y les asigna un id y la imagen de presionar
        /// </summary>
        public void rellenarArrayCartas()
        {
            int nId = 1;

            for (int i = 0; i < _arrayCartas.Length; i++)
            {
                _arrayCartas[i]        = new clsCarta();
                _arrayCartas[i].imagen = _arrayImagenes[0];
                _arrayCartas[i].id     = nId;
                nId++;
            }
        }
Exemple #9
0
        //Storyboard rotarAgain = new Storyboard();

        public void RotarCartaAgain(clsCarta cartaSeleccionada) //No sé si esto va bien
        {
            Storyboard      rotarAgain = new Storyboard();
            DoubleAnimation animacion  = new DoubleAnimation();

            animacion.From     = 180.0;
            animacion.To       = 0.0;
            animacion.Duration = TimeSpan.FromMilliseconds(2);
            Storyboard.SetTargetName(animacion, "carta");
            Storyboard.SetTargetProperty(animacion, "(UIElement.Projection).(PlaneProjection.RotationY)");

            rotarAgain.Begin();
        }
        public List <clsCarta> CargarImages2()
        {
            List <clsCarta> ret = new List <clsCarta>();

            clsCarta carta1 = new clsCarta("ms-appx://ParejasDeCartas/Assets/Imagenes/cero.jpg", false);
            clsCarta carta2 = new clsCarta("ms-appx://ParejasDeCartas/Assets/Imagenes/doce.jpg", true);
            clsCarta carta3 = new clsCarta("ms-appx://ParejasDeCartas/Assets/Imagenes/siete.jpg", false);

            ret.Add(carta1);
            ret.Add(carta2);
            ret.Add(carta3);
            return(ret);
        }
        /// <summary>
        /// Funcion que prepara todos los elementos necesarios para empezar una partida desde cero
        /// </summary>
        private void nuevaPartidaCommand_Executed()
        {
            _cartaPulsada           = null;
            _contadorCartasPulsadas = 0;
            _arrayCartas            = new clsCarta[16];
            _colorDeFondo           = "AliceBlue";

            rellenarArrayCartas();
            asignarBombasEnCartas();

            NotifyPropertyChanged("cartaPulsada");
            NotifyPropertyChanged("arrayCartas");
            NotifyPropertyChanged("colorDeFondo");
        }
Exemple #12
0
 ///// <summary>
 ///// Esto es un evento que se ejecutara cuando se presione el boton reiniciar y lo que hara sera
 ///// crear un nuevo tablero
 ///// </summary>
 private void Reiniciar_Executed()
 {
     _cronometro.Stop();
     _tableroHabilitado = false;
     NotifyPropertyChanged("TableroHabilitado");
     _cartaSeleccionada = null;
     this.inicializarTablero();
     NotifyPropertyChanged("Tablero");
     NotifyPropertyChanged("Tiempo");
     //NotifyPropertyChanged("CartaSeleccionada");
     _tableroHabilitado = true;
     NotifyPropertyChanged("TableroHabilitado");
     _cronometro.Start();
 }
Exemple #13
0
 private async void comprobarGanador(clsCarta obj, string nickname)
 {
     await Windows.ApplicationModel.Core.CoreApplication.MainView.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, async() => {
         if (vm.personageGanador.nombreCarta.Equals(obj.nombreCarta))
         {
             if (conn.State == Microsoft.AspNet.SignalR.Client.ConnectionState.Connected)
             {
                 await ChatProxy.Invoke("Ganador", nickname, myApp.sala);
             }
         }
         else
         {
             if (conn.State == Microsoft.AspNet.SignalR.Client.ConnectionState.Connected)
             {
                 await ChatProxy.Invoke("Perdedor", myApp.sala);
             }
         }
     });
 }
Exemple #14
0
        public void rellenarListadoDeCartas()
        {
            listadoDeCartas.Add(new clsCarta(0, "Ángel", "../Assets/QS_angel.png"));
            listadoDeCartas.Add(new clsCarta(1, "Óscar", "../Assets/QS_oscar.png"));
            listadoDeCartas.Add(new clsCarta(2, "Fernando", "../Assets/QS_fernando.png"));
            listadoDeCartas.Add(new clsCarta(3, "Jorge", "../Assets/QS_jorge.png"));
            listadoDeCartas.Add(new clsCarta(4, "Dylan", "../Assets/QS_dylan.png"));
            listadoDeCartas.Add(new clsCarta(5, "Ángela", "../Assets/QS_angela.png"));
            listadoDeCartas.Add(new clsCarta(6, "Miguel Ángel", "../Assets/QS_miguelangel.png"));
            listadoDeCartas.Add(new clsCarta(7, "Nacho", "../Assets/QS_nacho.png"));
            listadoDeCartas.Add(new clsCarta(8, "Yeray", "../Assets/QS_yeray.png"));
            listadoDeCartas.Add(new clsCarta(9, "Rafa", "../Assets/QS_Rafa.png"));
            listadoDeCartas.Add(new clsCarta(10, "Asun", "../Assets/QS_asun.png"));
            listadoDeCartas.Add(new clsCarta(11, "Dolores", "../Assets/QS_dolores.png"));
            listadoDeCartas.Add(new clsCarta(12, "Luis", "../Assets/QS_luis.png"));
            listadoDeCartas.Add(new clsCarta(13, "Eva", "../Assets/QS_eva.png"));
            listadoDeCartas.Add(new clsCarta(14, "Alexa", "../Assets/QS_alexa.png"));
            listadoDeCartas.Add(new clsCarta(15, "Rosario", "../Assets/QS_rosario.png"));
            listadoDeCartas.Add(new clsCarta(16, "Raimunda", "../Assets/QS_raimunda.png"));
            listadoDeCartas.Add(new clsCarta(17, "José", "../Assets/QS_jose.png"));
            listadoDeCartas.Add(new clsCarta(18, "Raquel", "../Assets/QS_raquel.png"));
            listadoDeCartas.Add(new clsCarta(19, "Leo", "../Assets/QS_leo.png"));
            listadoDeCartas.Add(new clsCarta(20, "Sefran", "../Assets/QS_sefran.png"));
            listadoDeCartas.Add(new clsCarta(21, "Marina", "../Assets/QS_marina.png"));
            listadoDeCartas.Add(new clsCarta(22, "Vicky", "../Assets/QS_vicky.png"));
            listadoDeCartas.Add(new clsCarta(23, "Samuel", "../Assets/QS_samuel.png"));

            Random rnd = new Random();

            cartaGanadora = rnd.Next(0, 24);
            //cartaGanadora = 1;

            listadoDeCartas[cartaGanadora].esGanadora = true;
            _personajeGanador = listadoDeCartas[cartaGanadora];

            NotifyPropertyChanged("listadoDeCartas");
        }
Exemple #15
0
        /// <summary>
        /// Método que comprueba la jugada al pulsar las cartas:
        /// - Si las cartas no tienen valor asignado se le asigna a cartaSelecccionada y se voltean para verse
        /// - Una vez volteadas, si ambas cartas son distintas a null comprueba si son iguales con sus id.
        /// - Mientras se comprueban, el tablero de deshabilita, y se vuelve a habilitar una vez comprobadas la cartas
        /// - Tarda un tiempo en habilitar el tablero si las cartas son erróneas, para que el jugador pueba ver las cartas
        /// </summary>
        private async void ComprobarJugada()
        {
            //Hago que cartaSeleccionada esté volteada
            //Está comentado porque se le asigna valor en codigoBehind para control de animación de giro
            //cartaSeleccionada.IsVolteada = true;
            //Si es la primera carta
            //Siempre se muestra inicialmente la carta (isVolteada = true) (sea correcta o no)
            if (carta1 == null)
            {
                carta1 = cartaSeleccionada;
            }
            //Si es la segunda carta:
            //- Se le asinga valor de cartaSeleccionada
            //- Se comprueba si carta1 y carta2 son iguales
            else
            {
                carta2 = cartaSeleccionada;
                //Al ser la segunda carta, carta1 y carta2 ya tienen valor asignado (por lo que no saltará NullPointerException)
                //Bloqueo el tablero mientras se comprueban las cartas
                tableroHabilitado = false;
                NotifyPropertyChanged("TableroHabilitado");
                //Compruebo las cartas:
                //Si son iguales
                if (carta1.IdCarta == carta2.IdCarta)
                {
                    //Anulo las cartas por lo que el jugador puede seguir clicando otras cartas y verlas
                    carta1 = null;
                    carta2 = null;
                    //Al ser iguales, acierta y suma un punto
                    cartasAcertadas++;
                    //cartaSeleccionada = null;
                    //NotifyPropertyChanged("CartaSeleccionada");
                }
                //Si no son iguales
                else
                {
                    //Atraso volteo para mirar las cartas erróneas
                    Task atrasarVolteo = Task.Delay(500);
                    await atrasarVolteo.AsAsyncAction();

                    //clsSegundaAnimacionCarta animacion = new clsSegundaAnimacionCarta();
                    ////animacion.RotarCartaAgain(cartaSeleccionada);
                    //Tras el tiempo vuelvo a ocultar las cartas
                    carta1.IsVolteada = false;
                    carta2.IsVolteada = false;
                    //Asigno las cartas a null para poder volver a asignarle el valor a las nuevas cartas clicadas
                    carta1 = null;
                    carta2 = null;
                    //Intento que se deseleccione la carta para poder volver a clicar seguidamente
                    cartaSeleccionada = null;
                    NotifyPropertyChanged("CartaSeleccionada");
                    //No notifico el cambio de IsVolteada de las cartas, porque ya lo notifican las propias cartas en su set
                }
                //Vuelvo a habilitar el tablero una vez comprobadas la cartas
                tableroHabilitado = true;
                NotifyPropertyChanged("TableroHabilitado");
                if (cartasAcertadas == 6)
                {
                    //Asigno puntuación de jugador justo al terminar partida
                    objJugador.Puntuacion = tiempoAMostrarFecha;
                    MostrarMensajeFinPartida();
                }
            }
        }
Exemple #16
0
 public void sendPosibleWinner(clsCarta carta, string grupo, string nickname)
 {
     Clients.Group(grupo, Context.ConnectionId).comprobarGanador(carta, nickname);
 }