public void DatenAnzeigen() { foreach (Control ctrl in Controls) { if (!(ctrl is _ucSudokuFeldGross)) { continue; } _ucSudokuFeldGross feldGross = (_ucSudokuFeldGross)ctrl; for (int i = 0; i < 81; i++) { if (feldGross.Tag.ToString() == i.ToString()) { feldGross.Text = _daten.Substring(i, 1); if (_daten.Substring(i, 1) == "x") { feldGross.FarbenSetzen = true; feldGross.FreieEingabe = true; feldGross.Text = string.Empty; feldGross.Loesung = _loesung.Substring(i, 1); feldGross.GueltigeEingabe = Enums.Farbzuweisung.Leer; } else { feldGross.FreieEingabe = false; } } } } }
public void PruefenObSudokuFertig() { bool freiesFeld = false; foreach (Control ctrl in Controls) { if (!(ctrl is _ucSudokuFeldGross)) { continue; } _ucSudokuFeldGross feldGross = (_ucSudokuFeldGross)ctrl; if (feldGross.Text == string.Empty) { freiesFeld = true; } } if (!freiesFeld) { if (!AufFehlerPruefen()) { _hauptmenue.MeldungZeigen("Super!", "Du hast das Sudoku gelöst", false); } if (AufFehlerPruefen()) { _hauptmenue.MeldungZeigen("bäääh!", "Mega bitter -.-", false); } } }
public void PruefenObSudokuFertig() { bool freiesFeld = false; foreach (Control ctrl in Controls) { if (!(ctrl is _ucSudokuFeldGross)) { continue; } _ucSudokuFeldGross feldGross = (_ucSudokuFeldGross)ctrl; if (feldGross.Text == string.Empty) { freiesFeld = true; } } if (!freiesFeld) { if (!AufFehlerPruefen()) { _hauptmenue.MeldungZeigen("Super!", "Du hast das Sudoku gelöst", false); } if (AufFehlerPruefen()) { _hauptmenue.MeldungZeigen("Autsch!", "Leider sind noch nicht alle Zahlen richtig.", false); } } }
private void _cmdTipp_Click(object sender, EventArgs e) { List <int> freieFelder = new List <int>(); foreach (Control ctrl in Controls) { if (!(ctrl is _ucSudokuFeldGross)) { continue; } _ucSudokuFeldGross feldGross = (_ucSudokuFeldGross)ctrl; if (feldGross.FreieEingabe && feldGross.Text == string.Empty) { freieFelder.Add(int.Parse(feldGross.Tag.ToString())); } } if (freieFelder.Count == 0) { return; } Random rnd = new Random(); int zahl = rnd.Next(0, freieFelder.Count); foreach (Control ctrl in Controls) { if (!(ctrl is _ucSudokuFeldGross)) { continue; } _ucSudokuFeldGross feldGross = (_ucSudokuFeldGross)ctrl; if (feldGross.Tag.ToString() == freieFelder[zahl].ToString()) { feldGross.Text = _loesung.Substring(int.Parse(feldGross.Tag.ToString()), 1); feldGross.GueltigeEingabe = Enums.Farbzuweisung.Gueltig; PruefenObSudokuFertig(); } } }
private bool AufFehlerPruefen() { List <int> liste = new List <int>(); foreach (Control ctrl in Controls) { if (!(ctrl is _ucSudokuFeldGross)) { continue; } _ucSudokuFeldGross feldGross = (_ucSudokuFeldGross)ctrl; if (feldGross.AufFehlerPruefen == Enums.Farbzuweisung.Ungueltig) { liste.Add(int.Parse(feldGross.Tag.ToString())); } } return(liste.Count > 0 ? true : false); }
public _ucSudokuErstellen() { InitializeComponent(); foreach (Control ctrlPanel in Controls) { if (!(ctrlPanel is Panel)) { continue; } foreach (Control ctrl in ctrlPanel.Controls) { if (!(ctrl is _ucSudokuFeldGross)) { continue; } _ucSudokuFeldGross feldGross = (_ucSudokuFeldGross)ctrl; feldGross.Controls["_txtZahl"].TextChanged += new EventHandler(_ucSudokuErstellen_TextChanged); feldGross.Hauptmenue = _hauptmenue; feldGross.ZahlenAuswahl = _zahlenAuswahl; } } }
public void SudokuAutomatischGenerieren(int schwierigkeitsgrad) { AutomatischGenerieren = true; FelderLeeren(); Random rnd = new Random(); do { _uc00.Text = rnd.Next(1, 9).ToString(); _uc20.Text = rnd.Next(1, 9).ToString(); _uc40.Text = rnd.Next(1, 9).ToString(); _uc60.Text = rnd.Next(1, 9).ToString(); _uc80.Text = rnd.Next(1, 9).ToString(); _uc23.Text = rnd.Next(1, 9).ToString(); _uc53.Text = rnd.Next(1, 9).ToString(); _uc71.Text = rnd.Next(1, 9).ToString(); ArrayFuellen(); } while (!IstGueltigesFeld()); for (int i = 0; i < 9; i++) { for (int j = 0; j < 9; j++) { if (_datenTesten[i, j] == 0) { _datenTesten[i, j] = -1; } } } Backtracking backtracking = new Backtracking(); backtracking._datenTesten = _datenTesten; backtracking.LoeseFeld(); LoesungLaden(); DatenInOberflaecheSchreiben(); //Zufällige Felder entfernen for (int i = 0; i < schwierigkeitsgrad; i++) { int x = rnd.Next(0, 8); int y = rnd.Next(0, 8); foreach (Control ctrl in Controls) { if (ctrl.Tag == null) { continue; } int yCtrl = int.Parse(ctrl.Name.Substring(3, 1)); int xCtrl = int.Parse(ctrl.Name.Substring(4, 1)); if (y == yCtrl && x == xCtrl && ctrl.Text == string.Empty) { i = i - 1; continue; } if (y == yCtrl && x == xCtrl) { ctrl.Text = ""; } } } foreach (Control ctrl in Controls) { if (ctrl.Tag == null) { continue; } if (ctrl.Text != string.Empty) { ((_ucSudokuFeldGross)ctrl).FreieEingabe = false; ((_ucSudokuFeldGross)ctrl).FarbenSetzen = false; ((_ucSudokuFeldGross)ctrl).GueltigeEingabe = Enums.Farbzuweisung.Leer; } else { ((_ucSudokuFeldGross)ctrl).FreieEingabe = true; ((_ucSudokuFeldGross)ctrl).FarbenSetzen = true; ((_ucSudokuFeldGross)ctrl).GueltigeEingabe = Enums.Farbzuweisung.Leer; } } foreach (Control ctrl in Controls) { if (!(ctrl is _ucSudokuFeldGross)) { continue; } _ucSudokuFeldGross feldGross = (_ucSudokuFeldGross)ctrl; for (int i = 0; i < 81; i++) { if (feldGross.Tag.ToString() == i.ToString()) { feldGross.Loesung = _loesung.Substring(i, 1); } } } AutomatischGenerieren = false; }