/// <summary> /// Esta función hace que empiece una partida de nuevo: /// Resetea la casilla seleccionada null /// Resetea el contador de salvados a 0 /// Resetea la imagen a presionar /// Rellena el listado de casillas con casillas nuevas /// Resetea el boolean que indica si la partida está acabada /// </summary> private void empezarNuevaPartida() { _casillaSeleccionada = null; _contadorSalvados = 0; NotifyPropertyChanged("contadorSalvados"); _listadoCasillas = rellenarListaCasillas(); NotifyPropertyChanged("listadoCasillas"); _partidaEstaAcabada = false; }
public MainPageViewModel() { //Primero rellenamos el listado de casillas listadoCasillas = rellenarListaCasillas(); //No hay ninguna casilla seleccionada, así que está a null _casillaSeleccionada = null; //El contador está a 0 al principio de la partida _contadorSalvados = 0; //La partida no está acabada _partidaEstaAcabada = false; }
private async void playSelectedBoxSound(ClsCasilla casilla) { MediaElement mysong = new MediaElement(); Windows.Storage.StorageFolder folder = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFolderAsync("Assets"); String archivoMusica = ""; switch (casilla.Item.TipoItem) { case 1: if (casilla.Item.Monedas == 0) //Si es un fantasma { archivoMusica = "boo.wav"; } else { if (casilla.Item.Monedas == 20) //si es una estrella { archivoMusica = "star.wav"; } else { archivoMusica = "coin.wav"; } } break; case 2: archivoMusica = "mushroom.wav"; break; case 3: archivoMusica = "bomb.wav"; break; case 4: archivoMusica = "bowser.wav"; break; } Windows.Storage.StorageFile file = await folder.GetFileAsync(archivoMusica); var stream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read); mysong.SetSource(stream, file.ContentType); mysong.Play(); }
/// <summary> /// Función que devuelve una lista con 16 bombas, de las cuales 5 son bombas, elegidas al azar /// </summary> /// <returns>List<ClsCasilla></returns> private List <ClsCasilla> rellenarListaCasillas() { Random random = new Random(); List <ClsCasilla> lista = new List <ClsCasilla>(); ClsCasilla casilla; int casBomb1, casBomb2, casBomb3, casBomb4, casBomb5; casBomb1 = random.Next(0, 15); do { casBomb2 = random.Next(0, 15); } while (casBomb2 == casBomb1); do { casBomb3 = random.Next(0, 15); } while (casBomb3 == casBomb1 || casBomb3 == casBomb2); do { casBomb4 = random.Next(0, 15); } while (casBomb4 == casBomb1 || casBomb4 == casBomb2 || casBomb4 == casBomb3); do { casBomb5 = random.Next(0, 15); } while (casBomb5 == casBomb1 || casBomb5 == casBomb2 || casBomb5 == casBomb3 || casBomb5 == casBomb4); for (int i = 0; i < 16; i++) { if (i == casBomb1 || i == casBomb2 || i == casBomb3 || i == casBomb4 || i == casBomb5) { casilla = new ClsCasilla(true); } else { casilla = new ClsCasilla(false); } lista.Add(casilla); } return(lista); }
/// <summary> /// Comentario: Este método nos permite generar un tablero aleatorio para /// la aplicación MapacheParty. El tablero constará de 5x5 casillas. /// Tendrá los siguientes items: /// -2 setas /// -1 bowser /// -4 bombas /// -18 cajas sorpresa /// </summary> public static void tableroAleatorio() { List <ClsCasilla> listadoCasillas = new List <ClsCasilla>(); Random random = new Random(); int posicionCasilla = 0; bool bowserInsertado = false; for (int i = 0; i < 25; i++)//Rellenamos todo el tablero con cajas sorpresa { switch (random.Next(1, 3)) { case 1: //Caja sorpresa con monedas listadoCasillas.Add(new ClsCasilla(new ClsItem(1, random.Next(1, 5)), true, false, "ms-appx:///Assets/caja_sorpresa_casilla.jpg")); break; default: //Caja sorpresa con fantasma listadoCasillas.Add(new ClsCasilla(new ClsItem(1, 0), true, false, "ms-appx:///Assets/caja_sorpresa_casilla.jpg")); break; } } for (int i = 0; i < 4; i++)//Insertamos las cuatro bombas en el tablero { posicionCasilla = random.Next(0, 24); if (listadoCasillas.ElementAt(posicionCasilla).Item.TipoItem != 3)//Si la posición no contiene una bomba { listadoCasillas[posicionCasilla] = new ClsCasilla(new ClsItem(3, 0), true, false, "ms-appx:///Assets/bomb_casilla.jpg"); } else { i--; } } for (int i = 0; i < 2; i++)//Insertamos las dos setas en el tablero { posicionCasilla = random.Next(0, 24); if (listadoCasillas.ElementAt(posicionCasilla).Item.TipoItem != 3 && listadoCasillas.ElementAt(posicionCasilla).Item.TipoItem != 2)//Si la posición no contiene una bomba o una seta { listadoCasillas[posicionCasilla] = new ClsCasilla(new ClsItem(2, i), true, false, "ms-appx:///Assets/seta_casilla.jpg"); } else { i--; } } do//Insertamos la casilla de bowser { posicionCasilla = random.Next(0, 24); if (listadoCasillas.ElementAt(posicionCasilla).Item.TipoItem != 3 && listadoCasillas.ElementAt(posicionCasilla).Item.TipoItem != 2)//Si la posición no contiene una bomba o una seta { listadoCasillas[posicionCasilla] = new ClsCasilla(new ClsItem(4, 0), true, false, "ms-appx:///Assets/bowser_casilla.jpg"); bowserInsertado = true; } } while (!bowserInsertado); //Si no se ha conseguido insertar la casilla bowser for (int i = 0; i < 4; i++) //Insertamos las cuatro estrellas en el tablero { posicionCasilla = random.Next(0, 24); if (listadoCasillas.ElementAt(posicionCasilla).Item.TipoItem != 3 && listadoCasillas.ElementAt(posicionCasilla).Item.TipoItem != 2 && listadoCasillas.ElementAt(posicionCasilla).Item.TipoItem != 4 && (listadoCasillas.ElementAt(posicionCasilla).Item.TipoItem == 1 && listadoCasillas.ElementAt(posicionCasilla).Item.Monedas != 20))//Si la posición no contiene una bomba, una seta, una casilla bowser u otra estrella { listadoCasillas[posicionCasilla] = new ClsCasilla(new ClsItem(1, 20), true, false, "ms-appx:///Assets/caja_sorpresa_casilla.jpg"); } else { i--; } } ClsDatosJuego.tablero = listadoCasillas; }