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(); }); } }
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; }
/// <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"); } } } }
public void nuevaPartida_Executed() { _cartaSeleccionada = null; _aciertos = 0; _listadoCartas = clsListadoCartas.listadoCartas(); NotifyPropertyChanged("cartaSeleccionada"); NotifyPropertyChanged("aciertos"); }
/// <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++; } }
//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"); }
///// <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(); }
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); } } }); }
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"); }
/// <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(); } } }
public void sendPosibleWinner(clsCarta carta, string grupo, string nickname) { Clients.Group(grupo, Context.ConnectionId).comprobarGanador(carta, nickname); }