/** * Guarda es estado de la clase marcador en un archivo binario * */ public static void GuardarPuntuaciones(Marcador x) { IFormatter formatter = new BinaryFormatter(); Stream stream = new FileStream("scores", FileMode.Create, FileAccess.Write, FileShare.None); formatter.Serialize(stream, x); stream.Close(); }
public Juego() { for (int i = 0; i < 6; i++) { recompensas[i] = new Bonus(); recompensas[i].setImagen(i); } marca = Marcador.CargarPuntuaciones(); }
/** * Muestra en dos columnas los mejores resultados de * los jugadores (por distancia y por puntos) * */ public void MostrarMarcas(Marcador marcador) { Thread.Sleep(200); bool salir = false; h.BorrarPantalla(); h.EscribirTexto("Marcadores", 350, 0); marcador.OrdenarPorDistancia(); marcador.OrdenarPorPuntuacion(); h.EscribirTexto("Pulse Enter", 350, 580); h.VisualizarPantalla(); do { if (h.TeclaPulsada(Hardware.TECLA_ENT)) { salir = true; } } while (!salir); }
/** * Devuelve el estado guardado de la clase marcador * */ public static Marcador CargarPuntuaciones() { if (File.Exists("scores")) { Marcador x; IFormatter formatter = new BinaryFormatter(); Stream stream = new FileStream("scores", FileMode.Open, FileAccess.Read, FileShare.Read); try { x = (Marcador)formatter.Deserialize(stream); } catch { x = new Marcador(); } stream.Close(); return(x); } return(new Marcador()); }
/** * Muestra el menú principal, llama al método Jugar, almacena * la puntuación conseguida y reinicia los parámetros del juego entre partidas * */ public void Iniciar() { bool jugar = true; do { Thread.Sleep(200); if (menu.Principal()) { Jugar(); marca.AddPuntuacion(menu.PedirNombre(), puntuacion, mapa.GetDistancia()); menu.MostrarMarcas(marca); ResetearParametros(); } else { Thread.Sleep(100); jugar = menu.Secundario(); } } while (jugar); // Cuando se sale del juego almacena las mejores puntuaciones en un archivo Marcador.GuardarPuntuaciones(marca); }