Exemple #1
0
        /// <summary>
        /// este metodo sirve para cambiar el estado del atributo descubierta de la cartaseleccionada
        /// y comprobar si es la primera de las dos, si es asi no compruebo si estáa su pareja y si es la seguinda ,
        /// comprobar si son parejas mientras bloquear el resto de las cartas para que no se les pueda dar vueltas ,
        /// si lo son mantenerlas volteadas y bloquear estas dos para que no se les vuelvan a dar clic y desbloquear
        /// el resto de las cartas para seguir jugando
        ///
        /// </summary>
        private async void comprobarJugada()
        {
            //cuando hay mas de una pareja de cartas abiertas se puede cerrarlas dando clic en dos de ellas
            //cuando encuentras una pareja y vuelves a dar a esas dos parejas te va sumando la pareja encontrada
            //por eso pongo el  if (!CartaSeleccionada.Descubierta)

            if (!CartaSeleccionada.Descubierta)
            {
                //comprobar si es la primera o la segunda
                if (carta1 == null)
                {
                    carta1 = cartaSeleccionada;

                    carta1.Descubierta = true;
                }
                else if (carta2 == null)
                {
                    carta2             = cartaSeleccionada;
                    carta2.Descubierta = true;
                }
            }



            //comprobamos si son iguales
            if (carta1 != null && carta2 != null)
            {
                this.isPartidaActiva = false;
                NotifyPropertyChanged("IsPartidaActiva");

                if (carta2.IdCarta == carta1.IdCarta)
                {
                    parejasEncontradas++;

                    carta1 = null;
                    carta2 = null;
                }
                else
                {
                    //para que espere un poco antes de dar la vuelta

                    Task task = Task.Delay(500);
                    await task.AsAsyncAction();

                    carta1.Descubierta = false;
                    carta2.Descubierta = false;
                    carta1             = null;
                    carta2             = null;

                    //para que deseleccione la carta seleccionada para poder seleccionarla otra vez
                    cartaSeleccionada = null;
                    NotifyPropertyChanged("CartaSeleccionada");
                }
                this.isPartidaActiva = true;
                NotifyPropertyChanged("IsPartidaActiva");
            }

            if (parejasEncontradas == 6)
            {
                this.tiempo.Stop();

                this.isPartidaActiva = false;
                NotifyPropertyChanged("IsPartidaActiva");

                mensajeGanador();
            }
        }
Exemple #2
0
        /// <summary>
        /// este metodo sirve para cambiar el estado del atributo descubierta de la cartaseleccionada
        /// y comprobar si es la primera de las dos, si es asi no compruebo si estáa su pareja y si es la seguinda ,
        /// comprobar si son parejas mientras bloquear el resto de las cartas para que no se les pueda dar vueltas ,
        /// si lo son mantenerlas volteadas y bloquear estas dos para que no se les vuelvan a dar clic y desbloquear
        /// el resto de las cartas para seguir jugando
        ///
        /// </summary>
        private async void comprobarJugada()
        {
            cartaSeleccionada.Descubierta = true;
            //comprobar si es la primera o la segunda
            if (carta1 == null)
            {
                carta1 = cartaSeleccionada;

                carta1.Descubierta = true;
            }
            else if (carta2 == null)
            {
                carta2             = cartaSeleccionada;
                carta2.Descubierta = true;
            }


            //comprobamos si son iguales
            if (carta1 != null && carta2 != null)
            {
                this.isPartidaActiva = false;
                NotifyPropertyChanged("IsPartidaActiva");
                if (carta2.IdCarta == carta1.IdCarta)
                {
                    parejasEncontradas++;
                    carta1 = null;
                    carta2 = null;
                }
                else
                {
                    //para que espere un poco antes de dar la vuelta

                    Task task = Task.Delay(500);
                    await task.AsAsyncAction();

                    carta1.Descubierta = false;
                    carta2.Descubierta = false;
                    carta1             = null;
                    carta2             = null;

                    //para que deseleccione la carta seleccionada para poder seleccionarla otra vez
                    cartaSeleccionada = null;
                    NotifyPropertyChanged("CartaSeleccionada");
                }
                this.isPartidaActiva = true;
                NotifyPropertyChanged("IsPartidaActiva");
            }

            if (parejasEncontradas == 6)
            {
                this.tiempo.Stop();

                string res = await MensajeGanador();

                if (res != null)
                {
                    guardarResultado();
                }
                //else
                //{
                //    this.isPartidaActiva = false;
                //    NotifyPropertyChanged("IsPartidaActiva");
                //}
                this.isPartidaActiva = false;
                NotifyPropertyChanged("IsPartidaActiva");
            }
        }