private void button1_MouseUp(object sender, MouseEventArgs e) { InfoLabel.ResetText(); CambiarFondoBoton(sender, e); LimpiarTablero(); tablero = new Elementos.TableroSudoku(); }
static void Main(string[] args) { int opcion = 0; if (Directory.Exists(@Directory.GetCurrentDirectory().ToString() + "\\Tableros") == false) { DirectoryInfo di = Directory.CreateDirectory(@Directory.GetCurrentDirectory().ToString() + "\\Tableros"); } Console.BackgroundColor = ConsoleColor.Yellow; Console.ForegroundColor = ConsoleColor.Black; Console.Clear(); Elementos.TableroSudoku miTablero = null; Byte opSec = 0; while (opcion != 3) { opcion = 0; Console.Clear(); Console.WriteLine("\n Menu principal del Sudoku."); Console.WriteLine("\n 1.- Crear tablero vacio."); Console.WriteLine("\n 2.- Cargar tablero."); Console.WriteLine("\n 3.- Salir.\n"); Console.WriteLine("\n Opcion: \n"); int.TryParse(Console.ReadLine(), out opcion); switch (opcion) { case 1: Console.WriteLine("\n\n Tablero generado.\n Pulsa una tecla para continuar."); miTablero = new Elementos.TableroSudoku(); break; case 2: miTablero = new Elementos.TableroSudoku(); if (miTablero.CargarTablero() == true) { Console.WriteLine(" \nEspere..."); miTablero.ResolverTablero(); if (miTablero.ComprobarTablero() == true) { miTablero.LimpiarTablero(); Console.WriteLine("\n\n Tablero cargado.\n Pulsa una tecla para continuar."); } else { Console.WriteLine("\n\n Este tablero no se puede resolver Cargando tablero en blanco.\n Pulsa una tecla para continuar."); miTablero = new Elementos.TableroSudoku(); } } else { Console.WriteLine("\n\n No se pudo cargar el tablero. Generando tablero en blanco.\n pulsa una tecla para continuar."); } break; case 3: Console.WriteLine("\n Salir del programa...\n pulsa una tecla para continuar."); break; default: Console.WriteLine("\n Opcion incorrecta.\n pulsa una tecla para continuar."); break; } Console.ReadKey(); if (opcion == 1 || opcion == 2) { do { opSec = 0; Console.Clear(); if (miTablero.TableroLleno() == true) { if (miTablero.ComprobarTablero() == true) { Console.WriteLine("\n Tablero resuelto."); opSec = 4; } else { Console.WriteLine("\n Corregir valores en rojo para completar el tablero."); } } miTablero.MostrarTablero(); if (opSec != 4) { opSec = miTablero.IntroducirCasilla(); } if (opSec == 1) { Console.WriteLine("\n Datos incorrectos..."); Console.WriteLine("\n Pulse una tecla para continuar.\n"); Console.ReadKey(); } else if (opSec == 2) { Console.WriteLine(" \nResolviendo tablero, espere..."); miTablero.LimpiarTablero(); miTablero.ResolverTablero(); Console.Clear(); } else if (opSec == 3) { Console.WriteLine("\n Guardar tablero: \n"); if (miTablero.GuardarTablero() == true) { Console.WriteLine("\n Tablero guardado.\n"); } Console.WriteLine("\n Pulse una tecla para continuar.\n"); Console.ReadKey(); } else if (opSec == 4) { Console.WriteLine("\n Volver al menu principal..."); Console.WriteLine("\n Pulse una tecla para continuar.\n"); Console.ReadKey(); } else if (opSec == 5) { miTablero.LimpiarTablero(); } else if (opSec == 7) { miTablero.ComprobarTablero(); miTablero.LimpiarErrores(); } else if (opSec == 6) { miTablero.ComprobarTablero(); } } while (opSec != 4); } } Console.ReadKey(); }
private void Cargarbutton_MouseUp(object sender, MouseEventArgs e) { InfoLabel.ResetText(); this.Cursor = Cursors.AppStarting; CambiarFondoBoton(sender, e); Stream myStream = null; OpenFileDialog openFileDialog1 = new OpenFileDialog(); openFileDialog1.InitialDirectory = @Directory.GetCurrentDirectory().ToString() + "\\Tableros"; openFileDialog1.Filter = "All files (*.*)|*.*|xml (*.xml)|*.xml"; openFileDialog1.FilterIndex = 2; openFileDialog1.RestoreDirectory = true; TextBox auxb; Elementos.TableroSudoku tableroAux = tablero; if (openFileDialog1.ShowDialog() == DialogResult.OK) { try { if ((myStream = openFileDialog1.OpenFile()) != null) { using (myStream) { InfoLabel.Text = "Cargando tablero."; tablero = new Elementos.TableroSudoku(); tablero.CargarTablero(myStream); myStream.Close(); InfoLabel.Text = "Comprobando..."; WaitSeconds(0.2); tablero.ResolverTablero(); if (tablero.TableroLleno() != true && tablero.ComprobarTablero() != true) { MessageBox.Show("El tablero cargado no se pudo resolver. Seleccione otro tablero."); } else { InfoLabel.Text = "Tablero cargado."; } tablero.LimpiarTablero(); LimpiarTablero(); for (int i = 0; i < 9; i++) { for (int j = 0; j < 9; j++) { auxb = (TextBox)tableroSudoku.GetControlFromPosition(j, i); if (tablero.BuscarCasilla(i, j).Estatico == true) { auxb.ReadOnly = true; } } } MostrarCasillas(); MostrarFondos(); } } } catch (Exception ex) { MessageBox.Show("Error: Could not read file from disk. Original error: " + ex.Message); } } this.Cursor = Cursors.Default; }
public Form1() { InitializeComponent(); TextBox aux; InfoLabel.BackColor = Color.Transparent; this.Controls.Add(tableroSudoku); InfoLabel.ResetText(); this.tableroSudoku.BackColor = System.Drawing.SystemColors.InactiveCaption; this.tableroSudoku.BackgroundImage = Properties.Resources.fondo_tablero; this.tableroSudoku.ColumnCount = 9; this.tableroSudoku.RowCount = 9; this.tableroSudoku.Padding = new Padding(6, 9, 6, 5); this.tableroSudoku.Location = new Point(32, 32); this.tableroSudoku.AutoSize = true; this.tableroSudoku.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; for (int i = 0; i < 9; i++) { for (int j = 0; j < 9; j++) { aux = new System.Windows.Forms.TextBox(); //this.Controls.Add(aux); this.tableroSudoku.Controls.Add(aux, j, i); aux.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; aux.Font = new System.Drawing.Font("Calibri", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); if (j % 3 == 2 && i % 3 != 2) { aux.Margin = new Padding(2, 2, 4, 2); } else if (j % 3 == 0 && i % 3 != 2) { aux.Margin = new Padding(4, 2, 2, 2); } else if (j % 3 == 2 && i % 3 == 2) { aux.Margin = new Padding(2, 2, 4, 6); } else if (j % 3 == 0 && i % 3 == 2) { aux.Margin = new Padding(4, 2, 2, 6); } else if (i % 3 == 2) { aux.Margin = new Padding(2, 2, 2, 6); } else { aux.Margin = new System.Windows.Forms.Padding(2); } aux.MaxLength = 1; aux.Name = "textBox" + i.ToString() + j.ToString(); aux.Size = new System.Drawing.Size(37, 37); aux.TabIndex = 35; aux.Location = new Point(50, 50); aux.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; aux.BackColor = Color.Silver; } } tablero = new Elementos.TableroSudoku(); foreach (Control auxc in tableroSudoku.Controls) { auxc.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.Tecla_Valida); auxc.MouseClick += new MouseEventHandler(CambiarColorCasillasActual); } }