/// <summary> /// Guarda el tablero en un fichero xml /// </summary> /// <returns></returns> public Boolean GuardarTablero() { string nombre; XmlTextWriter writer; Nodo <Casilla> aux = primero; if (aux == null) { return(false); } DirectoryInfo di = new DirectoryInfo(@Directory.GetCurrentDirectory().ToString() + "\\Tableros"); if (di.GetFiles().Length > 0) { Console.WriteLine("\n Tableros existentes (si no quieres sobreescribir selecciona un nombre distinto\n a los existentes)\n"); foreach (var fi in di.GetFiles("*.xml")) { Console.WriteLine(fi.Name); } } Console.WriteLine("\n Introduce el nombre del fichero xml para guardar el tablero (con la extension):"); nombre = Console.ReadLine(); string ruta = @Directory.GetCurrentDirectory().ToString() + "\\Tableros\\" + nombre; writer = new XmlTextWriter(ruta, Encoding.UTF8); writer.Formatting = Formatting.Indented; writer.WriteStartDocument(false); writer.WriteStartElement(nombre); writer.WriteStartElement("Tablero"); while (aux != null) { writer.WriteStartElement("Casilla"); writer.WriteStartElement("Fila"); writer.WriteString(aux.GetDato().Fila().ToString()); writer.WriteEndElement(); writer.WriteStartElement("Columna"); writer.WriteString(aux.GetDato().Columna().ToString()); writer.WriteEndElement(); writer.WriteStartElement("Valor"); writer.WriteString(aux.GetDato().Valor.ToString()); writer.WriteEndElement(); writer.WriteEndElement(); aux = aux.GetSiguiente(); } writer.WriteEndElement(); writer.Flush(); writer.WriteEndDocument(); writer.Close(); return(true); }
/// <summary> /// Borra todas las casillas incorrectas del tablero /// </summary> public void LimpiarErrores() { Nodo <Casilla> aux = primero; while (aux != null) { if (aux.GetDato().Valor < 0) { aux.GetDato().Valor = 0; } aux = aux.GetSiguiente(); } }
/// <summary> /// Borra todas las casillas no estaticas del tablero /// </summary> public void LimpiarTablero() { Nodo <Casilla> aux = primero; while (aux != null) { if (aux.GetDato().Estatico == false) { aux.GetDato().Valor = 0; } aux = aux.GetSiguiente(); } }
/// <summary> /// Guarda el tablero en un fichero xml /// </summary> /// <returns></returns> public Boolean GuardarTablero(Stream file) { XmlTextWriter writer; Nodo <Casilla> aux = primero; if (aux == null) { return(false); } writer = new XmlTextWriter(file, Encoding.UTF8); writer.Formatting = Formatting.Indented; writer.WriteStartDocument(false); this.ComprobarTablero(); this.LimpiarErrores(); writer.WriteStartElement("Tablero"); while (aux != null) { writer.WriteStartElement("Casilla"); writer.WriteStartElement("Fila"); writer.WriteString(aux.GetDato().Fila().ToString()); writer.WriteEndElement(); writer.WriteStartElement("Columna"); writer.WriteString(aux.GetDato().Columna().ToString()); writer.WriteEndElement(); writer.WriteStartElement("Valor"); writer.WriteString(aux.GetDato().Valor.ToString()); writer.WriteEndElement(); writer.WriteEndElement(); aux = aux.GetSiguiente(); } writer.WriteEndElement(); writer.Flush(); writer.WriteEndDocument(); writer.Close(); return(true); }
/// <summary> /// Devuelve una casilla con las coordenadas indicadas /// </summary> /// <param name="fila"></param> /// <param name="columna"></param> /// <returns></returns> public Casilla BuscarCasilla(int fila, int columna) { Casilla miCas = new Casilla(fila, columna); Nodo <Casilla> aux = primero; while (aux != null) { if (aux.GetDato().CasillasIguales(miCas) == true) { miCas = aux.GetDato(); return(miCas); } aux = aux.GetSiguiente(); } return(null); }
/// <summary> /// Comprueba si ext /// </summary> /// <param name="c"></param> /// <returns></returns> public Boolean Existe(Casilla c) { Nodo <Casilla> aux = primero; while (aux != null) { if (aux.GetDato().CasillasIguales(c) == true) { return(true); } aux = aux.GetSiguiente(); } return(false); }
/// <summary> /// Comprueba si el tablero esta lleno /// </summary> /// <returns></returns> public Boolean TableroLleno() { Nodo <Casilla> aux = primero; while (aux != null) { if (aux.GetDato().Valor == 0) { return(false); } aux = aux.GetSiguiente(); } return(true); }
/// <summary> /// Comprueba si el tablero esta correctamente resuelto /// </summary> /// <returns></returns> public Boolean ComprobarTablero() { Nodo <Casilla> aux = primero; Boolean fin = true; while (aux != null) { if (ComprobarCasillaVal(aux.GetDato().Fila(), aux.GetDato().Columna()) == false && aux.GetDato().Estatico == false && aux.GetDato().Valor != 0) { if (aux.GetDato().Valor > 0) { aux.GetDato().Valor *= -1; } fin = false; } else if (ComprobarCasillaVal(aux.GetDato().Fila(), aux.GetDato().Columna()) == false && aux.GetDato().Valor != 0) { fin = false; } aux = aux.GetSiguiente(); } return(fin); }