using System;
using System.IO;
using System.Runtime.InteropServices;
using System.Runtime.Serialization.Formatters.Binary;
namespace Atributos
{ /// <summary>
/// Clase para escribirse por completo en el disco duro en formato de archivo binario.
/// </summary>
[SerializableAttribute]
public class Preferencias_del_juego
{ private int velocidad_de_la_partida;
public int Velocidad_de_la_partida
{ get
{ return velocidad_de_la_partida;
}
set
{ velocidad_de_la_partida = value;
}
}
private int cantidad_de_facciones;
public int Cantidad_de_facciones
{ get
{ return cantidad_de_facciones;
}
set
{ cantidad_de_facciones = value;
}
}
private int cantidad_de_unidades;
public int Cantidad_de_unidades
{ set
{ cantidad_de_unidades = value;
}
get
{ return cantidad_de_unidades;
}
}
private bool sonido_activado;
public bool Sonido_activado
{ get
{ return sonido_activado;
}
set
{ sonido_activado = value;
}
}
/// <summary>
/// Propiedad de solo lectura para obtener un informe de las preferencias.
/// </summary>
public String Obtener_informe
{ get
{ return "Informe de preferencias.\nEstado del sonido " + this.Sonido_activado + "\nCantidad de unidades " + Cantidad_de_unidades + "\nCantidad de facciones " + cantidad_de_facciones + "\nVelocidad de la partida " + velocidad_de_la_partida;
}
}
}//Fin del class Preferencias_del_juego
public class Juego_basado_en_ZeroK
{ private Preferencias_del_juego preferencias;
/// <summary>
/// Llena el objeto del class Preferencias_del_juego con datos.
/// Luego lo escribe en el disco duro en un archivo llamado "Preferencias_del_juego.bin",
/// en formato binario.
/// </summary>
public void Guardar_preferencias()
{ preferencias = new Preferencias_del_juego();
preferencias.Cantidad_de_facciones = 4;
preferencias.Cantidad_de_unidades = 100;
preferencias.Sonido_activado = true;
preferencias.Velocidad_de_la_partida = 1;
Console.WriteLine("\n\nEscribiendo en el disco duro."); //Guardando.
Stream escribir = File.Create("Preferencias_del_juego.bin"); BinaryFormatter escribir_en_binario = new BinaryFormatter();
escribir_en_binario.Serialize(escribir, preferencias);
escribir.Close();
}
public void Leer_preferencias()
{ try
{ preferencias = new Preferencias_del_juego();
Console.WriteLine("\n\nLeyendo las preferencias desde el objeto antes de cargarlas del archivo."); Console.WriteLine(preferencias.Obtener_informe);
//Cargando archivo en el objeto.
Stream Leer = File.OpenRead("Preferencias_del_juego.bin"); BinaryFormatter Leer_en_binario = new BinaryFormatter();
//Realizando un casting
preferencias = (Preferencias_del_juego)Leer_en_binario.Deserialize(Leer);
Leer.Close();
Console.WriteLine("\n\nLeyendo las preferencias desde el objeto despues de cargarlas del archivo."); Console.WriteLine(preferencias.Obtener_informe);
}
catch (FileNotFoundException e)
{ Console.WriteLine("\n\nPrimero llame al procedimiento Guardar_preferencias() y luego Leer_preferencias()."); Console.WriteLine(e.Message);
}
}
} //Fin del class Juego_basado_en_ZeroK
}//Fin del namespace