public Boolean Insertar(Casilla c) { if (Existe(c) == true) { return(false); } if (primero == null) { primero = new Nodo <Casilla>(c); } else if (ultimo == null) { ultimo = new Nodo <Casilla>(c); primero.SetSiguiente(ultimo); ultimo.SetAnterior(primero); } else { Nodo <Casilla> aux = new Nodo <Casilla>(c); ultimo.SetSiguiente(aux); aux.SetAnterior(ultimo); ultimo = aux; } return(true); }
public Casilla(Casilla c) { if(c != null) { fila = c.fila; columna = c.columna; valor = c.valor; estatico = c.estatico; } }
/// <summary> /// Muestra el tablero por consola /// </summary> public void MostrarTablero() { int i = 0, j = 0, k = 0; Casilla aux = null; Console.Write("\n "); for (i = 0; i < size; i++) { Console.Write(" " + (i + 1).ToString() + " "); } Console.Write("\n "); for (i = 0; i < size * 4 - 1; i++) { Console.Write("-"); } for (i = 0; i < size; i++) { Console.Write("\n " + (i + 1).ToString() + " | "); for (j = 0; j < size; j++) { aux = BuscarCasilla(i, j); if (aux.Valor < 0) { Console.ForegroundColor = ConsoleColor.Red; Console.Write((-1 * aux.Valor).ToString()); Console.ForegroundColor = ConsoleColor.Black; Console.Write(" | "); } else if (aux.Valor == 0) { Console.Write(" | "); } else { if (aux.Estatico == true) { Console.ForegroundColor = ConsoleColor.DarkBlue; Console.Write((aux.Valor).ToString()); Console.ForegroundColor = ConsoleColor.Black; Console.Write(" | "); } else { Console.Write(aux.Valor.ToString() + " | "); } } } Console.Write("\n "); for (k = 0; k < size * 4 - 1; k++) { Console.Write("-"); } } }
/// <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> /// 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); }